PageSourceSearch

https://www.reactplus.com/assets/index-B0ux5eZ-.js

js reactplus.com collected 2026-10-10 02:20:22 UTC 2,573,256 bytes, 9,808 lines download raw bytes

vendor: 4,199 bytes, line 1
1function p8(t,e){for(var n=0;n<e.length;n++){const s=e[n];if(typeof s!="string"&&!Array.isArray(s)){for(const i in s)if(i!=="default"&&!(i in t)){const r=Object.getOwnPropertyDescriptor(s,i);r&&Object.defineProperty(t,i,r.get?r:{enumerable:!0,get:()=>s[i]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))s(i);new MutationObserver(i=>{for(const r of i)if(r.type==="childList")for(const c of r.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&s(c)}).observe(document,{childList:!0,subtree:!0});function n(i){const r={};return i.integrity&&(r.integrity=i.integrity),i.referrerPolicy&&(r.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?r.credentials="include":i.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function s(i){if(i.ep)return;i.ep=!0;const r=n(i);fetch(i.href,r)}})();function Cg(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var R_={exports:{}},Al={};var ay;function g8(){if(ay)return Al;ay=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function n(s,i,r){var c=null;if(r!==void 0&&(c=""+r),i.key!==void 0&&(c=""+i.key),"key"in i){r={};for(var p in i)p!=="key"&&(r[p]=i[p])}else r=i;return i=r.ref,{$$typeof:t,type:s,key:c,ref:i!==void 0?i:null,props:r}}return Al.Fragment=e,Al.jsx=n,Al.jsxs=n,Al}var sy;function m8(){return sy||(sy=1,R_.exports=g8()),R_.exports}var l=m8(),T_={exports:{}},Zt={};var oy;function h8(){if(oy)return Zt;oy=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),r=Symbol.for("react.consumer"),c=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),_=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),h=Symbol.for("react.activity"),v=Symbol.for("react.view_transition"),b=Symbol.iterator;function S(z){return z===null||typeof z!="object"?null:(z=b&&z[b]||z["@@iterator"],typeof z=="function"?z:null)}var x={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,A={};function E(z,Y,it){this.props=z,this.context=Y,this.refs=A,this.updater=it||x}E.prototype.isReactComponent={},E.prototype.setState=function(z,Y){if(typeof z!="object"&&typeof z!="function"&&z!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,z,Y,"setState")},E.prototype.forceUpdate=function(z){this.updater.enqueueForceUpdate(this,z,"forceUpdate")};function I(){}I.prototype=E.prototype;function j(z,Y,it){this.props=z,this.context=Y,this.refs=A,this.updater=it||x}var T=j.prototype=new I;T.constructor=j,w(T,E.prototype),T.isPureReactComponent=!0;var P=Array.isArray;function N(){}var D={H:null,A:null,T:null,S:null},F=Object.prototype.hasOwnProperty;function B(z,Y,it){var W=it.ref;return{$$typeof:t,type:z,key:Y,ref:W!==void 0?W:null,props:it}}function L(z,Y){return B(z.type,Y,z.props)}function $(z){return typeof z=="object"&&z!==null&&z.$$typeof===t}function q(z){var Y={"=":"=0",":":"=2"};return"$"+z.replace(/[=:]/g,function(it){return Y[it]})}var Q=/\/+/g;function V(z,Y){return typeof z=="object"&&z!==null&&z.key!=null?q(""+z.key):Y.toString(36)}function U(z){switch(z.status){case"fulfilled":return z.value;case"rejected":throw z.reason;default:switch(typeof z.status=="string"?z.then(N,N):(z.status="pending",z.then(function(Y){z.status==="pending"&&(z.status="fulfilled",z.value=Y)},function(Y){z.status==="pending"&&(z.status="rejected",z.reason=Y)})),z.status){case"fulfilled":return z.value;case"rejected":throw z.reason}}throw z}function H(z,Y,it,W,ut){var ht=typeof z;(ht==="undefined"||ht==="boolean")&&(z=null);var yt=!1;if(z===null)yt=!0;else switch(ht){case"bigint":case"string":case"number":yt=!0;break;case"object":switch(z.$$typeof){case t:case e:yt=!0;break;
vendor: 10,921 bytes, line 1
1case f:return yt=z._init,H(yt(z._payload),Y,it,W,ut)}}if(yt)return ut=ut(z),yt=W===""?"."+V(z,0):W,P(ut)?(it="",yt!=null&&(it=yt.replace(Q,"$&/")+"/"),H(ut,Y,it,"",function(wt){return wt})):ut!=null&&($(ut)&&(ut=L(ut,it+(ut.key==null||z&&z.key===ut.key?"":(""+ut.key).replace(Q,"$&/")+"/")+yt)),Y.push(ut)),1;yt=0;var ft=W===""?".":W+":";if(P(z))for(var mt=0;mt<z.length;mt++)W=z[mt],ht=ft+V(W,mt),yt+=H(W,Y,it,ht,ut);else if(mt=S(z),typeof mt=="function")for(z=mt.call(z),mt=0;!(W=z.next()).done;)W=W.value,ht=ft+V(W,mt++),yt+=H(W,Y,it,ht,ut);else if(ht==="object"){if(typeof z.then=="function")return H(U(z),Y,it,W,ut);throw Y=String(z),Error("Objects are not valid as a React child (found: "+(Y==="[object Object]"?"object with keys {"+Object.keys(z).join(", ")+"}":Y)+"). If you meant to render a collection of children, use an array instead.")}return yt}function st(z,Y,it){if(z==null)return z;var W=[],ut=0;return H(z,W,"","",function(ht){return Y.call(it,ht,ut++)}),W}function lt(z){if(z._status===-1){var Y=z._result,it=Y();it.then(function(W){(z._status===0||z._status===-1)&&(z._status=1,z._result=W,it.status===void 0&&(it.status="fulfilled",it.value=W))},function(W){(z._status===0||z._status===-1)&&(z._status=2,z._result=W,it.status===void 0&&(it.status="rejected",it.reason=W))}),z._status===-1&&(z._status=0,z._result=it)}if(z._status===1)return z._result.default;throw z._result}var M=typeof reportError=="function"?reportError:function(z){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var Y=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof z=="object"&&z!==null&&typeof z.message=="string"?String(z.message):String(z),error:z});if(!window.dispatchEvent(Y))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",z);return}console.error(z)};function gt(z){var Y=D.T,it={};it.types=Y!==null?Y.types:null,D.T=it;try{var W=z(),ut=D.S;ut!==null&&ut(it,W),typeof W=="object"&&W!==null&&typeof W.then=="function"&&W.then(N,M)}catch(ht){M(ht)}finally{Y!==null&&it.types!==null&&(Y.types=it.types),D.T=Y}}function rt(z){var Y=D.T;if(Y!==null){var it=Y.types;it===null?Y.types=[z]:it.indexOf(z)===-1&&it.push(z)}else gt(rt.bind(null,z))}var O={map:st,forEach:function(z,Y,it){st(z,function(){Y.apply(this,arguments)},it)},count:function(z){var Y=0;return st(z,function(){Y++}),Y},toArray:function(z){return st(z,function(Y){return Y})||[]},only:function(z){if(!$(z))throw Error("React.Children.only expected to receive a single React element child.");return z}};return Zt.Activity=h,Zt.Children=O,Zt.Component=E,Zt.Fragment=n,Zt.Profiler=i,Zt.PureComponent=j,Zt.StrictMode=s,Zt.Suspense=g,Zt.ViewTransition=v,Zt.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=D,Zt.__COMPILER_RUNTIME={__proto__:null,c:function(z){return D.H.useMemoCache(z)}},Zt.addTransitionType=rt,Zt.cache=function(z){return function(){return z.apply(null,arguments)}},Zt.cacheSignal=function(){return null},Zt.cloneElement=function(z,Y,it){if(z==null)throw Error("The argument must be a React element, but you passed "+z+".");var W=w({},z.props),ut=z.key;if(Y!=null)for(ht in Y.key!==void 0&&(ut=""+Y.key),Y)!F.call(Y,ht)||ht==="key"||ht==="__self"||ht==="__source"||ht==="ref"&&Y.ref===void 0||(W[ht]=Y[ht]);var ht=arguments.length-2;if(ht===1)W.children=it;else if(1<ht){for(var yt=Array(ht),ft=0;ft<ht;ft++)yt[ft]=arguments[ft+2];W.children=yt}return B(z.type,ut,W)},Zt.createContext=function(z){return z={$$typeof:c,_currentValue:z,_currentValue2:z,_threadCount:0,Provider:null,Consumer:null},z.Provider=z,z.Consumer={$$typeof:r,_context:z},z},Zt.createElement=function(z,Y,it){var W,ut={},ht=null;if(Y!=null)for(W in Y.key!==void 0&&(ht=""+Y.key),Y)F.call(Y,W)&&W!=="key"&&W!=="__self"&&W!=="__source"&&(ut[W]=Y[W]);var yt=arguments.length-2;if(yt===1)ut.children=it;else if(1<yt){for(var ft=Array(yt),mt=0;mt<yt;mt++)ft[mt]=arguments[mt+2];ut.children=ft}if(z&&z.defaultProps)for(W in yt=z.defaultProps,yt)ut[W]===void 0&&(ut[W]=yt[W]);return B(z,ht,ut)},Zt.createRef=function(){return{current:null}},Zt.forwardRef=function(z){return{$$typeof:p,render:z}},Zt.isValidElement=$,Zt.lazy=function(z){return{$$typeof:f,_payload:{_status:-1,_result:z},_init:lt}},Zt.memo=function(z,Y){return{$$typeof:_,type:z,compare:Y===void 0?null:Y}},Zt.startTransition=gt,Zt.unstable_useCacheRefresh=function(){return D.H.useCacheRefresh()},Zt.use=function(z){return D.H.use(z)},Zt.useActionState=function(z,Y,it){return D.H.useActionState(z,Y,it)},Zt.useCallback=function(z,Y){return D.H.useCallback(z,Y)},Zt.useContext=function(z){return D.H.useContext(z)},Zt.useDebugValue=function(){},Zt.useDeferredValue=function(z,Y){return D.H.useDeferredValue(z,Y)},Zt.useEffect=function(z,Y){return D.H.useEffect(z,Y)},Zt.useEffectEvent=function(z){return D.H.useEffectEvent(z)},Zt.useId=function(){return D.H.useId()},Zt.useImperativeHandle=function(z,Y,it){return D.H.useImperativeHandle(z,Y,it)},Zt.useInsertionEffect=function(z,Y){return D.H.useInsertionEffect(z,Y)},Zt.useLayoutEffect=function(z,Y){return D.H.useLayoutEffect(z,Y)},Zt.useMemo=function(z,Y){return D.H.useMemo(z,Y)},Zt.useOptimistic=function(z,Y){return D.H.useOptimistic(z,Y)},Zt.useReducer=function(z,Y,it){return D.H.useReducer(z,Y,it)},Zt.useRef=function(z){return D.H.useRef(z)},Zt.useState=function(z){return D.H.useState(z)},Zt.useSyncExternalStore=function(z,Y,it){return D.H.useSyncExternalStore(z,Y,it)},Zt.useTransition=function(){return D.H.useTransition()},Zt.version="19.3.0",Zt}var iy;function Sg(){return iy||(iy=1,T_.exports=h8()),T_.exports}var y=Sg();const Gt=Cg(y),_8=p8({__proto__:null,default:Gt},[y]);var j_={exports:{}},Cl={},P_={exports:{}},M_={};var ry;function f8(){return ry||(ry=1,(function(t){function e(U,H){var st=U.length;U.push(H);t:for(;0<st;){var lt=st-1>>>1,M=U[lt];if(0<i(M,H))U[lt]=H,U[st]=M,st=lt;else break t}}function n(U){return U.length===0?null:U[0]}function s(U){if(U.length===0)return null;var H=U[0],st=U.pop();if(st!==H){U[0]=st;t:for(var lt=0,M=U.length,gt=M>>>1;lt<gt;){var rt=2*(lt+1)-1,O=U[rt],z=rt+1,Y=U[z];if(0>i(O,st))z<M&&0>i(Y,O)?(U[lt]=Y,U[z]=st,lt=z):(U[lt]=O,U[rt]=st,lt=rt);else if(z<M&&0>i(Y,st))U[lt]=Y,U[z]=st,lt=z;else break t}}return H}function i(U,H){var st=U.sortIndex-H.sortIndex;return st!==0?st:U.id-H.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var r=performance;t.unstable_now=function(){return r.now()}}else{var c=Date,p=c.now();t.unstable_now=function(){return c.now()-p}}var g=[],_=[],f=1,h=null,v=3,b=!1,S=!1,x=!1,w=!1,A=typeof setTimeout=="function"?setTimeout:null,E=typeof clearTimeout=="function"?clearTimeout:null,I=typeof setImmediate<"u"?setImmediate:null;function j(U){for(var H=n(_);H!==null;){if(H.callback===null)s(_);else if(H.startTime<=U)s(_),H.sortIndex=H.expirationTime,e(g,H);else break;H=n(_)}}function T(U){if(x=!1,j(U),!S)if(n(g)!==null)S=!0,P||(P=!0,$());else{var H=n(_);H!==null&&V(T,H.startTime-U)}}var P=!1,N=-1,D=5,F=-1;function B(){return w?!0:!(t.unstable_now()-F<D)}function L(){if(w=!1,P){var U=t.unstable_now();F=U;var H=!0;try{t:{S=!1,x&&(x=!1,E(N),N=-1),b=!0;var st=v;try{e:{for(j(U),h=n(g);h!==null&&!(h.expirationTime>U&&B());){var lt=h.callback;if(typeof lt=="function"){h.callback=null,v=h.priorityLevel;var M=lt(h.expirationTime<=U);if(U=t.unstable_now(),typeof M=="function"){h.callback=M,j(U),H=!0;break e}h===n(g)&&s(g),j(U)}else s(g);h=n(g)}if(h!==null)H=!0;else{var gt=n(_);gt!==null&&V(T,gt.startTime-U),H=!1}}break t}finally{h=null,v=st,b=!1}H=void 0}}finally{H?$():P=!1}}}var $;if(typeof I=="function")$=function(){I(L)};else if(typeof MessageChannel<"u"){var q=new MessageChannel,Q=q.port2;q.port1.onmessage=L,$=function(){Q.postMessage(null)}}else $=function(){A(L,0)};function V(U,H){N=A(function(){U(t.unstable_now())},H)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(U){U.callback=null},t.unstable_forceFrameRate=function(U){0>U||125<U?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):D=0<U?Math.floor(1e3/U):5},t.unstable_getCurrentPriorityLevel=function(){return v},t.unstable_next=function(U){switch(v){case 1:case 2:case 3:var H=3;break;default:H=v}var st=v;v=H;try{return U()}finally{v=st}},t.unstable_requestPaint=function(){w=!0},t.unstable_runWithPriority=function(U,H){switch(U){case 1:case 2:case 3:case 4:case 5:break;default:U=3}var st=v;v=U;try{return H()}finally{v=st}},t.unstable_scheduleCallback=function(U,H,st){var lt=t.unstable_now();switch(typeof st=="object"&&st!==null?(st=st.delay,st=typeof st=="number"&&0<st?lt+st:lt):st=lt,U){case 1:var M=-1;break;case 2:M=250;break;case 5:M=1073741823;break;case 4:M=1e4;break;default:M=5e3}return M=st+M,U={id:f++,callback:H,priorityLevel:U,startTime:st,expirationTime:M,sortIndex:-1},st>lt?(U.sortIndex=st,e(_,U),n(g)===null&&U===n(_)&&(x?(E(N),N=-1):x=!0,V(T,st-lt))):(U.sortIndex=M,e(g,U),S||b||(S=!0,P||(P=!0,$()))),U},t.unstable_shouldYield=B,t.unstable_wrapCallback=function(U){var H=v;return function(){var st=v;v=H;try{return U.apply(this,arguments)}finally{v=st}}}})(M_)),M_}var uy;function k8(){return uy||(uy=1,P_.exports=f8()),P_.exports}var L_={exports:{}},Yn={};var ly;function v8(){if(ly)return Yn;ly=1;var t=Sg();function e(f){var h="https://react.dev/errors/"+f;if(1<arguments.length){h+="?args[]="+encodeURIComponent(arguments[1]);for(var v=2;v<arguments.length;v++)h+="&args[]="+encodeURIComponent(arguments[v])}return"Minified React error #"+f+"; visit "+h+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function n(){}var s={d:{f:n,r:function(){throw Error(e(522))},D:n,C:n,L:n,m:n,X:n,S:n,M:n},p:0,findDOMNode:null},i=Symbol.for("react.portal"),r=Symbol.for("react.recoverable"),c=Symbol.for("react.optimistic_key");function p(f,h,v){var b=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:i,key:b==null?null:b===c?c:""+b,children:f,containerInfo:h,implementation:v}}var g=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function _(f,h){if(f==="font")return"";if(typeof h=="string")return h==="use-credentials"?h:""}return Yn.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=s,Yn.browser=function(f){return{$$typeof:r,_reason:f}},Yn.createPortal=function(f,h){var v=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!h||h.nodeType!==1&&h.nodeType!==9&&h.nodeType!==11)throw Error(e(299));return p(f,h,null,v)},Yn.flushSync=function(f){var h=g.T,v=s.p;try{if(g.T=null,s.p=2,f)return f()}finally{g.T=h,s.p=v,s.d.f()}},Yn.preconnect=function(f,h){typeof f=="string"&&(h?(h=h.crossOrigin,h=typeof h=="string"?h==="use-credentials"?h:"":void 0):h=null,
vendor: 3,193 bytes, line 1
1s.d.C(f,h))},Yn.prefetchDNS=function(f){typeof f=="string"&&s.d.D(f)},Yn.preinit=function(f,h){if(typeof f=="string"&&h&&typeof h.as=="string"){var v=h.as,b=_(v,h.crossOrigin),S=typeof h.integrity=="string"?h.integrity:void 0,x=typeof h.fetchPriority=="string"?h.fetchPriority:void 0;v==="style"?s.d.S(f,typeof h.precedence=="string"?h.precedence:void 0,{crossOrigin:b,integrity:S,fetchPriority:x}):v==="script"&&s.d.X(f,{crossOrigin:b,integrity:S,fetchPriority:x,nonce:typeof h.nonce=="string"?h.nonce:void 0})}},Yn.preinitModule=function(f,h){if(typeof f=="string")if(typeof h=="object"&&h!==null){if(h.as==null||h.as==="script"){var v=_(h.as,h.crossOrigin);s.d.M(f,{crossOrigin:v,integrity:typeof h.integrity=="string"?h.integrity:void 0,nonce:typeof h.nonce=="string"?h.nonce:void 0,fetchPriority:typeof h.fetchPriority=="string"?h.fetchPriority:void 0})}}else h==null&&s.d.M(f)},Yn.preload=function(f,h){if(typeof f=="string"&&typeof h=="object"&&h!==null&&typeof h.as=="string"){var v=h.as,b=_(v,h.crossOrigin);s.d.L(f,v,{crossOrigin:b,integrity:typeof h.integrity=="string"?h.integrity:void 0,nonce:typeof h.nonce=="string"?h.nonce:void 0,type:typeof h.type=="string"?h.type:void 0,fetchPriority:typeof h.fetchPriority=="string"?h.fetchPriority:void 0,referrerPolicy:typeof h.referrerPolicy=="string"?h.referrerPolicy:void 0,imageSrcSet:typeof h.imageSrcSet=="string"?h.imageSrcSet:void 0,imageSizes:typeof h.imageSizes=="string"?h.imageSizes:void 0,media:typeof h.media=="string"?h.media:void 0})}},Yn.preloadModule=function(f,h){if(typeof f=="string")if(h){var v=_(h.as,h.crossOrigin);s.d.m(f,{as:typeof h.as=="string"&&h.as!=="script"?h.as:void 0,crossOrigin:v,integrity:typeof h.integrity=="string"?h.integrity:void 0,nonce:typeof h.nonce=="string"?h.nonce:void 0,fetchPriority:typeof h.fetchPriority=="string"?h.fetchPriority:void 0})}else s.d.m(f)},Yn.requestFormReset=function(f){s.d.r(f)},Yn.unstable_batchedUpdates=function(f,h){return f(h)},Yn.useFormState=function(f,h,v){return g.H.useFormState(f,h,v)},Yn.useFormStatus=function(){return g.H.useHostTransitionStatus()},Yn.version="19.3.0",Yn}var cy;function Zx(){if(cy)return L_.exports;cy=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),L_.exports=v8(),L_.exports}var dy;function y8(){if(dy)return Cl;dy=1;var t=k8(),e=Sg(),n=Zx();function s(a){var o="https://react.dev/errors/"+a;if(1<arguments.length){o+="?args[]="+encodeURIComponent(arguments[1]);for(var u=2;u<arguments.length;u++)o+="&args[]="+encodeURIComponent(arguments[u])}return"Minified React error #"+a+"; visit "+o+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function i(a){return!(!a||a.nodeType!==1&&a.nodeType!==9&&a.nodeType!==11)}function r(a){for(var o=a,u=o;u&&!u.alternate;)o=u,(o.flags&4098)!==0&&(a=o.return),u=o.return;for(;o.return;)o=o.return;return o.tag===3?a:null}function c(a){if(a.tag===13){var o=a.memoizedState;if(o===null&&(a=a.alternate,a!==null&&(o=a.memoizedState)),o!==null)return o.dehydrated}return null}
vendor: 21,160 bytes, lines 1-8
1function p(a){if(a.tag===31){var o=a.memoizedState;if(o===null&&(a=a.alternate,a!==null&&(o=a.memoizedState)),o!==null)return o.dehydrated}return null}function g(a){if(r(a)!==a)throw Error(s(188))}function _(a){var o=a.alternate;if(!o){if(o=r(a),o===null)throw Error(s(188));return o!==a?null:a}for(var u=a,d=o;;){var m=u.return;if(m===null)break;var k=m.alternate;if(k===null){if(d=m.return,d!==null){u=d;continue}break}if(m.child===k.child){for(k=m.child;k;){if(k===u)return g(m),a;if(k===d)return g(m),o;k=k.sibling}throw Error(s(188))}if(u.return!==d.return)u=m,d=k;else{for(var C=!1,R=m.child;R;){if(R===u){C=!0,u=m,d=k;break}if(R===d){C=!0,d=m,u=k;break}R=R.sibling}if(!C){for(R=k.child;R;){if(R===u){C=!0,u=k,d=m;break}if(R===d){C=!0,d=k,u=m;break}R=R.sibling}if(!C)throw Error(s(189))}}if(u.alternate!==d)throw Error(s(190))}if(u.tag!==3)throw Error(s(188));return u.stateNode.current===u?a:o}function f(a){var o=a.tag;if(o===5||o===26||o===27||o===6)return a;for(a=a.child;a!==null;){if(o=f(a),o!==null)return o;a=a.sibling}return null}function h(a,o,u,d,m,k){for(;a!==null;){if((a.tag===5||a.tag===27||a.tag===6)&&u(a,d,m,k)||(a.tag!==22||a.memoizedState===null)&&(o||a.tag!==5&&a.tag!==27)&&h(a.child,o,u,d,m,k))return!0;a=a.sibling}return!1}function v(a){for(a=a.return;a!==null;){if(a.tag===3||a.tag===5||a.tag===27)return a;a=a.return}return null}function b(a){var o=!1;for(a=a.return;a!==null&&(a.tag===4&&(o=!0),!(a.tag===3||a.tag===5||a.tag===27));)a=a.return;return o}function S(a){var o=[null,null],u=v(a);return u===null||x(o,a,u.child,{foundSelf:!1}),o}function x(a,o,u,d){for(;u!==null;){if(u===o)d.foundSelf=!0;else if(u.tag===5||u.tag===27||u.tag===6){if(d.foundSelf)return a[1]=u,!0;a[0]=u}else if((u.tag!==22||u.memoizedState===null)&&x(a,o,u.child,d))return!0;u=u.sibling}return!1}function w(a){switch(a.tag){case 5:case 27:case 6:return a.stateNode;case 3:return a.stateNode.containerInfo;default:throw Error(s(559))}}var A=null,E=null;function I(a,o,u){return a===u?!0:a===o?(A=a,!0):!1}function j(a,o,u){return a===u?(E=a,!1):a===o?(E!==null&&(A=a),!0):!1}function T(a){if(a===null)return null;do a=a===null?null:a.return;while(a&&a.tag!==5&&a.tag!==27&&a.tag!==3);return a||null}function P(a,o,u){for(var d=0,m=a;m;m=u(m))d++;m=0;for(var k=o;k;k=u(k))m++;for(;0<d-m;)a=u(a),d--;for(;0<m-d;)o=u(o),m--;for(;d--;){if(a===o||o!==null&&a===o.alternate)return a;a=u(a),o=u(o)}return null}var N=Object.assign,D=Symbol.for("react.element"),F=Symbol.for("react.transitional.element"),B=Symbol.for("react.portal"),L=Symbol.for("react.fragment"),$=Symbol.for("react.strict_mode"),q=Symbol.for("react.profiler"),Q=Symbol.for("react.consumer"),V=Symbol.for("react.context"),U=Symbol.for("react.forward_ref"),H=Symbol.for("react.suspense"),st=Symbol.for("react.suspense_list"),lt=Symbol.for("react.memo"),M=Symbol.for("react.lazy"),gt=Symbol.for("react.activity"),rt=Symbol.for("react.legacy_hidden"),O=Symbol.for("react.memo_cache_sentinel"),z=Symbol.for("react.view_transition"),Y=Symbol.for("react.recoverable"),it=Symbol.iterator;function W(a){return a===null||typeof a!="object"?null:(a=it&&a[it]||a["@@iterator"],typeof a=="function"?a:null)}var ut=Symbol.for("react.client.reference");function ht(a){if(a==null)return null;if(typeof a=="function")return a.$$typeof===ut?null:a.displayName||a.name||null;if(typeof a=="string")return a;switch(a){case L:return"Fragment";case q:return"Profiler";case $:return"StrictMode";case H:return"Suspense";case st:return"SuspenseList";case gt:return"Activity";case z:return"ViewTransition"}if(typeof a=="object")switch(a.$$typeof){case B:return"Portal";case V:return a.displayName||"Context";case Q:return(a._context.displayName||"Context")+".Consumer";case U:var o=a.render;return a=a.displayName,a||(a=o.displayName||o.name||"",a=a!==""?"ForwardRef("+a+")":"ForwardRef"),a;case lt:return o=a.displayName||null,o!==null?o:ht(a.type)||"Memo";case M:o=a._payload,a=a._init;try{return ht(a(o))}catch{}}return null}var yt=Array.isArray,ft=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,mt=n.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,wt={pending:!1,data:null,method:null,action:null},It=[],Pt=-1;function Nt(a){return{current:a}}function kt(a){0>Pt||(a.current=It[Pt],It[Pt]=null,Pt--)}function pt(a,o){Pt++,It[Pt]=a.current,a.current=o}var Bt=Nt(null),ne=Nt(null),Xt=Nt(null),Ut=Nt(null);function Se(a,o){switch(pt(Xt,o),pt(ne,a),pt(Bt,null),o.nodeType){case 9:case 11:a=(a=o.documentElement)&&(a=a.namespaceURI)?p3(a):0;break;default:if(a=o.tagName,o=o.namespaceURI)o=p3(o),a=g3(o,a);else switch(a){case"svg":a=1;break;case"math":a=2;break;default:a=0}}kt(Bt),pt(Bt,a)}function ue(){kt(Bt),kt(ne),kt(Xt)}function ge(a){var o=a.memoizedState;o!==null&&(zr._currentValue=o.memoizedState,pt(Ut,a)),o=Bt.current;var u=g3(o,a.type);o!==u&&(pt(ne,a),pt(Bt,u))}function at(a){ne.current===a&&(kt(Bt),kt(ne)),Ut.current===a&&(kt(Ut),zr._currentValue=wt)}var _t,Tt;function jt(a){if(_t===void 0)try{throw Error()}catch(u){var o=u.stack.trim().match(/\n( *(at )?)/);_t=o&&o[1]||"",Tt=-1<u.stack.indexOf(`
2    at`)?" (<anonymous>)":-1<u.stack.indexOf("@")?"@unknown:0:0":""}return`
3`+_t+a+Tt}var Ht=!1;function Ct(a,o){if(!a||Ht)return"";Ht=!0;var u=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var d={DetermineComponentFrameRoot:function(){try{if(o){var dt=function(){throw Error()};if(Object.defineProperty(dt.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(dt,[])}catch(xt){var J=xt}Reflect.construct(a,[],dt)}else{try{dt.call()}catch(xt){J=xt}dt=!1;try{var nt=Object.getOwnPropertyDescriptor(a.prototype,"props");Object.defineProperty(a.prototype,"props",{configurable:!0,set:function(){throw Error()}}),dt=!0,new a}finally{dt&&(nt!==void 0?Object.defineProperty(a.prototype,"props",nt):delete a.prototype.props)}}}else{try{throw Error()}catch(xt){J=xt}(dt=a())&&typeof dt.catch=="function"&&dt.catch(function(){})}}catch(xt){if(xt&&J&&typeof xt.stack=="string")return[xt.stack,J.stack]}return[null,null]}};d.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var m=Object.getOwnPropertyDescriptor(d.DetermineComponentFrameRoot,"name");m&&m.configurable&&Object.defineProperty(d.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var k=d.DetermineComponentFrameRoot(),C=k[0],R=k[1];if(C&&R){var G=C.split(`
4`),tt=R.split(`
5`);for(m=d=0;d<G.length&&!G[d].includes("DetermineComponentFrameRoot");)d++;for(;m<tt.length&&!tt[m].includes("DetermineComponentFrameRoot");)m++;if(d===G.length||m===tt.length)for(d=G.length-1,m=tt.length-1;1<=d&&0<=m&&G[d]!==tt[m];)m--;for(;1<=d&&0<=m;d--,m--)if(G[d]!==tt[m]){if(d!==1||m!==1)do if(d--,m--,0>m||G[d]!==tt[m]){var ot=`
6`+G[d].replace(" at new "," at ");return a.displayName&&ot.includes("<anonymous>")&&(ot=ot.replace("<anonymous>",a.displayName)),ot}while(1<=d&&0<=m);break}}}finally{Ht=!1,Error.prepareStackTrace=u}return(u=a?a.displayName||a.name:"")?jt(u):""}function bt(a,o){switch(a.tag){case 26:case 27:case 5:return jt(a.type);case 16:return jt("Lazy");case 13:return a.child!==o&&o!==null?jt("Suspense Fallback"):jt("Suspense");case 19:return jt("SuspenseList");case 0:case 15:return Ct(a.type,!1);case 11:return Ct(a.type.render,!1);case 1:return Ct(a.type,!0);case 31:return jt("Activity");case 30:return jt("ViewTransition");default:return""}}function ae(a){try{var o="",u=null;do o+=bt(a,u),u=a,a=a.return;while(a);return o}catch(d){return`
7Error generating stack: `+d.message+`
8`+d.stack}}var pe=Object.prototype.hasOwnProperty,ve=t.unstable_scheduleCallback,Dt=t.unstable_cancelCallback,Yt=t.unstable_shouldYield,Qt=t.unstable_requestPaint,ye=t.unstable_now,Te=t.unstable_getCurrentPriorityLevel,Gn=t.unstable_ImmediatePriority,Tn=t.unstable_UserBlockingPriority,Zn=t.unstable_NormalPriority,Hn=t.unstable_LowPriority,jn=t.unstable_IdlePriority,ua=t.log,ma=t.unstable_setDisableYieldValue,rn=null,He=null;function zt(a){if(typeof ua=="function"&&ma(a),He&&typeof He.setStrictMode=="function")try{He.setStrictMode(rn,a)}catch{}}var Mt=Math.clz32?Math.clz32:Fe,Ft=Math.log,Ce=Math.LN2;function Fe(a){return a>>>=0,a===0?32:31-(Ft(a)/Ce|0)|0}var Je=256,Fn=262144,Pn=4194304;function Sn(a){var o=a&42;if(o!==0)return o;switch(a&-a){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:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return a&-a;case 262144:case 524288:case 1048576:case 2097152:return a&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return a&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return a}}function Mn(a,o,u){var d=a.pendingLanes;if(d===0)return 0;var m=0,k=a.suspendedLanes,C=a.pingedLanes;a=a.warmLanes;var R=d&134217727;return R!==0?(d=R&~k,d!==0?m=Sn(d):(C&=R,C!==0?m=Sn(C):u||(u=R&~a,u!==0&&(m=Sn(u))))):(R=d&~k,R!==0?m=Sn(R):C!==0?m=Sn(C):u||(u=d&~a,u!==0&&(m=Sn(u)))),m===0?0:o!==0&&o!==m&&(o&k)===0&&(k=m&-m,u=o&-o,k>=u||k===32&&(u&4194048)!==0)?o:m}function gn(a,o){return(a.pendingLanes&~(a.suspendedLanes&~a.pingedLanes)&o)===0}function tn(a,o){(o&8)!==0&&(o|=o&32);var u=a.entangledLanes;if(u!==0)for(a=a.entanglements,u&=o;0<u;){var d=31-Mt(u),m=1<<d;o|=a[d],u&=~m}return o}function ta(a,o){switch(a){case 1:case 2:case 4:case 8:case 64:return o+250;case 16:case 32: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 o+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Vt(){var a=Pn;return Pn<<=1,(Pn&62914560)===0&&(Pn=4194304),a}function ie(a){for(var o=[],u=0;31>u;u++)o.push(a);return o}function be(a,o){a.pendingLanes|=o,o!==268435456&&(a.suspendedLanes=0,a.pingedLanes=0,a.warmLanes=0)}function wn(a,o,u,d,m,k){var C=a.pendingLanes;a.pendingLanes=u,a.suspendedLanes=0,a.pingedLanes=0,a.warmLanes=0,a.expiredLanes&=u,a.entangledLanes&=u,a.errorRecoveryDisabledLanes&=u,a.shellSuspendCounter=0;var R=a.entanglements,G=a.expirationTimes,tt=a.hiddenUpdates;for(u=C&~u;0<u;){var ot=31-Mt(u),dt=1<<ot;R[ot]=0,G[ot]=-1;var J=tt[ot];if(J!==null)for(tt[ot]=null,ot=0;ot<J.length;ot++){var nt=J[ot];nt!==null&&(nt.lane&=-536870913)}u&=~dt}d!==0&&xe(a,d,0),k!==0&&m===0&&a.tag!==0&&(a.suspendedLanes|=k&~(C&~o))}function xe(a,o,u){a.pendingLanes|=o,a.suspendedLanes&=~o;var d=31-Mt(o);a.entangledLanes|=o,a.entanglements[d]=a.entanglements[d]|1073741824|u&261930}function ha(a,o){var u=a.entangledLanes|=o;for(a=a.entanglements;u;){var d=31-Mt(u),m=1<<d;m&o|a[d]&o&&(a[d]|=o),u&=~m}}function _a(a,o){var u=o&-o;return u=(u&42)!==0?1:ze(u),(u&(a.suspendedLanes|o))!==0?0:u}function ze(a){switch(a){case 2:a=1;break;case 8:a=4;break;case 32:a=16;break;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:a=128;break;case 268435456:a=134217728;break;default:a=0}return a}function mn(a){return a&=-a,2<a?8<a?(a&134217727)!==0?32:268435456:8:2}function Ra(){var a=mt.p;return a!==0?a:(a=window.event,a===void 0?32:Y3(a.type))}function Ka(a,o){var u=mt.p;try{return mt.p=a,o()}finally{mt.p=u}}var Ln=Math.random().toString(36).slice(2),Pe="__reactFiber$"+Ln,en="__reactProps$"+Ln,fa="__reactContainer$"+Ln,Rs="__reactEvents$"+Ln,Js="__reactListeners$"+Ln,Un="__reactHandles$"+Ln,Zi="__reactResources$"+Ln,qt="__reactMarker$"+Ln,hn="__reactLoad$"+Ln;function un(a){delete a[Pe],delete a[en],delete a[Js],delete a[Un]}function Ta(a){var o;if(o=a[Pe])return o;for(var u=a.parentNode;u;){if(o=u[fa]||u[Pe]){if(u=o.alternate,o.child!==null||u!==null&&u.child!==null)for(a=R3(a);a!==null;){if(u=a[Pe])return u;a=R3(a)}return o}a=u,u=a.parentNode}return null}function Wa(a){if(a=a[Pe]||a[fa]){var o=a.tag;if(o===5||o===6||o===13||o===31||o===26||o===27||o===3)return a}return null}function Ts(a){var o=a.tag;if(o===5||o===26||o===27||o===6)return a.stateNode;throw Error(s(33))}function Zs(a){var o=a[Zi];return o||(o=a[Zi]={hoistableStyles:new Map,hoistableScripts:new Map}),o}function ln(a){a[qt]=!0}function tr(a){a[hn]=void 0}var er=new Set,Et={};function le(a,o){gs(a,o),gs(a+"Capture",o)}function gs(a,o){for(Et[a]=o,a=0;a<o.length;a++)er.add(o[a])}var sm=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Pu={},Mu={};function om(a){return pe.call(Mu,a)?!0:pe.call(Pu,a)?!1:sm.test(a)?Mu[a]=!0:(Pu[a]=!0,!1)}var we=!1;function J1(){var a=we;return we=!1,a}function Kc(a,o,u){if(om(o))if(u===null)a.removeAttribute(o);else{switch(typeof u){case"undefined":case"function":case"symbol":a.removeAttribute(o);return;case"boolean":var d=o.toLowerCase().slice(0,5);if(d!=="data-"&&d!=="aria-"){a.removeAttribute(o);return}}a.setAttribute(o,u)}}function Wc(a,o,u){if(u===null)a.removeAttribute(o);else{switch(typeof u){case"undefined":case"function":case"symbol":case"boolean":a.removeAttribute(o);return}a.setAttribute(o,u)}}function to(a,o,u,d){if(d===null)a.removeAttribute(u);else{switch(typeof d){case"undefined":case"function":case"symbol":case"boolean":a.removeAttribute(u);return}a.setAttributeNS(o,u,d)}}function ja(a){switch(typeof a){case"bigint":case"boolean":case"number":case"string":case"undefined":return a;case"object":return a;default:return""}}function Z1(a){var o=a.type;return(a=a.nodeName)&&a.toLowerCase()==="input"&&(o==="checkbox"||o==="radio")}function jC(a,o,u){var d=Object.getOwnPropertyDescriptor(a.constructor.prototype,o);if(!a.hasOwnProperty(o)&&typeof d<"u"&&typeof d.get=="function"&&typeof d.set=="function"){var m=d.get,k=d.set;return Object.defineProperty(a,o,{configurable:!0,get:function(){return m.call(this)},set:function(C){u=""+C,k.call(this,C)}}),Object.defineProperty(a,o,{enumerable:d.enumerable}),{getValue:function(){return u},setValue:function(C){u=""+C},stopTracking:function(){a._valueTracker=null,delete a[o]}}}}function im(a){if(!a._valueTracker){var o=Z1(a)?"checked":"value";a._valueTracker=jC(a,o,""+a[o])}}function tv(a){if(!a)return!1;var o=a._valueTracker;if(!o)return!0;var u=o.getValue(),d="";return a&&(d=Z1(a)?a.checked?"true":"false":a.value),a=d,a!==u?(o.setValue(a),!0):!1}var PC=/[\n"\\]/g;function Xa(a){return a.replace(PC,function(o){return"\\"+o.charCodeAt(0).toString(16)+" "})}function rm(a,o,u,d,m,k,C,R){a.name="",C!=null&&typeof C!="function"&&typeof C!="symbol"&&typeof C!="boolean"?a.type=C:a.removeAttribute("type"),o!=null?C==="number"?(o===0&&a.value===""||a.value!=o)&&(a.value=""+ja(o)):a.value!==""+ja(o)&&(a.value=""+ja(o)):C!=="submit"&&C!=="reset"||a.removeAttribute("value"),o!=null?C==="number"&&a.value==o?um(a,ja(a.value)):um(a,ja(o)):u!=null?um(a,ja(u)):d!=null&&a.removeAttribute("value"),m==null&&k!=null&&(a.defaultChecked=!!k),m!=null&&(a.checked=m&&typeof m!="function"&&typeof m!="symbol"),R!=null&&typeof R!="function"&&typeof R!="symbol"&&typeof R!="boolean"?a.name=""+ja(R):a.removeAttribute("name")}function ev(a,o,u,d,m,k,C,R){if(k!=null&&typeof k!="function"&&typeof k!="symbol"&&typeof k!="boolean"&&(a.type=k),o!=null||u!=null){if(!(k!=="submit"&&k!=="reset"||o!=null)){im(a);return}u=u!=null?""+ja(u):"",o=o!=null?""+ja(o):u,R||o===a.value||(a.value=o),a.defaultValue=o}d=d??m,d=typeof d!="function"&&typeof d!="symbol"&&!!d,a.checked=R?a.checked:!!d,a.defaultChecked=!!d,C!=null&&typeof C!="function"&&typeof C!="symbol"&&typeof C!="boolean"&&(a.name=C),im(a)}function um(a,o){a.defaultValue!==""+o&&(a.defaultValue=""+o)}function nr(a,o,u,d){if(a=a.options,o){o={};for(var m=0;m<u.length;m++)o["$"+u[m]]=!0;for(u=0;u<a.length;u++)m=o.hasOwnProperty("$"+a[u].value),a[u].selected!==m&&(a[u].selected=m),m&&d&&(a[u].defaultSelected=!0)}else{for(u=""+ja(u),o=null,m=0;m<a.length;m++){if(a[m].value===u){a[m].selected=!0,d&&(a[m].defaultSelected=!0);return}o!==null||a[m].disabled||(o=a[m])}o!==null&&(o.selected=!0)}}function nv(a,o,u){if(o!=null&&(o=""+ja(o),o!==a.value&&(a.value=o),u==null)){a.defaultValue!==o&&(a.defaultValue=o);return}a.defaultValue=u!=null?""+ja(u):""}function av(a,o,u,d){if(o==null){if(d!=null){if(u!=null)throw Error(s(92));if(yt(d)){if(1<d.length)throw Error(s(93));d=d[0]}u=d}u==null&&(u=""),o=u}u=ja(o),a.defaultValue=u,d=a.textContent,d===u&&d!==""&&d!==null&&(a.value=d),im(a)}function ar(a,o){if(o){var u=a.firstChild;if(u&&u===a.lastChild&&u.nodeType===3){u.nodeValue=o;return}}a.textContent=o}var MC=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function sv(a,o,u){var d=o.indexOf("--")===0;u==null||typeof u=="boolean"||u===""?d?a.setProperty(o,""):o==="float"?a.cssFloat="":a[o]="":d?a.setProperty(o,u):typeof u!="number"||u===0||MC.has(o)?o==="float"?a.cssFloat=u:a[o]=(""+u).trim():a[o]=u+"px"}function ov(a,o,u){if(o!=null&&typeof o!="object")throw Error(s(62));if(a=a.style,u!=null){for(var d in u)!u.hasOwnProperty(d)||o!=null&&o.hasOwnProperty(d)||(d.indexOf("--")===0?a.setProperty(d,""):d==="float"?a.cssFloat="":a[d]="",we=!0);for(var m in o)d=o[m],o.hasOwnProperty(m)&&u[m]!==d&&(sv(a,m,d),we=!0)}else for(var k in o)o.hasOwnProperty(k)&&sv(a,k,o[k])}function lm(a){if(a.indexOf("-")===-1)return!1;switch(a){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 LC=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["maskType","mask-type"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode
8-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),OC=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Xc(a){return OC.test(""+a)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":a}function js(){}var cm=null;function dm(a){return a=a.target||a.srcElement||window,a.correspondingUseElement&&(a=a.correspondingUseElement),a.nodeType===3?a.parentNode:a}var sr=null,or=null;function iv(a){var o=Wa(a);if(o&&(a=o.stateNode)){var u=a[en]||null;t:switch(a=o.stateNode,o.type){case"input":if(rm(a,u.value,u.defaultValue,u.defaultValue,u.checked,u.defaultChecked,u.type,u.name),o=u.name,u.type==="radio"&&o!=null){for(u=a;u.parentNode;)u=u.parentNode;for(u=u.querySelectorAll('input[name="'+Xa(""+o)+'"][type="radio"]'),o=0;o<u.length;o++){var d=u[o];if(d!==a&&d.form===a.form){var m=d[en]||null;if(!m)throw Error(s(90));rm(d,m.value,m.defaultValue,m.defaultValue,m.checked,m.defaultChecked,m.type,m.name)}}for(o=0;o<u.length;o++)d=u[o],d.form===a.form&&tv(d)}break t;case"textarea":nv(a,u.value,u.defaultValue);break t;case"select":o=u.value,o!=null&&nr(a,!!u.multiple,o,!1)}}}var pm=!1;function rv(a,o,u){if(pm)return a(o,u);pm=!0;try{var d=a(o);return d}finally{if(pm=!1,(sr!==null||or!==null)&&(Xd(),sr&&(o=sr,a=or,or=sr=null,iv(o),a)))for(o=0;o<a.length;o++)iv(a[o])}}function Lu(a,o){var u=a.stateNode;if(u===null)return null;var d=u[en]||null;if(d===null)return null;u=d[o];t:switch(o){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(d=!d.disabled)||(a=a.type,d=!(a==="button"||a==="input"||a==="select"||a==="textarea")),a=!d;break t;default:a=!1}if(a)return null;if(u&&typeof u!="function")throw Error(s(231,o,typeof u));return u}var eo=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),gm=!1;if(eo)try{var Ou={};Object.defineProperty(Ou,"passive",{get:function(){gm=!0}}),window.addEventListener("test",Ou,Ou),window.removeEventListener("test",Ou,Ou)}catch{gm=!1}var yo=null,mm=null,Yc=null;function uv(){if(Yc)return Yc;var a,o=mm,u=o.length,d,m="value"in yo?yo.value:yo.textContent,k=m.length;for(a=0;a<u&&o[a]===m[a];a++);var C=u-a;for(d=1;d<=C&&o[u-d]===m[k-d];d++);return Yc=m.slice(a,1<d?1-d:void 0)}function Qc(a){var o=a.keyCode;return"charCode"in a?(a=a.charCode,a===0&&o===13&&(a=13)):a=o,a===10&&(a=13),32<=a||a===13?a:0}function Jc(){return!0}function lv(){return!1}function la(a){function o(u,d,m,k,C){this._reactName=u,this._targetInst=m,this.type=d,this.nativeEvent=k,this.target=C,this.currentTarget=null;for(var R in a)a.hasOwnProperty(R)&&(u=a[R],this[R]=u?u(k):k[R]);return this.isDefaultPrevented=(k.defaultPrevented!=null?k.defaultPrevented:k.returnValue===!1)?Jc:lv,this.isPropagationStopped=lv,this}return N(o.prototype,{preventDefault:function(){this.defaultPrevented=!0;var u=this.nativeEvent;u&&(u.preventDefault?u.preventDefault():typeof u.returnValue!="unknown"&&(u.returnValue=!1),this.isDefaultPrevented=Jc)},stopPropagation:function(){var u=this.nativeEvent;u&&(u.stopPropagation?u.stopPropagation():typeof u.cancelBubble!="unknown"&&(u.cancelBubble=!0),this.isPropagationStopped=Jc)},persist:function(){},isPersistent:Jc}),o}var bo={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Zc=la(bo),Du=N({},bo,{view:0,detail:0}),DC=la(Du),hm,_m,zu,td=N({},Du,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:km,button:0,buttons:0,relatedTarget:function(a){return a.relatedTarget===void 0?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){return"movementX"in a?a.movementX:(a!==zu&&(zu&&a.type==="mousemove"?(hm=a.screenX-zu.screenX,_m=a.screenY-zu.screenY):_m=hm=0,zu=a),hm)},movementY:function(a){return"movementY"in a?a.movementY:_m}}),cv=la(td),zC=N({},td,{dataTransfer:0}),BC=la(zC),$C=N({},Du,{relatedTarget:0}),fm=la($C),GC=N({},bo,{animationName:0,elapsedTime:0,pseudoElement:0}),HC=la(GC),FC=N({},bo,{clipboardData:function(a){return"clipboardData"in a?a.clipboardData:window.clipboardData}}),UC=la(FC),VC=N({},bo,{data:0}),dv=la(VC),qC={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},KC={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},WC={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function XC(a){var o=this.nativeEvent;return o.getModifierState?o.getModifierState(a):(a=WC[a])?!!o[a]:!1}function km(){return XC}var YC=N({}
vendor: 5,458 bytes, line 8
8,Du,{key:function(a){if(a.key){var o=qC[a.key]||a.key;if(o!=="Unidentified")return o}return a.type==="keypress"?(a=Qc(a),a===13?"Enter":String.fromCharCode(a)):a.type==="keydown"||a.type==="keyup"?KC[a.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:km,charCode:function(a){return a.type==="keypress"?Qc(a):0},keyCode:function(a){return a.type==="keydown"||a.type==="keyup"?a.keyCode:0},which:function(a){return a.type==="keypress"?Qc(a):a.type==="keydown"||a.type==="keyup"?a.keyCode:0}}),QC=la(YC),JC=N({},td,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),pv=la(JC),ZC=N({},bo,{submitter:0}),tS=la(ZC),eS=N({},Du,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:km}),nS=la(eS),aS=N({},bo,{propertyName:0,elapsedTime:0,pseudoElement:0}),sS=la(aS),oS=N({},td,{deltaX:function(a){return"deltaX"in a?a.deltaX:"wheelDeltaX"in a?-a.wheelDeltaX:0},deltaY:function(a){return"deltaY"in a?a.deltaY:"wheelDeltaY"in a?-a.wheelDeltaY:"wheelDelta"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),iS=la(oS),rS=N({},bo,{newState:0,oldState:0,source:0}),uS=la(rS),lS=[9,13,27,32],vm=eo&&"CompositionEvent"in window,Bu=null;eo&&"documentMode"in document&&(Bu=document.documentMode);var cS=eo&&"TextEvent"in window&&!Bu,gv=eo&&(!vm||Bu&&8<Bu&&11>=Bu),mv=" ",hv=!1;function _v(a,o){switch(a){case"keyup":return lS.indexOf(o.keyCode)!==-1;case"keydown":return o.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function fv(a){return a=a.detail,typeof a=="object"&&"data"in a?a.data:null}var ir=!1;function dS(a,o){switch(a){case"compositionend":return fv(o);case"keypress":return o.which!==32?null:(hv=!0,mv);case"textInput":return a=o.data,a===mv&&hv?null:a;default:return null}}function pS(a,o){if(ir)return a==="compositionend"||!vm&&_v(a,o)?(a=uv(),Yc=mm=yo=null,ir=!1,a):null;switch(a){case"paste":return null;case"keypress":if(!(o.ctrlKey||o.altKey||o.metaKey)||o.ctrlKey&&o.altKey){if(o.char&&1<o.char.length)return o.char;if(o.which)return String.fromCharCode(o.which)}return null;case"compositionend":return gv&&o.locale!=="ko"?null:o.data;default:return null}}var gS={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function kv(a){var o=a&&a.nodeName&&a.nodeName.toLowerCase();return o==="input"?!!gS[a.type]:o==="textarea"}function vv(a,o,u,d){sr?or?or.push(d):or=[d]:sr=d,o=ep(o,"onChange"),0<o.length&&(u=new Zc("onChange","change",null,u,d),a.push({event:u,listeners:o}))}var $u=null,Gu=null;function mS(a){i3(a,0)}function ed(a){var o=Ts(a);if(tv(o))return a}function yv(a,o){if(a==="change")return o}var bv=!1;if(eo){var ym;if(eo){var bm="oninput"in document;if(!bm){var xv=document.createElement("div");xv.setAttribute("oninput","return;"),bm=typeof xv.oninput=="function"}ym=bm}else ym=!1;bv=ym&&(!document.documentMode||9<document.documentMode)}function Av(){$u&&($u.detachEvent("onpropertychange",Cv),Gu=$u=null)}function Cv(a){if(a.propertyName==="value"&&ed(Gu)){var o=[];vv(o,Gu,a,dm(a)),rv(mS,o)}}function hS(a,o,u){a==="focusin"?(Av(),$u=o,Gu=u,$u.attachEvent("onpropertychange",Cv)):a==="focusout"&&Av()}function _S(a){if(a==="selectionchange"||a==="keyup"||a==="keydown")return ed(Gu)}function fS(a,o){if(a==="click")return ed(o)}function kS(a,o){if(a==="input"||a==="change")return ed(o)}function vS(a,o){return a===o&&(a!==0||1/a===1/o)||a!==a&&o!==o}var Pa=typeof Object.is=="function"?Object.is:vS;function Hu(a,o){if(Pa(a,o))return!0;if(typeof a!="object"||a===null||typeof o!="object"||o===null)return!1;var u=Object.keys(a),d=Object.keys(o);if(u.length!==d.length)return!1;for(d=0;d<u.length;d++){var m=u[d];if(!pe.call(o,m)||!Pa(a[m],o[m]))return!1}return!0}function xm(a){if(a=a||(typeof document<"u"?document:void 0),typeof a>"u")return null;try{return a.activeElement||a.body}catch{return a.body}}function Sv(a){for(;a&&a.firstChild;)a=a.firstChild;return a}function wv(a,o){var u=Sv(a);a=0;for(var d;u;){if(u.nodeType===3){if(d=a+u.textContent.length,a<=o&&d>=o)return{node:u,offset:o-a};a=d}t:{for(;u;){if(u.nextSibling){u=u.nextSibling;break t}u=u.parentNode}u=void 0}u=Sv(u)}}function Ev(a,o){return a&&o?a===o?!0:a&&a.nodeType===3?!1:o&&o.nodeType===3?Ev(a,o.parentNode):"contains"in a?a.contains(o):a.compareDocumentPosition?!!(a.compareDocumentPosition(o)&16):!1:!1}function Iv(a){a=a!=null&&a.ownerDocument!=null&&a.ownerDocument.defaultView!=null?a.ownerDocument.defaultView:window;for(var o=xm(a.document);o instanceof a.HTMLIFrameElement;){try{var u=typeof o.contentWindow.location.href=="string"}catch{u=!1}if(u)a=o.contentWindow;else break;o=xm(a.document)}return o}function Am(a){var o=a&&a.nodeName&&a.nodeName.toLowerCase();return o&&(o==="input"&&(a.type==="text"||a.type==="search"||a.type==="tel"||a.type==="url"||a.type==="password")||o==="textarea"||a.contentEditable==="true")}var yS=eo&&"documentMode"in document&&11>=document.documentMode,rr=null,Cm=null,Fu=null,Sm=!1;function Nv(a,o,u){var d=u.window===u?u.document:u.nodeType===9?u:u.ownerDocument;Sm||rr==null||rr!==xm(d)||(d=rr,"selectionStart"in d&&Am(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focu
vendor: 38,533 bytes, line 8
8sNode:d.focusNode,focusOffset:d.focusOffset}),Fu&&Hu(Fu,d)||(Fu=d,d=ep(Cm,"onSelect"),0<d.length&&(o=new Zc("onSelect","select",null,o,u),a.push({event:o,listeners:d}),o.target=rr)))}function ii(a,o){var u={};return u[a.toLowerCase()]=o.toLowerCase(),u["Webkit"+a]="webkit"+o,u["Moz"+a]="moz"+o,u}var ur={animationend:ii("Animation","AnimationEnd"),animationiteration:ii("Animation","AnimationIteration"),animationstart:ii("Animation","AnimationStart"),transitionrun:ii("Transition","TransitionRun"),transitionstart:ii("Transition","TransitionStart"),transitioncancel:ii("Transition","TransitionCancel"),transitionend:ii("Transition","TransitionEnd")},wm={},Rv={};eo&&(Rv=document.createElement("div").style,"AnimationEvent"in window||(delete ur.animationend.animation,delete ur.animationiteration.animation,delete ur.animationstart.animation),"TransitionEvent"in window||delete ur.transitionend.transition);function ri(a){if(wm[a])return wm[a];if(!ur[a])return a;var o=ur[a],u;for(u in o)if(o.hasOwnProperty(u)&&u in Rv)return wm[a]=o[u];return a}var Tv=ri("animationend"),jv=ri("animationiteration"),Pv=ri("animationstart"),bS=ri("transitionrun"),xS=ri("transitionstart"),AS=ri("transitioncancel"),Mv=ri("transitionend"),Lv=new Map,Em="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error fullscreenChange fullscreenError gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");Em.push("scrollEnd");function ms(a,o){Lv.set(a,o),le(o,[a])}var CS=0;function no(a,o){if(a.name!=null&&a.name!=="auto")return a.name;if(o.autoName!==null)return o.autoName;a=ks.identifierPrefix;var u=CS++;return a="_"+a+"t_"+u.toString(32)+"_",o.autoName=a}function Ov(a){if(a==null||typeof a=="string")return a;var o=null,u=Ir;if(u!==null)for(var d=0;d<u.length;d++){var m=a[u[d]];if(m!=null){if(m==="none")return"none";o=o==null?m:o+(" "+m)}}return o??a.default}function ao(a,o){return a=Ov(a),o=Ov(o),o==null?a==="auto"?null:a:o==="auto"?null:o}var nd=typeof reportError=="function"?reportError:function(a){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var o=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof a=="object"&&a!==null&&typeof a.message=="string"?String(a.message):String(a),error:a});if(!window.dispatchEvent(o))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",a);return}console.error(a)},Ya=[],lr=0,Im=0;function ad(){for(var a=lr,o=Im=lr=0;o<a;){var u=Ya[o];Ya[o++]=null;var d=Ya[o];Ya[o++]=null;var m=Ya[o];Ya[o++]=null;var k=Ya[o];if(Ya[o++]=null,d!==null&&m!==null){var C=d.pending;C===null?m.next=m:(m.next=C.next,C.next=m),d.pending=m}k!==0&&Dv(u,m,k)}}function sd(a,o,u,d){Ya[lr++]=a,Ya[lr++]=o,Ya[lr++]=u,Ya[lr++]=d,Im|=d,a.lanes|=d,a=a.alternate,a!==null&&(a.lanes|=d)}function Nm(a,o,u,d){return sd(a,o,u,d),od(a)}function ui(a,o){return sd(a,null,null,o),od(a)}function Dv(a,o,u){a.lanes|=u;var d=a.alternate;d!==null&&(d.lanes|=u);for(var m=!1,k=a.return;k!==null;)k.childLanes|=u,d=k.alternate,d!==null&&(d.childLanes|=u),k.tag===22&&(a=k.stateNode,a===null||a._visibility&1||(m=!0)),a=k,k=k.return;return a.tag===3?(k=a.stateNode,m&&o!==null&&(m=31-Mt(u),a=k.hiddenUpdates,d=a[m],d===null?a[m]=[o]:d.push(o),o.lane=u|536870912),k):null}function od(a){if(50<dl)throw dl=0,Wd=null,Error(s(185));for(var o=a.return;o!==null;)a=o,o=a.return;return a.tag===3?a.stateNode:null}var cr={};function SS(a,o,u,d){this.tag=a,this.key=u,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=o,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=d,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ka(a,o,u,d){return new SS(a,o,u,d)}function Rm(a){return a=a.prototype,!(!a||!a.isReactComponent)}function so(a,o){var u=a.alternate;return u===null?(u=ka(a.tag,o,a.key,a.mode),u.elementType=a.elementType,u.type=a.type,u.stateNode=a.stateNode,u.alternate=a,a.alternate=u):(u.pendingProps=o,u.type=a.type,u.flags=0,u.subtreeFlags=0,u.deletions=null),u.flags=a.flags&1206910976,u.childLanes=a.childLanes,u.lanes=a.lanes,u.child=a.child,u.memoizedProps=a.memoizedProps,u.memoizedState=a.memoizedState,u.updateQueue=a.updateQueue,o=a.dependencies,u.dependencies=o===null?null:{lanes:o.lanes,firstContext:o.firstContext},u.sibling=a.sibling,u.index=a.index,u.ref=a.ref,u.refCleanup=a.refCleanup,u}function zv(a,o){a.flags&=1206910978;var u=a.alternate;return u===null?(a.childLanes=0,a.lanes=o,a.child=null,a.subtreeFlags=0,a.memoizedProps=null,a.memoizedState=null,a.updateQueue=null,a.dependencies=null,a.stateNode=null):(a.childLanes=u.childLanes,a.lanes=u.lanes,a.child=u.child,a.subtreeFlags=0,a.deletions=null,a.memoizedProps=u.memoizedProps,a.memoizedState=u.memoizedState,a.updateQueue=u.updateQueue,a.type=u.type,o=u.dependencies,a.dependencies=o===null?null:{lanes:o.lanes,firstContext:o.firstContext}),a}function id(a,o,u,d,m,k){var C=0;if(d=a,typeof d=="function")Rm(d)&&(C=1);else if(typeof d=="string")C=Zw(a,u,Bt.current)?26:a==="html"||a==="head"||a==="body"?27:5;else t:switch(d){case gt:return a=ka(31,u,o,m),a.elementType=gt,a.lanes=k,a;case L:return li(u.children,m,k,o);case $:C=8,m|=24;break;case q:return a=ka(12,u,o,m|2),a.elementType=q,a.lanes=k,a;case H:return a=ka(13,u,o,m),a.elementType=H,a.lanes=k,a;case st:return a=ka(19,u,o,m),a.elementType=st,a.lanes=k,a;case rt:case z:return a=m|32,a=ka(30,u,o,a),a.elementType=z,a.lanes=k,a.stateNode={autoName:null,paired:null,clones:null,ref:null},a;default:if(typeof d=="object"&&d!==null)switch(d.$$typeof){case V:C=10;break t;case Q:C=9;break t;case U:C=11;break t;case lt:C=14;break t;case M:C=16,d=null;break t}C=29,u=Error(s(130,a===null?"null":typeof a,"")),d=null}return o=ka(C,u,o,m),o.elementType=a,o.type=d,o.lanes=k,o}function li(a,o,u,d){return a=ka(7,a,d,o),a.lanes=u,a}function Tm(a,o,u){return a=ka(6,a,null,o),a.lanes=u,a}function Bv(a){var o=ka(18,null,null,0);return o.stateNode=a,o}function jm(a,o,u){return o=ka(4,a.children!==null?a.children:[],a.key,o),o.lanes=u,o.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation},o}var $v=new WeakMap;function Qa(a,o){if(typeof a=="object"&&a!==null){var u=$v.get(a);return u!==void 0?u:(o={value:a,source:o,stack:ae(o)},$v.set(a,o),o)}return{value:a,source:o,stack:ae(o)}}var dr=[],pr=0,rd=null,Uu=0,Ja=[],Za=0,xo=null,Ps=1,Ms="";function oo(a,o){dr[pr++]=Uu,dr[pr++]=rd,rd=a,Uu=o}function Gv(a,o,u){Ja[Za++]=Ps,Ja[Za++]=Ms,Ja[Za++]=xo,xo=a;var d=Ps;a=Ms;var m=32-Mt(d)-1;d&=~(1<<m),u+=1;var k=32-Mt(o)+m;if(30<k){var C=m-m%5;k=(d&(1<<C)-1).toString(32),d>>=C,m-=C,Ps=1<<32-Mt(o)+m|u<<m|d,Ms=k+a}else Ps=1<<k|u<<m|d,Ms=a}function ud(a){a.return!==null&&(oo(a,1),Gv(a,1,0))}function Pm(a){for(;a===rd;)rd=dr[--pr],dr[pr]=null,Uu=dr[--pr],dr[pr]=null;for(;a===xo;)xo=Ja[--Za],Ja[Za]=null,Ms=Ja[--Za],Ja[Za]=null,Ps=Ja[--Za],Ja[Za]=null}function Hv(a,o){Ja[Za++]=Ps,Ja[Za++]=Ms,Ja[Za++]=xo,Ps=o.id,Ms=o.overflow,xo=a}var On=null,qe=null,ce=!1,Ao=null,ts=!1,Mm=Error(s(519));function Co(a){var o=Error(s(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Vu(Qa(o,a)),Mm}function Fv(a){var o=a.stateNode,u=a.type,d=a.memoizedProps;switch(o[Pe]=a,o[en]=d,u){case"dialog":he("cancel",o),he("close",o);break;case"iframe":case"object":case"embed":he("load",o);break;case"video":case"audio":for(u=0;u<gl.length;u++)he(gl[u],o);break;case"source":he("error",o);break;case"img":case"image":case"link":he("error",o),he("load",o);break;case"details":he("toggle",o);break;case"input":he("invalid",o),ev(o,d.value,d.defaultValue,d.checked,d.defaultChecked,d.type,d.name,!0);break;case"select":he("invalid",o);break;case"textarea":he("invalid",o),av(o,d.value,d.defaultValue,d.children)}u=d.children,typeof u!="string"&&typeof u!="number"&&typeof u!="bigint"||o.textContent===""+u||d.suppressHydrationWarning===!0||c3(o.textContent,u)?(d.popover!=null&&(he("beforetoggle",o),he("toggle",o)),d.onScroll!=null&&he("scroll",o),d.onScrollEnd!=null&&he("scrollend",o),d.onClick!=null&&(o.onclick=js),o=!0):o=!1,o||Co(a,!0)}function ld(a){for(On=a.return;On;)switch(On.tag){case 5:case 31:case 13:ts=!1;return;case 27:case 3:ts=!0;return;default:On=On.return}}function gr(a){if(a!==On)return!1;if(!ce)return ld(a),ce=!0,!1;var o=a.tag,u;if((u=o!==3&&o!==27)&&((u=o===5)&&(u=a.type,u=!(u!=="form"&&u!=="button")||c_(a.type,a.memoizedProps)),u=!u),u&&qe&&Co(a),ld(a),o===13){if(a=a.memoizedState,a=a!==null?a.dehydrated:null,!a)throw Error(s(317));qe=N3(a)}else if(o===31){if(a=a.memoizedState,a=a!==null?a.dehydrated:null,!a)throw Error(s(317));qe=N3(a)}else o===27?(o=qe,$o(a.type)?(a=v_,v_=null,qe=a):qe=o):qe=On?ns(a.stateNode.nextSibling):null;return!0}function ci(){qe=On=null,ce=!1}function Lm(){var a=Ao;return a!==null&&(ba===null?ba=a:ba.push.apply(ba,a),Ao=null),a}function Vu(a){Ao===null?Ao=[a]:Ao.push(a)}var Om=Nt(null),di=null,io=null;function So(a,o,u){pt(Om,o._currentValue),o._currentValue=u}function ro(a){a._currentValue=Om.current,kt(Om)}function cd(a,o,u){for(;a!==null;){var d=a.alternate;if((a.childLanes&o)!==o?(a.childLanes|=o,d!==null&&(d.childLanes|=o)):d!==null&&(d.childLanes&o)!==o&&(d.childLanes|=o),a===u)break;a=a.return}}function Dm(a,o,u,d){var m=a.child;for(m!==null&&(m.return=a);m!==null;){var k=m.dependencies;if(k!==null){var C=m.child;k=k.firstContext;t:for(;k!==null;){var R=k;k=m;for(var G=0;G<o.length;G++)if(R.context===o[G]){k.lanes|=u,R=k.alternate,R!==null&&(R.lanes|=u),cd(k.return,u,a),d||(C=null);break t}k=R.next}}else if(m.tag===18){if(C=m.return,C===null)throw Error(s(341));C.lanes|=u,k=C.alternate,k!==null&&(k.lanes|=u),cd(C,u,a),C=null}else m.tag===13&&m.memoizedState!==null&&m.memoizedState.dehydrated===null?(m.lanes|=u,C=m.alternate,C!==null&&(C.lanes|=u),cd(m.return,u,a),C=m.child,C=C!==null?C.sibling:null):C=m.child;if(C!==null)C.return=m;else for(C=m;C!==null;){if(C===a){C=null;break}if(m=C.sibling,m!==null){m.return=C.return,C=m;break}C=C.return}m=C}}function pi(a,o,u,d){a=null;for(var m=o,k=!1;m!==null;){if(!k){if((m.flags&524288)!==0)k=!0;else if((m.flags&262144)!==0)break}if(m.tag===10){var C=m.alternate;if(C===null)throw Error(s(387));if(C=C.memoizedProps,C!==null){var R=m.type;Pa(m.pendingProps.value,C.value)||(a!==null?a.push(R):a=[R])}}else if(m===Ut.current){if(C=m.alternate,C===null)throw Error(s(387));C.memoizedState.memoizedState!==m.memoizedState.memoizedState&&(a!==null?a.push(zr):a=[zr])}m=m.return}return a!==null&&Dm(o,a,u,d),o.flags|=262144,a!==null}function dd(a){for(a=a.firstContext;a!==null;){if(!Pa(a.context._currentValue,a.memoizedValue))return!0;a=a.next}return!1}function gi(a){di=a,io=null,a=a.dependencies,a!==null&&(a.firstContext=null)}function Vn(a){return Uv(di,a)}function pd(a,o){return di===null&&gi(a),Uv(a,o)}function Uv(a,o){var u=o._currentValue;if(o={context:o,memoizedValue:u,next:null},io===null){if(a===null)throw Error(s(308));io=o,a.dependencies={lanes:0,firstContext:o},a.flags|=524288}else io=io.next=o;return u}var wS=typeof AbortController<"u"?AbortController:function(){var a=[],o=this.signal={aborted:!1,addEventListener:function(u,d){a.push(d)}};this.abort=function(){o.aborted=!0,a.forEach(function(u){return u()})}},ES=t.unstable_scheduleCallback,IS=t.unstable_NormalPriority,kn={$$typeof:V,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function zm(){return{controller:new wS,data:new Map,refCount:0}}function qu(a){a.refCount--,a.refCount===0&&ES(IS,function(){a.controller.abort()})}function Vv(a,o){if((a.pendingLanes&4194048)!==0){var u=a.transitionTypes;for(u===null&&(u=a.transitionTypes=[]),a=0;a<o.length;a++){var d=o[a];u.indexOf(d)===-1&&u.push(d)}}}var Ku=null;function NS(a){var o=a.transitionTypes;return a.transitionTypes=null,o}var Wu=null,Bm=0,mi=0,mr=null;function RS(a,o){if(Wu===null){var u=Wu=[];Bm=0,mi=e_(),mr={status:"pending",value:void 0,then:function(d){u.push(d)}}}return Bm++,o.then(qv,qv),o}function qv(){if(--Bm===0&&(Ku=null,Wu!==null)){mr!==null&&(mr.status="fulfilled");var a=Wu;Wu=null,mi=0,mr=null;for(var o=0;o<a.length;o++)(0,a[o])()}}function TS(a,o){var u=[],d={status:"pending",value:null,reason:null,then:function(m){u.push(m)}};return a.then(function(){d.status="fulfilled",d.value=o;for(var m=0;m<u.length;m++)(0,u[m])(o)},function(m){for(d.status="rejected",d.reason=m,m=0;m<u.length;m++)(0,u[m])(void 0)}),d}var Kv=ft.S;ft.S=function(a,o){if(B9=ye(),typeof o=="object"&&o!==null&&typeof o.then=="function"&&RS(a,o),Ku!==null)for(var u=jr;u!==null;)Vv(u,Ku),u=u.next;if(u=a.types,u!==null){for(var d=jr;d!==null;)Vv(d,u),d=d.next;if(mi!==0){d=Ku,d===null&&(d=Ku=[]);for(var m=0;m<u.length;m++){var k=u[m];d.indexOf(k)===-1&&d.push(k)}}}Kv!==null&&Kv(a,o)};var hi=Nt(null);function $m(){var a=hi.current;return a!==null?a:Ue.pooledCache}function gd(a,o){o===null?pt(hi,hi.current):pt(hi,o.pool)}function Wv(){var a=$m();return a===null?null:{parent:kn._currentValue,pool:a}}var hr=Error(s(460)),Gm=Error(s(474)),md=Error(s(542)),hd={then:function(){}};function Xv(a){return a=a.status,a==="fulfilled"||a==="rejected"}function Yv(a,o,u){switch(u=a[u],u===void 0?a.push(o):u!==o&&(o.then(js,js),o=u),o.status){case"fulfilled":return o.value;case"rejected":throw a=o.reason,Jv(a),a===void 0&&!("reason"in o)?Error(s(600)):a;default:if(typeof o.status=="string")o.then(js,js);else{if(a=Ue,a!==null&&100<a.shellSuspendCounter)throw Error(s(482));a=o,a.status="pending",a.then(function(d){if(o.status==="pending"){var m=o;m.status="fulfilled",m.value=d}},function(d){if(o.status==="pending"){var m=o;m.status="rejected",m.reason=d}})}switch(o.status){case"fulfilled":return o.value;case"rejected":throw a=o.reason,Jv(a),a}throw fi=o,hr}}function _i(a){try{var o=a._init;return o(a._payload)}catch(u){throw u!==null&&typeof u=="object"&&typeof u.then=="function"?(fi=u,hr):u}}var fi=null;function Qv(){if(fi===null)throw Error(s(459));var a=fi;return fi=null,a}function Jv(a){if(a===hr||a===md)throw Error(s(483))}var _r=null,Xu=0;function _d(a){var o=Xu;return Xu+=1,_r===null&&(_r=[]),Yv(_r,a,o)}function wo(a,o){o=o.props.ref,a.ref=o!==void 0?o:null}function fd(a,o){throw o.$$typeof===D?Error(s(525)):(a=Object.prototype.toString.call(o),Error(s(31,a==="[object Object]"?"object with keys {"+Object.keys(o).join(", ")+"}":a)))}function Zv(a){function o(Z,K){if(a){var et=Z.deletions;et===null?(Z.deletions=[K],Z.flags|=16):et.push(K)}}function u(Z,K){if(!a)return null;for(;K!==null;)o(Z,K),K=K.sibling;return null}function d(Z){for(var K=new Map;Z!==null;)Z.key===null?K.set(Z.index,Z):K.set(Z.key,Z),Z=Z.sibling;return K}function m(Z,K){return Z=so(Z,K),Z.index=0,Z.sibling=null,Z}function k(Z,K,et){return Z.index=et,a?(et=Z.alternate,et!==null?(et=et.index,et<K?(Z.flags|=2,K):et):(Z.flags|=134217730,K)):(Z.flags|=1048576,K)}function C(Z){return a&&Z.alternate===null&&(Z.flags|=134217730),Z}function R(Z,K,et,ct){return K===null||K.tag!==6?(K=Tm(et,Z.mode,ct),K.return=Z,K):(K=m(K,et),K.return=Z,K)}function G(Z,K,et,ct){var Rt=et.type;return Rt===L?(Z=ot(Z,K,et.props.children,ct,et.key),wo(Z,et),Z):K!==null&&(K.elementType===Rt||typeof Rt=="object"&&Rt!==null&&Rt.$$typeof===M&&_i(Rt)===K.type)?(K=m(K,et.props),wo(K,et),K.return=Z,K):(K=id(et.type,et.key,et.props,null,Z.mode,ct),wo(K,et),K.return=Z,K)}function tt(Z,K,et,ct){return K===null||K.tag!==4||K.stateNode.containerInfo!==et.containerInfo||K.stateNode.implementation!==et.implementation?(K=jm(et,Z.mode,ct),K.return=Z,K):(K=m(K,et.children||[]),K.return=Z,K)}function ot(Z,K,et,ct,Rt){return K===null||K.tag!==7?(K=li(et,Z.mode,ct,Rt),K.return=Z,K):(K=m(K,et),K.return=Z,K)}function dt(Z,K,et){if(typeof K=="string"&&K!==""||typeof K=="number"||typeof K=="bigint")return K=Tm(""+K,Z.mode,et),K.return=Z,K;if(typeof K=="object"&&K!==null){switch(K.$$typeof){case F:return et=id(K.type,K.key,K.props,null,Z.mode,et),wo(et,K),et.return=Z,et;case B:return K=jm(K,Z.mode,et),K.return=Z,K;case M:return K=_i(K),dt(Z,K,et)}if(yt(K)||W(K))return K=li(K,Z.mode,et,null),K.return=Z,K;if(typeof K.then=="function")return dt(Z,_d(K),et);if(K.$$typeof===V)return dt(Z,pd(Z,K),et);fd(Z,K)}return null}function J(Z,K,et,ct){var Rt=K!==null?K.key:null;if(typeof et=="string"&&et!==""||typeof et=="number"||typeof et=="bigint")return Rt!==null?null:R(Z,K,""+et,ct);if(typeof et=="object"&&et!==null){switch(et.$$typeof){case F:return et.key===Rt?G(Z,K,et,ct):null;case B:return et.key===Rt?tt(Z,K,et,ct):null;case M:return et=_i(et),J(Z,K,et,ct)}if(yt(et)||W(et))return Rt!==null?null:ot(Z,K,et,ct,null);if(typeof et.then=="function")return J(Z,K,_d(et),ct);if(et.$$typeof===V)return J(Z,K,pd(Z,et),ct);fd(Z,et)}return null}function nt(Z,K,et,ct,Rt){if(typeof ct=="string"&&ct!==""||typeof ct=="number"||typeof ct=="bigint")return Z=Z.get(et)||null,R(K,Z,""+ct,Rt);if(typeof ct=="object"&&ct!==null){switch(ct.$$typeof){case F:return Z=Z.get(ct.key===null?et:ct.key)||null,G(K,Z,ct,Rt);case B:return Z=Z.get(ct.key===null?et:ct.key)||null,tt(K,Z,ct,Rt);case M:return ct=_i(ct),nt(Z,K,et,ct,Rt)}if(yt(ct)||W(ct))return Z=Z.get(et)||null,ot(K,Z,ct,Rt,null);if(typeof ct.then=="function")return nt(Z,K,et,_d(ct),Rt);if(ct.$$typeof===V)return nt(Z,K,et,pd(K,ct),Rt);fd(K,ct)}return null}function xt(Z,K,et,ct){for(var Rt=null,fe=null,$t=K,Kt=K=0,bn=null;$t!==null&&Kt<et.length;Kt++){$t.index>Kt?(bn=$t,$t=null):bn=$t.sibling;var Ae=J(Z,$t,et[Kt],ct);if(Ae===null){$t===null&&($t=bn);break}a&&$t&&Ae.alternate===null&&o(Z,$t),K=k(Ae,K,Kt),fe===null?Rt=Ae:fe.sibling=Ae,fe=Ae,$t=bn}if(Kt===et.length)return u(Z,$t),ce&&oo(Z,Kt),Rt;if($t===null){for(;Kt<et.length;Kt++)$t=dt(Z,et[Kt],ct),$t!==null&&(K=k($t,K,Kt),fe===null?Rt=$t:fe.sibling=$t,fe=$t);return ce&&oo(Z,Kt),Rt}for($t=d($t);Kt<et.length;Kt++)bn=nt($t,Z,Kt,et[Kt],ct),bn!==null&&(a&&(Ae=bn.alternate,Ae!==null&&$t.delete(Ae.key===null?Kt:Ae.key)),K=k(bn,K,Kt),fe===null?Rt=bn:fe.sibling=bn,fe=bn);return a&&$t.forEach(function(Vo){return o(Z,Vo)}),ce&&oo(Z,Kt),Rt}function Lt(Z,K,et,ct){if(et==null)throw Error(s(151));for(var Rt=null,fe=null,$t=K,Kt=K=0,bn=null,Ae=et.next();$t!==null&&!Ae.done;Kt++,Ae=et.next()){$t.index>Kt?(bn=$t,$t=null):bn=$t.sibling;var Vo=J(Z,$t,Ae.value,ct);if(Vo===null){$t===null&&($t=bn);break}a&&$t&&Vo.alternate===null&&o(Z,$t),K=k(Vo,K,Kt),fe===null?Rt=Vo:fe.sibling=Vo,fe=Vo,$t=bn}if(Ae.done)return u(Z,$t),ce&&oo(Z,Kt),Rt;if($t===null){for(;!Ae.done;Kt++,Ae=et.next())Ae=dt(Z,Ae.value,ct),Ae!==null&&(K=k(Ae,K,Kt),fe===null?Rt=Ae:fe.sibling=Ae,fe=Ae);return ce&&oo(Z,Kt),Rt}for($t=d($t);!Ae.done;Kt++,Ae=et.next())Ae=nt($t,Z,Kt,Ae.value,ct),Ae!==null&&(a&&(bn=Ae.alternate,bn!==null&&$t.delete(bn.key===null?Kt:bn.key)),K=k(Ae,K,Kt),fe===null?Rt=Ae:fe.sibling=Ae,fe=Ae);return a&&$t.forEach(function(d8){return o(Z,d8)}),ce&&oo(Z,Kt),Rt}function oe(Z,K,et,ct){if(typeof et=="object"&&et!==null&&et.type===L&&et.key===null&&et.props.ref===void 0&&(et=et.props.children),typeof et=="object"&&et!==null){switch(et.$$typeof){case F:t:{for(var Rt=et.key;K!==null;){if(K.key===Rt){if(Rt=et.type,Rt===L){if(K.tag===7){u(Z,K.sibling),ct=m(K,et.props.children),wo(ct,et),ct.return=Z,Z=ct;break t}}else if(K.elementType===Rt||typeof Rt=="object"&&Rt!==null&&Rt.$$typeof===M&&_i(Rt)===K.type){u(Z,K.sibling),ct=m(K,et.props),wo(ct,et),ct.return=Z,Z=ct;break t}u(Z,K);break}else o(Z,K);K=K.sibling}et.type===L?(ct=li(et.props.children,Z.mode,ct,et.key),wo(ct,et),ct.return=Z,Z=ct):(ct=id(et.type,et.key,et.props,null,Z.mode,ct),wo(ct,et),ct.return=Z,Z=ct)}return C(Z);case B:t:{for(Rt=et.key;K!==null;){if(K.key===Rt)if(K.tag===4&&K.stateNode.containerInfo===et.containerInfo&&K.stateNode.implementation===et.implementation){u(Z,K.sibling),ct=m(K,et.children||[]),ct.return=Z,Z=ct;break t}else{u(Z,K);break}else o(Z,K);K=K.sibling}ct=jm(et,Z.mode,ct),ct.return=Z,Z=ct}return C(Z);case M:return et=_i(et),oe(Z,K,et,ct)}if(yt(et))return xt(Z,K,et,ct);if(W(et)){if(Rt=W(et),typeof Rt!="function")throw Error(s(150));return et=Rt.call(et),Lt(Z,K,et,ct)}if(typeof et.then=="function")return oe(Z,K,_d(et),ct);if(et.$$typeof===V)return oe(Z,K,pd(Z,et),ct);fd(Z,et)}return typeof et=="string"&&et!==""||typeof et=="number"||typeof et=="bigint"?(et=""+et,K!==null&&K.tag===6?(u(Z,K.sibling),ct=m(K,et),ct.return=Z,Z=ct):(u(Z,K),ct=Tm(et,Z.mode,ct),ct.return=Z,Z=ct),C(Z)):u(Z,K)}return function(Z,K,et,ct){try{Xu=0;var Rt=oe(Z,K,et,ct);return _r=null,Rt}catch($t){if($t===hr||$t===md)throw $t;var fe=ka(29,$t,null,Z.mode);return fe.lanes=ct,fe.return=Z,fe}}}var ki=Zv(!0),t2=Zv(!1),Eo=!1;function Hm(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Fm(a,o){a=a.updateQueue,o.updateQueue===a&&(o.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,callbacks:null})}function Io(a){return{lane:a,tag:0,payload:null,callback:null,next:null}}function No(a,o,u){var d=a.updateQueue;if(d===null)return null;if(d=d.shared,(Ee&2)!==0){var m=d.pending;return m===null?o.next=o:(o.next=m.next,m.next=o),d.pending=o,o=od(a),Dv(a,null,u),o}return sd(a,d,o,u),od(a)}function Yu(a,o,u){if(o=o.updateQueue,o!==null&&(o=o.shared,(u&4194048)!==0)){var d=o.lanes;d&=a.pendingLanes,u|=d,o.lanes=u,ha(a,u)}}function Um(a,o){var u=a.updateQueue,d=a.alternate;if(d!==null&&(d=d.updateQueue,u===d)){var m=null,k=null;if(u=u.firstBaseUpdate,u!==null){do{var C={lane:u.lane,tag:u.tag,payload:u.payload,callback:null,next:null};k===null?m=k=C:k=k.next=C,u=u.next}while(u!==null);k===null?m=k=o:k=k.next=o}else m=k=o;u={baseState:d.baseState,firstBaseUpdate:m,lastBaseUpdate:k,shared:d.shared,callbacks:d.callbacks},a.updateQueue=u;return}a=u.lastBaseUpdate,a===null?u.firstBaseUpdate=o:a.next=o,u.lastBaseUpdate=o}var Vm=!1;function Qu(){if(Vm){var a=mr;if(a!==null)throw a}}function Ju(a,o,u,d){Vm=!1;var m=a.updateQueue;Eo=!1;var k=m.firstBaseUpdate,C=m.lastBaseUpdate,R=m.shared.pending;if(R!==null){m.shared.pending=null;var G=R,tt=G.next;G.next=null,C===null?k=tt:C.next=tt,C=G;var ot=a.alternate;ot!==null&&(ot=ot.updateQueue,R=ot.lastBaseUpdate,R!==C&&(R===null?ot.firstBaseUpdate=tt:R.next=tt,ot.lastBaseUpdate=G))}if(k!==null){var dt=m.baseState;C=0,ot=tt=G=null,R=k;do{var J=R.lane&-536870913,nt=J!==R.lane;if(nt?(_e&J)===J:(d&J)===J){J!==0&&J===mi&&(Vm=!0),ot!==null&&(ot=ot.next={lane:0,tag:R.tag,payload:R.payload,callback:null,next:null});t:{var xt=a,Lt=R;J=o;var oe=u;switch(Lt.tag){case 1:if(xt=Lt.payload,typeof xt=="function"){dt=xt.call(oe,dt,J);break t}dt=xt;break t;case 3:xt.flags=xt.flags&-65537|128;case 0:if(xt=Lt.payload,J=typeof xt=="function"?xt.call(oe,dt,J):xt,J==null)break t;dt=N({},dt,J);break t;case 2:Eo=!0}}J=R.callback,J!==null&&(a.flags|=64,nt&&(a.flags|=8192),nt=m.callbacks,nt===null?m.callbacks=[J]:nt.push(J))}else nt={lane:J,tag:R.tag,payload:R.payload,callback:R.callback,next:null},ot===null?(tt=ot=nt,G=dt):ot=ot.next=nt,C|=J;if(R=R.next,R===null){if(R=m.shared.pending,R===null)break;nt=R,R=nt.next,nt.next=null,m.lastBaseUpdate=nt,m.shared.pending=null}}while(!0);ot===null&&(G=dt),m.baseState=G,m.firstBaseUpdate=tt,m.lastBaseUpdate=ot,k===null&&(m.shared.lanes=0),Oo|=C,a.lanes=C,a.memoizedState=dt}}function e2(a,o){if(typeof a!="function")throw Error(s(191,a));a.call(o)}function n2(a,o){var u=a.callbacks;if(u!==null)for(a.callbacks=null,a=0;a<u.length;a++)e2(u[a],o)}var Ro=Nt(null),kd=Nt(0);function a2(a,o){a=go,pt(kd,a),pt(Ro,o),go=a|o.baseLanes}function qm(){pt(kd,go),pt(Ro,Ro.current)}function Km(){go=kd.current,kt(Ro),kt(kd)}var qn=Nt(null),ea=null;function To(a){var o=a.alternate;pt(Kn,Kn.current&1),pt(qn,a),ea===null&&(o===null||Ro.current!==null||o.memoizedState!==null)&&(ea=a)}function Wm(a){pt(Kn,Kn.current),pt(qn,a),ea===null&&(ea=a)}function s2(a){a.tag===22?(pt(Kn,Kn.current),pt(qn,a),ea===null&&(ea=a)):jo()}function jo(){pt(Kn,Kn.current),pt(qn,qn.current)}function Ma(a){kt(qn),ea===a&&(ea=null),kt(Kn)}var Kn=Nt(0);function Zu(a,o){pt(qn,qn.current),pt(Kn,o)}function Xm(a){kt(Kn),kt(qn),ea===a&&(ea=null)}function vd(a){for(var o=a;o!==null;){if(o.tag===13){var u=o.memoizedState;if(u!==null&&(u=u.dehydrated,u===null||f_(u)||k_(u)))return o}else if(o.tag===19&&o.memoizedProps.revealOrder!=="independent"){if((o.flags&128)!==0)return o}else if(o.child!==null){o.child.return=o,o=o.child;continue}if(o===a)break;for(;o.sibling===null;){if(o.return===null||o.return===a)return null;o=o.return}o.sibling.return=o.return,o=o.sibling}return null}var uo=0,se=null,Be=null,vn=null,yd=!1,fr=!1,vi=!1,bd=0,tl=0,kr=null,jS=0;function cn(){throw Error(s(321))}function Ym(a,o){if(o===null)return!1;for(var u=0;u<o.length&&u<a.length;u++)if(!Pa(a[u],o[u]))return!1;return!0}function Qm(a,o,u,d,m,k){return uo=k,se=o,o.memoizedState=null,o.updateQueue=null,o.lanes=0,ft.H=a===null||a.memoizedState===null?G2:H2,vi=!1,k=u(d,m),vi=!1,fr&&(k=i2(o,u,d,m)),o2(a),k}function o2(a){ft.H=Id;var o=Be!==null&&Be.next!==null;if(uo=0,vn=Be=se=null,yd=!1,tl=0,kr=null,o)throw Error(s(300));a===null||yn||(a=a.dependencies,a!==null&&dd(a)&&(yn=!0))}function i2(a,o,u,d){se=a;var m=0;do{if(fr&&(kr=null),tl=0,fr=!1,25<=m)throw Error(s(301));if(m+=1,vn=Be=null,a.updateQueue!=null){var k=a.updateQueue;k.lastEffect=null,k.events=null,k.stores=null,k.memoCache!=null&&(k.memoCache.index=0)}ft.H=$S,k=o(u,d)}while(fr);return k}function PS(){var a=ft.H,o=a.useState()[0];return o=typeof o.then=="function"?el(o):o,a=a.useState()[0],(Be!==null?Be.memoizedState:null)!==a&&(se.flags|=1024),o}function Jm(){var a=bd!==0;return bd=0,a}function Zm(a,o,u){o.updateQueue=a.updateQueue,o.flags&=-2053,a.lanes&=~u}function th(a){if(yd){for(a=a.memoizedState;a!==null;){var o=a.queue;o!==null&&(o.pending=null),a=a.next}yd=!1}uo=0,vn=Be=se=null,fr=!1,tl=bd=0,kr=null}function ca(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return vn===null?se.memoizedState=vn=a:vn=vn.next=a,vn}function _n(){if(Be===null){var a=se.alternate;a=a!==null?a.memoizedState:null}else a=Be.next;var o=vn===null?se.memoizedState:vn.next;if(o!==null)vn=o,Be=a;else{if(a===null)throw se.alternate===null?Error(s(467)):Error(s(310));Be=a,a={memoizedState:Be.memoizedState,baseState:Be.baseState,baseQueue:Be.baseQueue,queue:Be.queue,next:null},vn===null?se.memoizedState=vn=a:vn=vn.next=a}return vn}function xd(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function el(a){var o=tl;return tl+=1,kr===null&&(kr=[]),a=Yv(kr,a,o),o=se,(vn===null?o.memoizedState:vn.next)===null&&(o=o.alternate,ft.H=o===null||o.memoizedState===null?G2:H2),a}function Ad(a){if(a!==null&&typeof a=="object"){if(typeof a.then=="function")return el(a);if(a.$$typeof===Y)return;if(a.$$typeof===V)return Vn(a)}throw Error(s(438,String(a)))}function eh(a){var o=null,u=se.updateQueue;if(u!==null&&(o=u.memoCache),o==null){var d=se.alternate;d!==null&&(d=d.updateQueue,d!==null&&(d=d.memoCache,d!=null&&(o={data:d.data.map(function(m){return m.slice()}),index:0})))}if(o==null&&(o={data:[],index:0}),u===null&&(u=xd(),se.updateQueue=u),u.memoCache=o,u=o.data[o.index],u===void 0)for(u=o.data[o.index]=Array(a),d=0;d<a;d++)u[d]=O;return o.index++,u}function lo(a,o){return typeof o=="function"?o(a):o}function Cd(a){var o=_n();return nh(o,Be,a)}function nh(a,o,u){var d=a.queue;if(d===null)throw Error(s(311));d.lastRenderedReducer=u;var m=a.baseQueue,k=d.pending;if(k!==null){if(m!==null){var C=m.next;m.next=k.next,k.next=C}o.baseQueue=m=k,d.pending=null}if(k=a.baseState,m===null)a.memoizedState=k;else{o=m.next;var R=C=null,G=null,tt=o,ot=!1;do{var dt=tt.lane&-536870913;if(dt!==tt.lane?(_e&dt)===dt:(uo&dt)===dt){var J=tt.revertLane;if(J===0)G!==null&&(G=G.next={lane:0,revertLane:0,gesture:null,action:tt.action,hasEagerState:tt.hasEagerState,eagerState:tt.eagerState,next:null}),dt===mi&&(ot=!0);else if((uo&J)===J){tt=tt.next,J===mi&&(ot=!0);continue}else dt={lane:0,revertLane:tt.revertLane,gesture:null,action:tt.action,hasEagerState:tt.hasEagerState,eagerState:tt.eagerState,next:null},G===null?(R=G=dt,C=k):G=G.next=dt,se.lanes|=J,Oo|=J;dt=tt.action,vi&&u(k,dt),k=tt.hasEagerState?tt.eagerState:u(k,dt)}else J={lane:dt,revertLane:tt.revertLane,gesture:tt.gesture,action:tt.action,hasEagerState:tt.hasEagerState,eagerState:tt.eagerState,next:null},G===null?(R=G=J,C=k):G=G.next=J,se.lanes|=dt,Oo|=dt;tt=tt.next}while(tt!==null&&tt!==o);if(G===null?C=k:G.next=R,!Pa(k,a.memoizedState)&&(yn=!0,ot&&(u=mr,u!==null)))throw u;a.memoizedState=k,a.baseState=C,a.baseQueue=G,d.lastRenderedState=k}return m===null&&(d.lanes=0),[a.memoizedState,d.dispatch]}function ah(a){var o=_n(),u=o.queue;if(u===null)throw Error(s(311));u.lastRenderedReducer=a;var d=u.dispatch,m=u.pending,k=o.memoizedState;if(m!==null){u.pending=null;var C=m=m.next;do k=a(k,C.action),C=C.next;while(C!==m);Pa(k,o.memoizedState)||(yn=!0),o.memoizedState=k,o.baseQueue===null&&(o.baseState=k),u.lastRenderedState=k}return[k,d]}function r2(a,o,u){var d=se,m=_n(),k=ce;if(k){if(u===void 0)throw Error(s(407));u=u()}else u=o();var C=!Pa((Be||m).memoizedState,u);if(C&&(m.memoizedState=u,yn=!0),m=m.queue,ih(c2.bind(null,d,m,a),[a]),a=m.getSnapshot!==o||C||vn!==null&&(vn.memoizedState.tag&1)!==0,vr(a?9:8,{destroy:void 0},l2.bind(null,d,m,u,o),null),a){if(d.flags|=2048,Ue===null)throw Error(s(349));k||(uo&127)!==0||u2(d,o,u)}return u}function u2(a,o,u){a.flags|=16384,a={getSnapshot:o,value:u},o=se.updateQueue,o===null?(o=xd(),se.updateQueue=o,o.stores=[a]):(u=o.stores,u===null?o.stores=[a]:u.push(a))}function l2(a,o,u,d){o.value=u,o.getSnapshot=d,d2(o)&&p2(a)}function c2(a,o,u){return u(function(){d2(o)&&p2(a)})}function d2(a){var o=a.getSnapshot;a=a.value;try{var u=o();return!Pa(a,u)}catch{return!0}}function p2(a){var o=ui(a,2);o!==null&&xa(o,a,2)}function sh(a){var o=ca();if(typeof a=="function"){var u=a;if(a=u(),vi){zt(!0);try{u()}finally{zt(!1)}}}return o.memoizedState=o.baseState=a,o.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:lo,lastRenderedState:a},o}function g2(a,o,u,d){return a.baseState=u,nh(a,Be,typeof d=="function"?d:lo)}function MS(a,o,u,d,m){if(Ed(a))throw Error(s(485));if(a=o.action,a!==null){var k={payload:m,action:a,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(C){k.listeners.push(C)}};ft.T!==null?u(!0):k.isTransition=!1,d(k),u=o.pending,u===null?(k.next=o.pending=k,m2(o,k)):(k.next=u.next,o.pending=u.next=k)}}function m2(a,o){var u=o.action,d=o.payload,m=a.state;if(o.isTransition){var k=ft.T,C={};C.types=k!==null?k.types:null,ft.T=C;try{var R=u(m,d),G=ft.S;G!==null&&G(C,R),h2(a,o,R)}catch(tt){oh(a,o,tt)}finally{k!==null&&C.types!==null&&(k.types=C.types),ft.T=k}}else try{k=u(m,d),h2(a,o,k)}catch(tt){oh(a,o,tt)}}function h2(a,o,u){u!==null&&typeof u=="object"&&typeof u.then=="function"?u.then(function(d){_2(a,o,d)},function(d){return oh(a,o,d)}):_2(a,o,u)}function _2(a,o,u){o.status="fulfilled",o.value=u,f2(o),a.state=u,o=a.pending,o!==null&&(u=o.next,u===o?a.pending=null:(u=u.next,o.next=u,m2(a,u)))}function oh(a,o,u){var d=a.pending;if(a.pending=null,d!==null){d=d.next;do o.status="rejected",o.reason=u,f2(o),o=o.next;while(o!==d)}a.action=null}function f2(a){a=a.listeners;for(var o=0;o<a.length;o++)(0,a[o])()}function k2(a,o){return o}function v2(a,o){if(ce){var u=Ue.formState;if(u!==null){t:{var d=se;if(ce){if(qe){e:{for(var m=qe,k=ts;m.nodeType!==8;){if(!k){m=null;break e}if(m=ns(m.nextSibling),m===null){m=null;break e}}k=m.data,m=k==="F!"||k==="F"?m:null}if(m){qe=ns(m.nextSibling),d=m.data==="F!";break t}}Co(d)}d=!1}d&&(o=u[0])}}return u=ca(),u.memoizedState=u.baseState=o,d={pending:null,lanes:0,dispatch:null,lastRenderedReducer:k2,lastRenderedState:o},u.queue=d,u=z2.bind(null,se,d),d.dispatch=u,d=sh(!1),k=dh.bind(null,se,!1,d.queue),d=ca(),m={state:o,dispatch:null,action:a,pending:null},d.queue=m,u=MS.bind(null,se,m,k,u),m.dispatch=u,d.memoizedState=a,[o,u,!1]}function y2(a){var o=_n();return b2(o,Be,a)}function b2(a,o,u){if(o=nh(a,o,k2)[0],a=Cd(lo)[0],typeof o=="object"&&o!==null&&typeof o.then=="function")try{var d=el(o)}catch(C){throw C===hr?md:C}else d=o;o=_n();var m=o.queue,k=m.dispatch;return u!==o.memoizedState&&(se.flags|=2048,vr(9,{destroy:void 0},LS.bind(null,m,u),null)),[d,k,a]}function LS(a,o){a.action=o}function x2(a){var o=_n(),u=Be;if(u!==null)return b2(o,u,a);_n(),o=o.memoizedState,u=_n();var d=u.queue.dispatch;return u.memoizedState=a,[o,d,!1]}function vr(a,o,u,d){return a={tag:a,create:u,deps:d,inst:o,next:null},o=se.updateQueue,o===null&&(o=xd(),se.updateQueue=o),u=o.lastEffect,u===null?o.lastEffect=a.next=a:(d=u.next,u.next=a,a.next=d,o.lastEffect=a),a}function A2(){return _n().memoizedState}function Sd(a,o,u,d){var m=ca();se.flags|=a,m.memoizedState=vr(1|o,{destroy:void 0},u,d===void 0?null:d)}function wd(a,o,u,d){var m=_n();d=d===void 0?null:d;var k=m.memoizedState.inst;Be!==null&&d!==null&&Ym(d,Be.memoizedState.deps)?m.memoizedState=vr(o,k,u,d):(se.flags|=a,m.memoizedState=vr(1|o,k,u,d))}function C2(a,o){Sd(8390656,8,a,o)}function ih(a,o){wd(2048,8,a,o)}function OS(a){se.flags|=4;var o=se.updateQueue;if(o===null)o=xd(),se.updateQueue=o,o.events=[a];else{var u=o.events;u===null?o.events=[a]:u.push(a)}}function S2(a){var o=_n().memoizedState;return OS({ref:o,nextImpl:a}),function(){if((Ee&2)!==0)throw Error(s(440));return o.impl.apply(void 0,arguments)}}function w2(a,o){return wd(4,2,a,o)}function E2(a,o){return wd(4,4,a,o)}function I2(a,o){if(typeof o=="function"){a=a();var u=o(a);return function(){typeof u=="function"?u():o(null)}}if(o!=null)return a=a(),o.current=a,function(){o.current=null}}function N2(a,o,u){u=u!=null?u.concat([a]):null,wd(4,4,I2.bind(null,o,a),u)}function rh(){}function R2(a,o){var u=_n();o=o===void 0?null:o;var d=u.memoizedState;return o!==null&&Ym(o,d[1])?d[0]:(u.memoizedState=[a,o],a)}function T2(a,o){var u=_n();o=o===void 0?null:o;var d=u.memoizedState;if(o!==null&&Ym(o,d[1]))return d[0];if(d=a(),vi){zt(!0);try{a()}finally{zt(!1)}}return u.memoizedState=[d,o],d}function uh(a,o,u){return u===void 0||(uo&1073741824)!==0&&(_e&261930)===0?a.memoizedState=o:(a.memoizedState=u,a=G9(),se.lanes|=a,Oo|=a,u)}function j2(a,o,u,d){return Pa(u,o)?u:Ro.current!==null?(a=uh(a,u,d),Pa(a,o)||(yn=!0),a):(uo&106)===0||(uo&1073741824)!==0&&(_e&261930)===0?(yn=!0,a.memoizedState=u):(a=G9(),se.lanes|=a,Oo|=a,o)}function P2(a,o,u,d,m){var k=mt.p;mt.p=k!==0&&8>k?k:8;var C=ft.T,R={};R.types=C!==null?C.types:null,ft.T=R,dh(a,!1,o,u);try{var G=m(),tt=ft.S;if(tt!==null&&tt(R,G),G!==null&&typeof G=="object"&&typeof G.then=="function"){var ot=TS(G,d);nl(a,o,ot,za(a))}else nl(a,o,d,za(a))}catch(dt){nl(a,o,{then:function(){},status:"rejected",reason:dt},za())}finally{mt.p=k,C!==null&&R.types!==null&&(C.types=R.types),ft.T=C}}function DS(){}function lh(a,o,u,d){if(a.tag!==5)throw Error(s(476));var m=M2(a).queue;P2(a,m,o,wt,u===null?DS:function(){return L2(a),u(d)})}function M2(a){var o=a.memoizedState;if(o!==null)return o;o={memoizedState:wt,baseState:wt,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:lo,lastRenderedState:wt},next:null};var u={};return o.next={memoizedState:u,baseState:u,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:lo,lastRenderedState:u},next:null},a.memoizedState=o,a=a.alternate,a!==null&&(a.memoizedState=o),o}function L2(a){var o=M2(a);o.next===null&&(o=a.alternate.memoizedState),nl(a,o.next.queue,{},za())}function ch(){return Vn(zr)}function O2(){return _n().memoizedState}function D2(){return _n().memoizedState}function zS(a){for(var o=a.return;o!==null;){switch(o.tag){case 24:case 3:var u=za();a=Io(u);var d=No(o,a,u);d!==null&&(xa(d,o,u),Yu(d,o,u)),o={cache:zm()},a.payload=o;return}o=o.return}}function BS(a,o,u){var d=za();u={lane:d,revertLane:0,gesture:null,action:u,hasEagerState:!1,eagerState:null,next:null},Ed(a)?B2(o,u):(u=Nm(a,o,u,d),u!==null&&(xa(u,a,d),$2(u,o,d)))}function z2(a,o,u){var d=za();nl(a,o,u,d)}function nl(a,o,u,d){var m={lane:d,revertLane:0,gesture:null,action:u,hasEagerState:!1,eagerState:null,next:null};if(Ed(a))B2(o,m);else{var k=a.alternate;if(a.lanes===0&&(k===null||k.lanes===0)&&(k=o.lastRenderedReducer,k!==null))try{var C=o.lastRenderedState,R=k(C,u);if(m.hasEagerState=!0,m.eagerState=R,Pa(R,C))return sd(a,o,m,0),Ue===null&&ad(),!1}catch{}if(u=Nm(a,o,m,d),u!==null)return xa(u,a,d),$2(u,o,d),!0}return!1}function dh(a,o,u,d){if(d={lane:2,revertLane:e_(),gesture:null,action:d,hasEagerState:!1,eagerState:null,next:null},Ed(a)){if(o)throw Error(s(479))}else o=Nm(a,u,d,2),o!==null&&xa(o,a,2)}function Ed(a){var o=a.alternate;return a===se||o!==null&&o===se}function B2(a,o){fr=yd=!0;var u=a.pending;u===null?o.next=o:(o.next=u.next,u.next=o),a.pending=o}function $2(a,o,u){if((u&4194048)!==0){var d=o.lanes;d&=a.pendingLanes,u|=d,o.lanes=u,ha(a,u)}}var Id={readContext:Vn,use:Ad,useCallback:cn,useContext:cn,useEffect:cn,useImperativeHandle:cn,useLayoutEffect:cn,useInsertionEffect:cn,useMemo:cn,useReducer:cn,useRef:cn,useState:cn,useDebugValue:cn,useDeferredValue:cn,useTransition:cn,useSyncExternalStore:cn,useId:cn,useHostTransitionStatus:cn,useFormState:cn,useActionState:cn,useOptimistic:cn,useMemoCache:cn,useCacheRefresh:cn,useEffectEvent:cn},G2={readContext:Vn,use:Ad,useCallback:function(a,o){return ca().memoizedState=[a,o===void 0?null:o],a},useContext:Vn,useEffect:C2,useImperativeHandle:function(a,o,u){u=u!=null?u.concat([a]):null,Sd(4194308,4,I2.bind(null,o,a),u)},useLayoutEffect:function(a,o){return Sd(4194308,4,a,o)},useInsertionEffect:function(a,o){Sd(4,2,a,o)},useMemo:function(a,o){var u=ca();o=o===void 0?null:o;var d=a();if(vi){zt(!0);try{a()}finally{zt(!1)}}return u.memoizedState=[d,o],d},useReducer:function(a,o,u){var d=ca();if(u!==void 0){var m=u(o);if(vi){zt(!0);try{u(o)}finally{zt(!1)}}}else m=o;return d.memoizedState=d.baseState=m,a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:m},d.queue=a,a=a.dispatch=BS.bind(null,se,a),[d.memoizedState,a]}
vendor: 5,116 bytes, line 8
8,useRef:function(a){var o=ca();return a={current:a},o.memoizedState=a},useState:function(a){a=sh(a);var o=a.queue,u=z2.bind(null,se,o);return o.dispatch=u,[a.memoizedState,u]},useDebugValue:rh,useDeferredValue:function(a,o){var u=ca();return uh(u,a,o)},useTransition:function(){var a=sh(!1);return a=P2.bind(null,se,a.queue,!0,!1),ca().memoizedState=a,[!1,a]},useSyncExternalStore:function(a,o,u){var d=se,m=ca();if(ce){if(u===void 0)throw Error(s(407));u=u()}else{if(u=o(),Ue===null)throw Error(s(349));(_e&127)!==0||u2(d,o,u)}m.memoizedState=u;var k={value:u,getSnapshot:o};return m.queue=k,C2(c2.bind(null,d,k,a),[a]),d.flags|=2048,vr(9,{destroy:void 0},l2.bind(null,d,k,u,o),null),u},useId:function(){var a=ca(),o=Ue.identifierPrefix;if(ce){var u=Ms,d=Ps;u=(d&~(1<<32-Mt(d)-1)).toString(32)+u,o="_"+o+"R_"+u,u=bd++,0<u&&(o+="H"+u.toString(32)),o+="_"}else u=jS++,o="_"+o+"r_"+u.toString(32)+"_";return a.memoizedState=o},useHostTransitionStatus:ch,useFormState:v2,useActionState:v2,useOptimistic:function(a){var o=ca();o.memoizedState=o.baseState=a;var u={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return o.queue=u,o=dh.bind(null,se,!0,u),u.dispatch=o,[a,o]},useMemoCache:eh,useCacheRefresh:function(){return ca().memoizedState=zS.bind(null,se)},useEffectEvent:function(a){var o=ca(),u={impl:a};return o.memoizedState=u,function(){if((Ee&2)!==0)throw Error(s(440));return u.impl.apply(void 0,arguments)}}},H2={readContext:Vn,use:Ad,useCallback:R2,useContext:Vn,useEffect:ih,useImperativeHandle:N2,useInsertionEffect:w2,useLayoutEffect:E2,useMemo:T2,useReducer:Cd,useRef:A2,useState:function(){return Cd(lo)},useDebugValue:rh,useDeferredValue:function(a,o){var u=_n();return j2(u,Be.memoizedState,a,o)},useTransition:function(){var a=Cd(lo)[0],o=_n().memoizedState;return[typeof a=="boolean"?a:el(a),o]},useSyncExternalStore:r2,useId:O2,useHostTransitionStatus:ch,useFormState:y2,useActionState:y2,useOptimistic:function(a,o){var u=_n();return g2(u,Be,a,o)},useMemoCache:eh,useCacheRefresh:D2,useEffectEvent:S2},$S={readContext:Vn,use:Ad,useCallback:R2,useContext:Vn,useEffect:ih,useImperativeHandle:N2,useInsertionEffect:w2,useLayoutEffect:E2,useMemo:T2,useReducer:ah,useRef:A2,useState:function(){return ah(lo)},useDebugValue:rh,useDeferredValue:function(a,o){var u=_n();return Be===null?uh(u,a,o):j2(u,Be.memoizedState,a,o)},useTransition:function(){var a=ah(lo)[0],o=_n().memoizedState;return[typeof a=="boolean"?a:el(a),o]},useSyncExternalStore:r2,useId:O2,useHostTransitionStatus:ch,useFormState:x2,useActionState:x2,useOptimistic:function(a,o){var u=_n();return Be!==null?g2(u,Be,a,o):(u.baseState=a,[a,u.queue.dispatch])},useMemoCache:eh,useCacheRefresh:D2,useEffectEvent:S2};function ph(a,o,u,d){o=a.memoizedState,u=u(d,o),u=u==null?o:N({},o,u),a.memoizedState=u,a.lanes===0&&(a.updateQueue.baseState=u)}var gh={enqueueSetState:function(a,o,u){a=a._reactInternals;var d=za(),m=Io(d);m.payload=o,u!=null&&(m.callback=u),o=No(a,m,d),o!==null&&(xa(o,a,d),Yu(o,a,d))},enqueueReplaceState:function(a,o,u){a=a._reactInternals;var d=za(),m=Io(d);m.tag=1,m.payload=o,u!=null&&(m.callback=u),o=No(a,m,d),o!==null&&(xa(o,a,d),Yu(o,a,d))},enqueueForceUpdate:function(a,o){a=a._reactInternals;var u=za(),d=Io(u);d.tag=2,o!=null&&(d.callback=o),o=No(a,d,u),o!==null&&(xa(o,a,u),Yu(o,a,u))}};function F2(a,o,u,d,m,k,C){return a=a.stateNode,typeof a.shouldComponentUpdate=="function"?a.shouldComponentUpdate(d,k,C):o.prototype&&o.prototype.isPureReactComponent?!Hu(u,d)||!Hu(m,k):!0}function U2(a,o,u,d){a=o.state,typeof o.componentWillReceiveProps=="function"&&o.componentWillReceiveProps(u,d),typeof o.UNSAFE_componentWillReceiveProps=="function"&&o.UNSAFE_componentWillReceiveProps(u,d),o.state!==a&&gh.enqueueReplaceState(o,o.state,null)}function yi(a,o){var u=o;if("ref"in o){u={};for(var d in o)d!=="ref"&&(u[d]=o[d])}if(a=a.defaultProps){u===o&&(u=N({},u));for(var m in a)u[m]===void 0&&(u[m]=a[m])}return u}function V2(a){nd(a)}function q2(a){console.error(a)}function K2(a){nd(a)}function Nd(a,o){try{var u=a.onUncaughtError;u(o.value,{componentStack:o.stack})}catch(d){setTimeout(function(){throw d})}}function W2(a,o,u){try{var d=a.onCaughtError;d(u.value,{componentStack:u.stack,errorBoundary:o.tag===1?o.stateNode:null})}catch(m){setTimeout(function(){throw m})}}function mh(a,o,u){return u=Io(u),u.tag=3,u.payload={element:null},u.callback=function(){Nd(a,o)},u}function X2(a){return a=Io(a),a.tag=3,a}function Y2(a,o,u,d){var m=u.type.getDerivedStateFromError;if(typeof m=="function"){var k=d.value;a.payload=function(){return m(k)},a.callback=function(){W2(o,u,d)}}var C=u.stateNode;C!==null&&typeof C.componentDidCatch=="function"&&(a.callback=function(){W2(o,u,d),typeof m!="function"&&(Do===null?Do=new Set([this]):Do.add(this));var R=d.stack;this.componentDidCatch(d.value,{componentStack:R!==null?R:""})})}function GS(a,o,u,d,m){if(u.flags|=32768,d!==null&&typeof d=="object"&&typeof d.then=="function"){if(o=u.alternate,o!==null&&pi(o,u,m,!0),u=qn.current,u!==null){switch(u.tag){case 31:case 13:case 19:return ea===null?Yd():u.alternate===null&&dn===0&&(
vendor: 67,280 bytes, line 8
8dn=3),u.flags&=-257,u.flags|=65536,u.lanes=m,d===hd?u.flags|=16384:(o=u.updateQueue,o===null?u.updateQueue=new Set([d]):o.add(d),Jh(a,d,m)),!1;case 22:return u.flags|=65536,d===hd?u.flags|=16384:(o=u.updateQueue,o===null?(o={transitions:null,markerInstances:null,retryQueue:new Set([d])},u.updateQueue=o):(u=o.retryQueue,u===null?o.retryQueue=new Set([d]):u.add(d)),Jh(a,d,m)),!1}throw Error(s(435,u.tag))}return Jh(a,d,m),Yd(),!1}if(ce)return o=qn.current,o!==null?((o.flags&65536)===0&&(o.flags|=256),o.flags|=65536,o.lanes=m,d!==Mm&&(a=Error(s(422),{cause:d}),Vu(Qa(a,u)))):(d!==Mm&&(o=Error(s(423),{cause:d}),Vu(Qa(o,u))),a=a.current.alternate,a.flags|=65536,m&=-m,a.lanes|=m,d=Qa(d,u),m=mh(a.stateNode,d,m),Um(a,m),dn!==4&&(dn=2)),!1;var k=Error(s(520),{cause:d});if(k=Qa(k,u),cl===null?cl=[k]:cl.push(k),dn!==4&&(dn=2),o===null)return!0;d=Qa(d,u),u=o;do{switch(u.tag){case 3:return u.flags|=65536,a=m&-m,u.lanes|=a,a=mh(u.stateNode,d,a),Um(u,a),!1;case 1:if(o=u.type,k=u.stateNode,(u.flags&128)===0&&(typeof o.getDerivedStateFromError=="function"||k!==null&&typeof k.componentDidCatch=="function"&&(Do===null||!Do.has(k))))return u.flags|=65536,m&=-m,u.lanes|=m,m=X2(m),Y2(m,a,u,d),Um(u,m),!1;break;case 22:if(u.memoizedState!==null)return u.flags|=65536,!1}u=u.return}while(u!==null);return!1}var hh=Error(s(461)),yn=!1;function En(a,o,u,d){o.child=a===null?t2(o,null,u,d):ki(o,a.child,u,d)}function Q2(a,o,u,d,m){u=u.render;var k=o.ref;if("ref"in d){var C={};for(var R in d)R!=="ref"&&(C[R]=d[R])}else C=d;return gi(o),d=Qm(a,o,u,C,k,m),R=Jm(),a!==null&&!yn?(Zm(a,o,m),co(a,o,m)):(ce&&R&&ud(o),o.flags|=1,En(a,o,d,m),o.child)}function J2(a,o,u,d,m){if(a===null){var k=u.type;return typeof k=="function"&&!Rm(k)&&k.defaultProps===void 0&&u.compare===null?(o.tag=15,o.type=k,Z2(a,o,k,d,m)):(a=id(u.type,null,d,o,o.mode,m),a.ref=o.ref,a.return=o,o.child=a)}if(k=a.child,!Ah(a,m)){var C=k.memoizedProps;if(u=u.compare,u=u!==null?u:Hu,u(C,d)&&a.ref===o.ref)return co(a,o,m)}return o.flags|=1,a=so(k,d),a.ref=o.ref,a.return=o,o.child=a}function Z2(a,o,u,d,m){if(a!==null){var k=a.memoizedProps;if(Hu(k,d)&&a.ref===o.ref)if(yn=!1,o.pendingProps=d=k,Ah(a,m))(a.flags&131072)!==0&&(yn=!0);else return o.lanes=a.lanes,co(a,o,m)}return _h(a,o,u,d,m)}function t9(a,o,u,d){var m=d.children,k=a!==null?a.memoizedState:null;if(a===null&&o.stateNode===null&&(o.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),d.mode==="hidden"){if((o.flags&128)!==0){if(k=k!==null?k.baseLanes|u:u,a!==null){for(d=o.child=a.child,m=0;d!==null;)m=m|d.lanes|d.childLanes,d=d.sibling;d=m&~k}else d=0,o.child=null;return e9(a,o,k,u,d)}if((u&536870912)!==0)o.memoizedState={baseLanes:0,cachePool:null},a!==null&&gd(o,k!==null?k.cachePool:null),k!==null?a2(o,k):qm(),s2(o);else return d=o.lanes=536870912,e9(a,o,k!==null?k.baseLanes|u:u,u,d)}else k!==null?(gd(o,k.cachePool),a2(o,k),jo(),o.memoizedState=null):(a!==null&&gd(o,null),qm(),jo());return En(a,o,m,u),o.child}function al(a,o){return a!==null&&a.tag===22||o.stateNode!==null||(o.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),o.sibling}function e9(a,o,u,d,m){var k=$m();return k=k===null?null:{parent:kn._currentValue,pool:k},o.memoizedState={baseLanes:u,cachePool:k},a!==null&&gd(o,null),qm(),s2(o),a!==null&&pi(a,o,d,!0),o.childLanes=m,null}function Rd(a,o){return o=Td({mode:o.mode,children:o.children},a.mode),o.ref=a.ref,a.child=o,o.return=a,o}function n9(a,o,u){return ki(o,a.child,null,u),a=Rd(o,o.pendingProps),a.flags|=2,Ma(o),o.memoizedState=null,a}function HS(a,o,u){var d=o.pendingProps,m=(o.flags&128)!==0;if(o.flags&=-129,a===null){if(ce){if(d.mode==="hidden")return a=Rd(o,d),o.lanes=536870912,a.memoizedState={baseLanes:0,cachePool:null},al(null,a);if(Wm(o),(a=qe)?(a=I3(a,ts),a=a!==null&&a.data==="&"?a:null,a!==null&&(o.memoizedState={dehydrated:a,treeContext:xo!==null?{id:Ps,overflow:Ms}:null,retryLane:536870912,hydrationErrors:null},u=Bv(a),u.return=o,o.child=u,On=o,qe=null)):a=null,a===null)throw Co(o);return o.lanes=536870912,null}return Rd(o,d)}var k=a.memoizedState;if(k!==null){var C=k.dehydrated;if(Wm(o),m)if(o.flags&256)o.flags&=-257,o=n9(a,o,u);else if(o.memoizedState!==null)o.child=a.child,o.flags|=128,o=null;else throw Error(s(558));else if(yn||pi(a,o,u,!1),m=(u&a.childLanes)!==0,yn||m){if(Ro.current===null){if(d=Ue,d!==null&&(C=_a(d,u),C!==0&&C!==k.retryLane))throw k.retryLane=C,ui(a,C),xa(d,a,C),hh;Yd()}o=n9(a,o,u)}else a=k.treeContext,qe=ns(C.nextSibling),On=o,ce=!0,Ao=null,ts=!1,a!==null&&Hv(o,a),o=Rd(o,d),o.flags|=134221824;return o}return a=so(a.child,{mode:d.mode,children:d.children}),a.ref=o.ref,o.child=a,a.return=o,a}function yr(a,o){var u=o.ref;if(u===null)a!==null&&a.ref!==null&&(o.flags|=4194816);else{if(typeof u!="function"&&typeof u!="object")throw Error(s(284));(a===null||a.ref!==u)&&(o.flags|=4194816)}}function _h(a,o,u,d,m){return gi(o),u=Qm(a,o,u,d,void 0,m),d=Jm(),a!==null&&!yn?(Zm(a,o,m),co(a,o,m)):(ce&&d&&ud(o),o.flags|=1,En(a,o,u,m),o.child)}function a9(a,o,u,d,m,k){return gi(o),o.updateQueue=null,u=i2(o,d,u,m),o2(a),d=Jm(),a!==null&&!yn?(Zm(a,o,k),co(a,o,k)):(ce&&d&&ud(o),o.flags|=1,En(a,o,u,k),o.child)}function s9(a,o,u,d,m){if(gi(o),o.stateNode===null){var k=cr,C=u.contextType;typeof C=="object"&&C!==null&&(k=Vn(C)),k=new u(d,k),o.memoizedState=k.state!==null&&k.state!==void 0?k.state:null,k.updater=gh,o.stateNode=k,k._reactInternals=o,k=o.stateNode,k.props=d,k.state=o.memoizedState,k.refs={},Hm(o),C=u.contextType,k.context=typeof C=="object"&&C!==null?Vn(C):cr,k.state=o.memoizedState,C=u.getDerivedStateFromProps,typeof C=="function"&&(ph(o,u,C,d),k.state=o.memoizedState),typeof u.getDerivedStateFromProps=="function"||typeof k.getSnapshotBeforeUpdate=="function"||typeof k.UNSAFE_componentWillMount!="function"&&typeof k.componentWillMount!="function"||(C=k.state,typeof k.componentWillMount=="function"&&k.componentWillMount(),typeof k.UNSAFE_componentWillMount=="function"&&k.UNSAFE_componentWillMount(),C!==k.state&&gh.enqueueReplaceState(k,k.state,null),Ju(o,d,k,m),Qu(),k.state=o.memoizedState),typeof k.componentDidMount=="function"&&(o.flags|=4194308),d=!0}else if(a===null){k=o.stateNode;var R=o.memoizedProps,G=yi(u,R);k.props=G;var tt=k.context,ot=u.contextType;C=cr,typeof ot=="object"&&ot!==null&&(C=Vn(ot));var dt=u.getDerivedStateFromProps;ot=typeof dt=="function"||typeof k.getSnapshotBeforeUpdate=="function",R=o.pendingProps!==R,ot||typeof k.UNSAFE_componentWillReceiveProps!="function"&&typeof k.componentWillReceiveProps!="function"||(R||tt!==C)&&U2(o,k,d,C),Eo=!1;var J=o.memoizedState;k.state=J,Ju(o,d,k,m),Qu(),tt=o.memoizedState,R||J!==tt||Eo?(typeof dt=="function"&&(ph(o,u,dt,d),tt=o.memoizedState),(G=Eo||F2(o,u,G,d,J,tt,C))?(ot||typeof k.UNSAFE_componentWillMount!="function"&&typeof k.componentWillMount!="function"||(typeof k.componentWillMount=="function"&&k.componentWillMount(),typeof k.UNSAFE_componentWillMount=="function"&&k.UNSAFE_componentWillMount()),typeof k.componentDidMount=="function"&&(o.flags|=4194308)):(typeof k.componentDidMount=="function"&&(o.flags|=4194308),o.memoizedProps=d,o.memoizedState=tt),k.props=d,k.state=tt,k.context=C,d=G):(typeof k.componentDidMount=="function"&&(o.flags|=4194308),d=!1)}else{k=o.stateNode,Fm(a,o),C=o.memoizedProps,ot=yi(u,C),k.props=ot,dt=o.pendingProps,J=k.context,tt=u.contextType,G=cr,typeof tt=="object"&&tt!==null&&(G=Vn(tt)),R=u.getDerivedStateFromProps,(tt=typeof R=="function"||typeof k.getSnapshotBeforeUpdate=="function")||typeof k.UNSAFE_componentWillReceiveProps!="function"&&typeof k.componentWillReceiveProps!="function"||(C!==dt||J!==G)&&U2(o,k,d,G),Eo=!1,J=o.memoizedState,k.state=J,Ju(o,d,k,m),Qu();var nt=o.memoizedState;C!==dt||J!==nt||Eo||a!==null&&a.dependencies!==null&&dd(a.dependencies)?(typeof R=="function"&&(ph(o,u,R,d),nt=o.memoizedState),(ot=Eo||F2(o,u,ot,d,J,nt,G)||a!==null&&a.dependencies!==null&&dd(a.dependencies))?(tt||typeof k.UNSAFE_componentWillUpdate!="function"&&typeof k.componentWillUpdate!="function"||(typeof k.componentWillUpdate=="function"&&k.componentWillUpdate(d,nt,G),typeof k.UNSAFE_componentWillUpdate=="function"&&k.UNSAFE_componentWillUpdate(d,nt,G)),typeof k.componentDidUpdate=="function"&&(o.flags|=4),typeof k.getSnapshotBeforeUpdate=="function"&&(o.flags|=1024)):(typeof k.componentDidUpdate!="function"||C===a.memoizedProps&&J===a.memoizedState||(o.flags|=4),typeof k.getSnapshotBeforeUpdate!="function"||C===a.memoizedProps&&J===a.memoizedState||(o.flags|=1024),o.memoizedProps=d,o.memoizedState=nt),k.props=d,k.state=nt,k.context=G,d=ot):(typeof k.componentDidUpdate!="function"||C===a.memoizedProps&&J===a.memoizedState||(o.flags|=4),typeof k.getSnapshotBeforeUpdate!="function"||C===a.memoizedProps&&J===a.memoizedState||(o.flags|=1024),d=!1)}return k=d,yr(a,o),d=(o.flags&128)!==0,k||d?(k=o.stateNode,u=d&&typeof u.getDerivedStateFromError!="function"?null:k.render(),o.flags|=1,a!==null&&d?(o.child=ki(o,a.child,null,m),o.child=ki(o,null,u,m)):En(a,o,u,m),o.memoizedState=k.state,a=o.child):a=co(a,o,m),a}function o9(a,o,u,d){return ci(),o.flags|=256,En(a,o,u,d),o.child}var fh={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function kh(a){return{baseLanes:a,cachePool:Wv()}}function vh(a,o,u){return a=a!==null?a.childLanes&~u:0,o&&(a|=Da),a}function i9(a,o,u){var d=o.pendingProps,m=!1,k=(o.flags&128)!==0,C;if((C=k)||(C=a!==null&&a.memoizedState===null?!1:(Kn.current&2)!==0),C&&(m=!0,o.flags&=-129),C=(o.flags&32)!==0,o.flags&=-33,a===null){if(ce){if(m?To(o):jo(),(a=qe)?(a=I3(a,ts),a=a!==null&&a.data!=="&"?a:null,a!==null&&(o.memoizedState={dehydrated:a,treeContext:xo!==null?{id:Ps,overflow:Ms}:null,retryLane:536870912,hydrationErrors:null},u=Bv(a),u.return=o,o.child=u,On=o,qe=null)):a=null,a===null)throw Co(o);return k_(a)?o.lanes=32:o.lanes=536870912,null}return k=d.children,d=d.fallback,m?(jo(),m=o.mode,k=Td({mode:"hidden",children:k},m),d=li(d,m,u,null),k.return=o,d.return=o,k.sibling=d,o.child=k,d=o.child,d.memoizedState=kh(u),d.childLanes=vh(a,C,u),o.memoizedState=fh,al(null,d)):(To(o),yh(o,k))}var R=a.memoizedState;if(R!==null){var G=R.dehydrated;if(G!==null)return FS(a,o,k,C,d,G,R,u)}return m?(jo(),m=d.fallback,k=o.mode,R=a.child,G=R.sibling,d=so(R,{mode:"hidden",children:d.children}),d.subtreeFlags=R.subtreeFlags&1206910976,G!==null?m=so(G,m):(m=li(m,k,u,null),m.flags|=2),m.return=o,d.return=o,d.sibling=m,o.child=d,al(null,d),d=o.child,m=a.child.memoizedState,m===null?m=kh(u):(k=m.cachePool,k!==null?(R=kn._currentValue,k=k.parent!==R?{parent:R,pool:R}:k):k=Wv(),m={baseLanes:m.baseLanes|u,cachePool:k}),d.memoizedState=m,d.childLanes=vh(a,C,u),o.memoizedState=fh,al(a.child,d)):(To(o),u=a.child,a=u.sibling,u=so(u,{mode:"visible",children:d.children}),u.return=o,u.sibling=null,a!==null&&(C=o.deletions,C===null?(o.deletions=[a],o.flags|=16):C.push(a)),o.child=u,o.memoizedState=null,u)}function yh(a,o){return o=Td({mode:"visible",children:o},a.mode),o.return=a,a.child=o}function Td(a,o){return a=ka(22,a,null,o),a.lanes=0,a}function jd(a,o,u){return ki(o,a.child,null,u),a=yh(o,o.pendingProps.children),a.flags|=2,o.memoizedState=null,a}function FS(a,o,u,d,m,k,C,R){if(u)return o.flags&256?(To(o),o.flags&=-257,jd(a,o,R)):o.memoizedState!==null?(jo(),o.child=a.child,o.flags|=128,null):(jo(),k=m.fallback,C=o.mode,m=Td({mode:"visible",children:m.children},C),k=li(k,C,R,null),k.flags|=2,m.return=o,k.return=o,m.sibling=k,o.child=m,ki(o,a.child,null,R),m=o.child,m.memoizedState=kh(R),m.childLanes=vh(a,d,R),o.memoizedState=fh,al(null,m));if(To(o),k_(k)){if(d=k.nextSibling&&k.nextSibling.dataset,d)var G=d.dgst;return d=G,d!==""&&(m=Error(s(419)),m.stack="",m.digest=d,Vu({value:m,source:null,stack:null})),jd(a,o,R)}if(yn||pi(a,o,R,!1),d=(R&a.childLanes)!==0,yn||d){if(Ro.current!==null)return jd(a,o,R);if(d=Ue,d!==null&&(m=_a(d,R),m!==0&&m!==C.retryLane))throw C.retryLane=m,ui(a,m),xa(d,a,m),hh;return f_(k)||Yd(),jd(a,o,R)}return f_(k)?(o.flags|=192,o.child=a.child,null):(a=C.treeContext,qe=ns(k.nextSibling),On=o,ce=!0,Ao=null,ts=!1,a!==null&&Hv(o,a),o=yh(o,m.children),o.flags|=134221824,o)}function r9(a,o,u){a.lanes|=o;var d=a.alternate;d!==null&&(d.lanes|=o),cd(a.return,o,u)}function u9(a){for(var o=null;a!==null;){var u=a.alternate;u!==null&&vd(u)===null&&(o=a),a=a.sibling}return o}function Pd(a,o,u,d,m,k){var C=a.memoizedState;C===null?a.memoizedState={isBackwards:o,rendering:null,renderingStartTime:0,last:d,tail:u,tailMode:m,treeForkCount:k}:(C.isBackwards=o,C.rendering=null,C.renderingStartTime=0,C.last=d,C.tail=u,C.tailMode=m,C.treeForkCount=k)}function bh(a){var o=a.child;for(a.child=null;o!==null;){var u=o.sibling;o.sibling=a.child,a.child=o,o=u}}function xh(a,o,u){var d=o.pendingProps,m=d.revealOrder,k=d.tail;d=d.children;var C=Kn.current;if(o.flags&128)return Zu(o,C),null;var R=(C&2)!==0;if(R?(C=C&1|2,o.flags|=128):C&=1,Zu(o,C),m==="backwards"&&a!==null?(bh(a),En(a,o,d,u),bh(a)):En(a,o,d,u),d=ce?Uu:0,!R&&a!==null&&(a.flags&128)!==0)t:for(a=o.child;a!==null;){if(a.tag===13)a.memoizedState!==null&&r9(a,u,o);else if(a.tag===19)r9(a,u,o);else if(a.child!==null){a.child.return=a,a=a.child;continue}if(a===o)break t;for(;a.sibling===null;){if(a.return===null||a.return===o)break t;a=a.return}a.sibling.return=a.return,a=a.sibling}switch(m){case"backwards":u=u9(o.child),u===null?(m=o.child,o.child=null):(m=u.sibling,u.sibling=null,bh(o)),Pd(o,!0,m,null,k,d);break;case"unstable_legacy-backwards":for(u=null,m=o.child,o.child=null;m!==null;){if(a=m.alternate,a!==null&&vd(a)===null){o.child=m;break}a=m.sibling,m.sibling=u,u=m,m=a}Pd(o,!0,u,null,k,d);break;case"together":Pd(o,!1,null,null,void 0,d);break;case"independent":o.memoizedState=null;break;default:u=u9(o.child),u===null?(m=o.child,o.child=null):(m=u.sibling,u.sibling=null),Pd(o,!1,m,u,k,d)}return o.child}function l9(a,o,u){var d=o.pendingProps;return So(o,o.type,d.value),En(a,o,d.children,u),o.child}function co(a,o,u){if(a!==null&&(o.dependencies=a.dependencies),Oo|=o.lanes,(u&o.childLanes)===0)if(a!==null){if(pi(a,o,u,!1),(u&o.childLanes)===0)return null}else return null;if(a!==null&&o.child!==a.child)throw Error(s(153));if(o.child!==null){for(a=o.child,u=so(a,a.pendingProps),o.child=u,u.return=o;a.sibling!==null;)a=a.sibling,u=u.sibling=so(a,a.pendingProps),u.return=o;u.sibling=null}return o.child}function Ah(a,o){return(a.lanes&o)!==0?!0:(a=a.dependencies,!!(a!==null&&dd(a)))}function US(a,o,u){switch(o.tag){case 3:Se(o,o.stateNode.containerInfo),So(o,kn,a.memoizedState.cache),ci();break;case 27:case 5:ge(o);break;case 4:Se(o,o.stateNode.containerInfo);break;case 10:So(o,o.type,o.memoizedProps.value);break;case 31:if(o.memoizedState!==null)return o.flags|=128,Wm(o),null;break;case 13:var d=o.memoizedState;if(d!==null){if(d.dehydrated!==null)return To(o),o.flags|=128,null;d=pi(a,o,u,!1);var m=o.child.childLanes;return d||(u&m)!==0?i9(a,o,u):(To(o),a=co(a,o,u),a!==null?a.sibling:null)}To(o);break;case 19:if(o.flags&128)return xh(a,o,u);if(m=(a.flags&128)!==0,d=(u&o.childLanes)!==0,d||(pi(a,o,u,!1),d=(u&o.childLanes)!==0),m){if(d)return xh(a,o,u);o.flags|=128}if(m=o.memoizedState,m!==null&&(m.rendering=null,m.tail=null,m.lastEffect=null),Zu(o,Kn.current),d)break;return null;case 22:return o.lanes=0,t9(a,o,u,o.pendingProps);case 24:So(o,kn,a.memoizedState.cache)}return co(a,o,u)}function c9(a,o,u){if(a!==null)if(a.memoizedProps!==o.pendingProps)yn=!0;else{if(!Ah(a,u)&&(o.flags&128)===0)return yn=!1,US(a,o,u);yn=(a.flags&131072)!==0}else yn=!1,ce&&(o.flags&1048576)!==0&&Gv(o,Uu,o.index);switch(o.lanes=0,o.tag){case 16:t:{var d=o.pendingProps;if(a=_i(o.elementType),o.type=a,typeof a=="function")Rm(a)?(d=yi(a,d),o.tag=1,o=s9(null,o,a,d,u)):(o.tag=0,o=_h(null,o,a,d,u));else{if(a!=null){var m=a.$$typeof;if(m===U){o.tag=11,o=Q2(null,o,a,d,u);break t}else if(m===lt){o.tag=14,o=J2(null,o,a,d,u);break t}else if(m===V){o.tag=10,o.type=a,o=l9(null,o,u);break t}}throw o=ht(a)||a,Error(s(306,o,""))}}return o;case 0:return _h(a,o,o.type,o.pendingProps,u);case 1:return d=o.type,m=yi(d,o.pendingProps),s9(a,o,d,m,u);case 3:t:{if(Se(o,o.stateNode.containerInfo),a===null)throw Error(s(387));d=o.pendingProps;var k=o.memoizedState;m=k.element,Fm(a,o),Ju(o,d,null,u);var C=o.memoizedState;if(d=C.cache,So(o,kn,d),d!==k.cache&&Dm(o,[kn],u,!0),Qu(),d=C.element,k.isDehydrated)if(k={element:d,isDehydrated:!1,cache:C.cache},o.updateQueue.baseState=k,o.memoizedState=k,o.flags&256){o=o9(a,o,d,u);break t}else if(d!==m){m=Qa(Error(s(424)),o),Vu(m),o=o9(a,o,d,u);break t}else for(a=o.stateNode.containerInfo,a.nodeType===9?a=a.body:a=a.nodeName==="HTML"?a.ownerDocument.body:a,qe=ns(a.firstChild),On=o,ce=!0,Ao=null,ts=!0,u=t2(o,null,d,u),o.child=u;u;)u.flags=u.flags&-3|134221824,u=u.sibling;else{if(ci(),d===m){o=co(a,o,u);break t}En(a,o,d,u)}o=o.child}return o;case 26:return yr(a,o),a===null?(u=L3(o.type,null,o.pendingProps,null))?o.memoizedState=u:ce||(o.stateNode=m3(o.type,o.pendingProps,Xt.current,o)):o.memoizedState=L3(o.type,a.memoizedProps,o.pendingProps,a.memoizedState),null;case 27:return ge(o),a===null&&ce&&(d=o.stateNode=T3(o.type,o.pendingProps,Xt.current),On=o,ts=!0,m=qe,$o(o.type)?(v_=m,qe=ns(d.firstChild)):qe=m),En(a,o,o.pendingProps.children,u),yr(a,o),a===null&&(o.flags|=4194304),o.child;case 5:return a===null&&ce&&((m=d=qe)&&(d=zw(d,o.type,o.pendingProps,ts),d!==null?(o.stateNode=d,On=o,qe=ns(d.firstChild),ts=!1,m=!0):m=!1),m||Co(o)),ge(o),m=o.type,k=o.pendingProps,C=a!==null?a.memoizedProps:null,d=k.children,c_(m,k)?d=null:C!==null&&c_(m,C)&&(o.flags|=32),o.memoizedState!==null&&(m=Qm(a,o,PS,null,null,u),zr._currentValue=m),yr(a,o),En(a,o,d,u),o.child;case 6:return a===null&&ce&&((a=u=qe)&&(u=Bw(u,o.pendingProps,ts),u!==null?(o.stateNode=u,On=o,qe=null,a=!0):a=!1),a||Co(o)),null;case 13:return i9(a,o,u);case 4:return Se(o,o.stateNode.containerInfo),d=o.pendingProps,a===null?o.child=ki(o,null,d,u):En(a,o,d,u),o.child;case 11:return Q2(a,o,o.type,o.pendingProps,u);case 7:return d=o.pendingProps,yr(a,o),En(a,o,d,u),o.child;case 8:return En(a,o,o.pendingProps.children,u),o.child;case 12:return En(a,o,o.pendingProps.children,u),o.child;case 10:return l9(a,o,u);case 9:return m=o.type._context,d=o.pendingProps.children,gi(o),m=Vn(m),d=d(m),o.flags|=1,En(a,o,d,u),o.child;case 14:return J2(a,o,o.type,o.pendingProps,u);case 15:return Z2(a,o,o.type,o.pendingProps,u);case 19:return xh(a,o,u);case 31:return HS(a,o,u);case 22:return t9(a,o,u,o.pendingProps);case 24:return gi(o),d=Vn(kn),a===null?(m=$m(),m===null&&(m=Ue,k=zm(),m.pooledCache=k,k.refCount++,k!==null&&(m.pooledCacheLanes|=u),m=k),o.memoizedState={parent:d,cache:m},Hm(o),So(o,kn,m)):((a.lanes&u)!==0&&(Fm(a,o),Ju(o,null,null,u),Qu()),m=a.memoizedState,k=o.memoizedState,m.parent!==d?(m={parent:d,cache:d},o.memoizedState=m,o.lanes===0&&(o.memoizedState=o.updateQueue.baseState=m),So(o,kn,d)):(d=k.cache,So(o,kn,d),d!==m.cache&&Dm(o,[kn],u,!0))),En(a,o,o.pendingProps.children,u),o.child;case 30:return o.stateNode===null&&(o.stateNode={autoName:null,paired:null,clones:null,ref:null}),d=o.pendingProps,d.name!=null&&d.name!=="auto"?o.flags|=a===null?18882560:18874368:ce&&ud(o),a!==null&&a.memoizedProps.name!==d.name?o.flags|=4194816:yr(a,o),En(a,o,d.children,u),o.child;case 29:throw o.pendingProps}throw Error(s(156,o.tag))}function po(a){a.flags|=4}function Ch(a,o,u,d,m){var k;if((k=(a.mode&32)!==0)&&(k=u===null?B3(o,d):B3(o,d)&&(d.src!==u.src||d.srcSet!==u.srcSet)),k){if(a.flags|=16777216,(m&335544128)===m)if(a.stateNode.complete)a.flags|=8192;else if(V9())a.flags|=8192;else throw fi=hd,Gm}else a.flags&=-16777217}function d9(a,o){if(o.type!=="stylesheet"||(o.state.loading&4)!==0)a.flags&=-16777217;else if(a.flags|=16777216,!$3(o))if(V9())a.flags|=8192;else throw fi=hd,Gm}function Md(a,o){o!==null&&(a.flags|=4),a.flags&16384&&(o=a.tag!==22?Vt():536870912,a.lanes|=o,Sr|=o)}function sl(a,o){if(!ce)switch(a.tailMode){case"visible":break;case"collapsed":for(var u=a.tail,d=null;u!==null;)u.alternate!==null&&(d=u),u=u.sibling;d===null?o||a.tail===null?a.tail=null:a.tail.sibling=null:d.sibling=null;break;default:for(o=a.tail,u=null;o!==null;)o.alternate!==null&&(u=o),o=o.sibling;u===null?a.tail=null:u.sibling=null}}function Ke(a){var o=a.alternate!==null&&a.alternate.child===a.child,u=0,d=0;if(o)for(var m=a.child;m!==null;)u|=m.lanes|m.childLanes,d|=m.subtreeFlags&1206910976,d|=m.flags&1206910976,m.return=a,m=m.sibling;else for(m=a.child;m!==null;)u|=m.lanes|m.childLanes,d|=m.subtreeFlags,d|=m.flags,m.return=a,m=m.sibling;return a.subtreeFlags|=d,a.childLanes=u,o}function VS(a,o,u){var d=o.pendingProps;switch(Pm(o),o.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ke(o),null;case 1:return Ke(o),null;case 3:return u=o.stateNode,d=null,a!==null&&(d=a.memoizedState.cache),o.memoizedState.cache!==d&&(o.flags|=2048),ro(kn),ue(),u.pendingContext&&(u.context=u.pendingContext,u.pendingContext=null),(a===null||a.child===null)&&(gr(o)?po(o):a===null||a.memoizedState.isDehydrated&&(o.flags&256)===0||(o.flags|=1024,Lm())),Ke(o),null;case 26:var m=o.type,k=o.memoizedState;return a===null?(po(o),k!==null?(Ke(o),d9(o,k)):(Ke(o),Ch(o,m,null,d,u))):k?k!==a.memoizedState?(po(o),Ke(o),d9(o,k)):(Ke(o),o.flags&=-16777217):(a=a.memoizedProps,a!==d&&po(o),Ke(o),Ch(o,m,a,d,u)),null;case 27:if(at(o),u=Xt.current,m=o.type,a!==null&&o.stateNode!=null)a.memoizedProps!==d&&po(o);else{if(!d){if(o.stateNode===null)throw Error(s(166));return Ke(o),o.subtreeFlags&=-33554433,null}a=Bt.current,gr(o)?Fv(o):(a=T3(m,d,u),o.stateNode=a,po(o))}return Ke(o),o.subtreeFlags&=-33554433,null;case 5:if(at(o),m=o.type,a!==null&&o.stateNode!=null)a.memoizedProps!==d&&po(o);else{if(!d){if(o.stateNode===null)throw Error(s(166));return Ke(o),o.subtreeFlags&=-33554433,null}if(k=Bt.current,gr(o))Fv(o);else{var C=hl(Xt.current);switch(k){case 1:k=C.createElementNS("http://www.w3.org/2000/svg",m);break;case 2:k=C.createElementNS("http://www.w3.org/1998/Math/MathML",m);break;default:switch(m){case"svg":k=C.createElementNS("http://www.w3.org/2000/svg",m);break;case"math":k=C.createElementNS("http://www.w3.org/1998/Math/MathML",m);break;case"script":k=C.createElement("div"),k.innerHTML="<script><\/script>",k=k.removeChild(k.firstChild);break;case"select":k=typeof d.is=="string"?C.createElement("select",{is:d.is}):C.createElement("select"),d.multiple?k.multiple=!0:d.size&&(k.size=d.size);break;default:k=typeof d.is=="string"?C.createElement(m,{is:d.is}):C.createElement(m)}}k[Pe]=o,k[en]=d;t:for(C=o.child;C!==null;){if(C.tag===5||C.tag===6)k.appendChild(C.stateNode);else if(C.tag!==4&&C.tag!==27&&C.child!==null){C.child.return=C,C=C.child;continue}if(C===o)break t;for(;C.sibling===null;){if(C.return===null||C.return===o)break t;C=C.return}C.sibling.return=C.return,C=C.sibling}o.stateNode=k;t:switch(Xn(k,m,d),m){case"button":case"input":case"select":case"textarea":d=!!d.autoFocus;break t;case"img":d=!0;break t;default:d=!1}d&&po(o)}}return Ke(o),o.subtreeFlags&=-33554433,Ch(o,o.type,a===null?null:a.memoizedProps,o.pendingProps,u),null;case 6:if(a&&o.stateNode!=null)a.memoizedProps!==d&&po(o);else{if(typeof d!="string"&&o.stateNode===null)throw Error(s(166));if(a=Xt.current,gr(o)){if(a=o.stateNode,u=o.memoizedProps,d=null,m=On,m!==null)switch(m.tag){case 27:case 5:d=m.memoizedProps}a[Pe]=o,a=!!(a.nodeValue===u||d!==null&&d.suppressHydrationWarning===!0||c3(a.nodeValue,u)),a||Co(o,!0)}else a=hl(a).createTextNode(d),a[Pe]=o,o.stateNode=a}return Ke(o),null;case 31:if(u=o.memoizedState,a===null||a.memoizedState!==null){if(d=gr(o),u!==null){if(a===null){if(!d)throw Error(s(318));if(a=o.memoizedState,a=a!==null?a.dehydrated:null,!a)throw Error(s(557));a[Pe]=o}else ci(),(o.flags&128)===0&&(o.memoizedState=null),o.flags|=4;Ke(o),a=!1}else u=Lm(),a!==null&&a.memoizedState!==null&&(a.memoizedState.hydrationErrors=u),a=!0;if(!a)return o.flags&256?(Ma(o),o):(Ma(o),null);if((o.flags&128)!==0)throw Error(s(558))}return Ke(o),null;case 13:if(d=o.memoizedState,a===null||a.memoizedState!==null&&a.memoizedState.dehydrated!==null){if(m=gr(o),d!==null&&d.dehydrated!==null){if(a===null){if(!m)throw Error(s(318));if(m=o.memoizedState,m=m!==null?m.dehydrated:null,!m)throw Error(s(317));m[Pe]=o}else ci(),(o.flags&128)===0&&(o.memoizedState=null),o.flags|=4;Ke(o),m=!1}else m=Lm(),a!==null&&a.memoizedState!==null&&(a.memoizedState.hydrationErrors=m),m=!0;if(!m)return o.flags&256?(Ma(o),o):(Ma(o),null)}return Ma(o),(o.flags&128)!==0?(o.lanes=u,o):(u=d!==null,a=a!==null&&a.memoizedState!==null,u&&(d=o.child,m=null,d.alternate!==null&&d.alternate.memoizedState!==null&&d.alternate.memoizedState.cachePool!==null&&(m=d.alternate.memoizedState.cachePool.pool),k=null,d.memoizedState!==null&&d.memoizedState.cachePool!==null&&(k=d.memoizedState.cachePool.pool),k!==m&&(d.flags|=2048)),u!==a&&u&&(o.child.flags|=8192),Md(o,o.updateQueue),Ke(o),null);case 4:return ue(),a===null&&o_(o.stateNode.containerInfo),o.flags|=67108864,Ke(o),null;case 10:return ro(o.type),Ke(o),null;case 19:if(Xm(o),d=o.memoizedState,d===null)return Ke(o),null;if(m=(o.flags&128)!==0,k=d.rendering,k===null)if(m)sl(d,!1);else{if(dn!==0||a!==null&&(a.flags&128)!==0)for(a=o.child;a!==null;){if(k=vd(a),k!==null){for(o.flags|=128,sl(d,!1),a=k.updateQueue,o.updateQueue=a,Md(o,a),o.subtreeFlags=0,a=u,u=o.child;u!==null;)zv(u,a),u=u.sibling;return Zu(o,Kn.current&1|2),ce&&oo(o,d.treeForkCount),o.child}a=a.sibling}d.tail!==null&&ye()>qd&&(o.flags|=128,m=!0,sl(d,!1),o.lanes=4194304)}else{if(!m)if(a=vd(k),a!==null){if(o.flags|=128,m=!0,a=a.updateQueue,o.updateQueue=a,Md(o,a),sl(d,!0),d.tail===null&&d.tailMode!=="collapsed"&&d.tailMode!=="visible"&&!k.alternate&&!ce)return Ke(o),null}else 2*ye()-d.renderingStartTime>qd&&u!==536870912&&(o.flags|=128,m=!0,sl(d,!1),o.lanes=4194304);d.isBackwards?(k.sibling=o.child,o.child=k):(a=d.last,a!==null?a.sibling=k:o.child=k,d.last=k)}if(d.tail!==null){a=d.tail;t:{for(u=a;u!==null;){if(u.alternate!==null){u=!1;break t}u=u.sibling}u=!0}return d.rendering=a,d.tail=a.sibling,d.renderingStartTime=ye(),a.sibling=null,k=Kn.current,k=m?k&1|2:k&1,d.tailMode==="visible"||d.tailMode==="collapsed"||!u||ce?Zu(o,k):(u=k,pt(qn,o),pt(Kn,u),ea===null&&(ea=o)),ce&&oo(o,d.treeForkCount),a}return Ke(o),null;case 22:case 23:return Ma(o),Km(),d=o.memoizedState!==null,a!==null?a.memoizedState!==null!==d&&(o.flags|=8192):d&&(o.flags|=8192),d?(u&536870912)!==0&&(o.flags&128)===0&&(Ke(o),o.subtreeFlags&6&&(o.flags|=8192)):Ke(o),u=o.updateQueue,u!==null&&Md(o,u.retryQueue),u=null,a!==null&&a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(u=a.memoizedState.cachePool.pool),d=null,o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(d=o.memoizedState.cachePool.pool),d!==u&&(o.flags|=2048),a!==null&&kt(hi),null;case 24:return u=null,a!==null&&(u=a.memoizedState.cache),o.memoizedState.cache!==u&&(o.flags|=2048),ro(kn),Ke(o),null;case 25:return null;case 30:return o.flags|=33554432,Ke(o),null}throw Error(s(156,o.tag))}function qS(a,o){switch(Pm(o),o.tag){case 1:return a=o.flags,a&65536?(o.flags=a&-65537|128,o):null;case 3:return ro(kn),ue(),a=o.flags,(a&65536)!==0&&(a&128)===0?(o.flags=a&-65537|128,o):null;case 26:case 27:case 5:return at(o),null;case 31:if(o.memoizedState!==null){if(Ma(o),o.alternate===null)throw Error(s(340));ci()}return a=o.flags,a&65536?(o.flags=a&-65537|128,o):null;case 13:if(Ma(o),a=o.memoizedState,a!==null&&a.dehydrated!==null){if(o.alternate===null)throw Error(s(340));ci()}return a=o.flags,a&65536?(o.flags=a&-65537|128,o):null;case 19:return Xm(o),a=o.flags,a&65536?(o.flags=a&-65537|128,a=o.memoizedState,a!==null&&(a.rendering=null,a.tail=null),o.flags|=4,o):null;case 4:return ue(),null;case 10:return ro(o.type),null;case 22:case 23:return Ma(o),Km(),a!==null&&kt(hi),a=o.flags,a&65536?(o.flags=a&-65537|128,o):null;case 24:return ro(kn),null;case 25:return null;default:return null}}function p9(a,o){switch(Pm(o),o.tag){case 3:ro(kn),ue();break;case 26:case 27:case 5:at(o);break;case 4:ue();break;case 31:o.memoizedState!==null&&Ma(o);break;case 13:Ma(o);break;case 19:Xm(o);break;case 10:ro(o.type);break;case 22:case 23:Ma(o),Km(),a!==null&&kt(hi);break;case 24:ro(kn)}}function ol(a,o){try{var u=o.updateQueue,d=u!==null?u.lastEffect:null;if(d!==null){var m=d.next;u=m;do{if((u.tag&a)===a){d=void 0;var k=u.create,C=u.inst;d=k(),C.destroy=d}u=u.next}while(u!==m)}}catch(R){Le(o,o.return,R)}}function Po(a,o,u){try{var d=o.updateQueue,m=d!==null?d.lastEffect:null;if(m!==null){var k=m.next;d=k;do{if((d.tag&a)===a){var C=d.inst,R=C.destroy;if(R!==void 0){C.destroy=void 0,m=o;var G=u,tt=R;try{tt()}catch(ot){Le(m,G,ot)}}}d=d.next}while(d!==k)}}catch(ot){Le(o,o.return,ot)}}function g9(a){var o=a.updateQueue;if(o!==null){var u=a.stateNode;try{n2(o,u)}catch(d){Le(a,a.return,d)}}}function m9(a,o,u){u.props=yi(a.type,a.memoizedProps),u.state=a.memoizedState;try{u.componentWillUnmount()}catch(d){Le(a,o,d)}}function Ls(a,o){try{var u=a.ref;if(u!==null){switch(a.tag){case 26:case 27:case 5:var d=a.stateNode;break;case 30:var m=a.stateNode,k=no(a.memoizedProps,m);(m.ref===null||m.ref.name!==k)&&(m.ref=b3(k)),d=m.ref;break;case 7:if(a.stateNode===null){var C=new Ba(a);h(a.child,!1,Ow,C,void 0,void 0),a.stateNode=C}d=a.stateNode;break;default:d=a.stateNode}typeof u=="function"?a.refCleanup=u(d):u.current=d}}catch(R){Le(a,o,R)}}function Wn(a,o){var u=a.ref,d=a.refCleanup;if(u!==null)if(typeof d=="function")try{d()}catch(m){Le(a,o,m)}finally{a.refCleanup=null,a=a.alternate,a!=null&&(a.refCleanup=null)}else if(typeof u=="function")try{u(null)}catch(m){Le(a,o,m)}else u.current=null}function Ld(a,o){if((a.tag===5||a.tag===27||a.tag===6)&&a.alternate===null&&o!==null)for(var u=0;u<o.length;u++)E3(a.stateNode,o[u])}function h9(a){for(var o=a.return;o!==null&&(wh(o)&&E3(a.stateNode,o.stateNode),!Sh(o));)o=o.return}function il(a){for(var o=a.return;o!==null&&(wh(o)&&Dw(a.stateNode,o.stateNode),!Sh(o));)o=o.return}function Sh(a){return a.tag===5||a.tag===3||a.tag===27}function wh(a){return a&&a.tag===7&&a.stateNode!==null}function Eh(a){var o=a.type,u=a.memoizedProps,d=a.stateNode;try{t:switch(o){case"button":case"input":case"select":case"textarea":u.autoFocus&&d.focus();break t;case"img":u.src?d.src=u.src:u.srcSet&&(d.srcset=u.srcSet)}}catch(m){Le(a,a.return,m)}}function Ih(a,o,u){try{var d=a.stateNode;kw(d,a.type,u,o),d[en]=o}catch(m){Le(a,a.return,m)}}function _9(a){return a.tag===5||a.tag===3||a.tag===26||a.tag===27&&$o(a.type)||a.tag===4}function Nh(a){t:for(;;){for(;a.sibling===null;){if(a.return===null||_9(a.return))return null;a=a.return}for(a.sibling.return=a.return,a=a.sibling;a.tag!==5&&a.tag!==6&&a.tag!==18;){if(a.tag===27&&$o(a.type)||a.flags&2||a.child===null||a.tag===4)continue t;a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}function Rh(a,o,u,d){var m=a.tag;if(m===5||m===6)m=a.stateNode,o?(u.nodeType===9?u.body:u.nodeName==="HTML"?u.ownerDocument.body:u).insertBefore(m,o):(o=u.nodeType===9?u.body:u.nodeName==="HTML"?u.ownerDocument.body:u,o.appendChild(m),u=u._reactRootContainer,u!=null||o.onclick!==null||(o.onclick=js)),Ld(a,d),we=!0;else if(m!==4&&(m===27&&(Ld(a,d),d=null,$o(a.type)&&(u=a.stateNode,o=null)),a=a.child,a!==null))for(Rh(a,o,u,d),a=a.sibling;a!==null;)Rh(a,o,u,d),a=a.sibling}function Od(a,o,u,d){var m=a.tag;if(m===5||m===6)m=a.stateNode,o?u.insertBefore(m,o):u.appendChild(m),Ld(a,d),we=!0;else if(m!==4&&(m===27&&(Ld(a,d),d=null,$o(a.type)&&(u=a.stateNode)),a=a.child,a!==null))for(Od(a,o,u,d),a=a.sibling;a!==null;)Od(a,o,u,d),a=a.sibling}function f9(a){var o=a.stateNode,u=a.memoizedProps;try{for(var d=a.type,m=o.attributes;m.length;)o.removeAttributeNode(m[0]);Xn(o,d,u),o[Pe]=a,o[en]=u}catch(k){Le(a,a.return,k)}}var Dd=!1,La=null;function k9(a){(a.tag===30||(a.subtreeFlags&33554432)!==0)&&(Dd=!0)}var Os=null;function v9(){var a=Os;return Os=null,a}var va=0;function br(a,o,u,d,m){return va=0,y9(a.child,o,u,d,m)}function y9(a,o,u,d,m){for(var k=!1;a!==null;){if(a.tag===5){var C=a.stateNode;if(d!==null){var R=g_(C);d.push(R),R.view&&(k=!0)}else k||g_(C).view&&(k=!0);Dd=!0,v3(C,va===0?o:o+"_"+va,u),va++}else(a.tag!==22||a.memoizedState===null)&&(a.tag===30&&m||y9(a.child,o,u,d,m)&&(k=!0));a=a.sibling}return k}function Ds(a,o){for(;a!==null;)a.tag===5?y3(a.stateNode,a.memoizedProps):(a.tag!==22||a.memoizedState===null)&&(a.tag===30&&o||Ds(a.child,o)),a=a.sibling}function zd(a){if((a.subtreeFlags&18874368)!==0)for(a=a.child;a!==null;){if((a.tag!==22||a.memoizedState===null)&&(zd(a),a.tag===30&&(a.flags&18874368)!==0&&a.stateNode.paired)){var o=a.memoizedProps;if(o.name==null||o.name==="auto")throw Error(s(544));var u=o.name;o=ao(o.default,o.share),o!=="none"&&(br(a,u,o,null,!1)||Ds(a.child,!1))}a=a.sibling}}function Th(a,o){if(a.tag===30){var u=a.stateNode,d=a.memoizedProps,m=no(d,u),k=ao(d.default,u.paired?d.share:d.enter);k!=="none"?br(a,m,k,null,!1)?(zd(a),u.paired||o||Nr(a,d.onEnter)):Ds(a.child,!1):zd(a)}else if((a.subtreeFlags&33554432)!==0)for(a=a.child;a!==null;)Th(a,o),a=a.sibling;else zd(a)}function jh(a){if(La!==null&&La.size!==0){var o=La;if((a.subtreeFlags&18874368)!==0)for(a=a.child;a!==null;){if(a.tag!==22||a.memoizedState===null){if(a.tag===30&&(a.flags&18874368)!==0){var u=a.memoizedProps,d=u.name;if(d!=null&&d!=="auto"){var m=o.get(d);if(m!==void 0){var k=ao(u.default,u.share);if(k!=="none"&&(br(a,d,k,null,!1)?(k=a.stateNode,m.paired=k,k.paired=m,Nr(a,u.onShare)):Ds(a.child,!1)),o.delete(d),o.size===0)break}}}jh(a)}a=a.sibling}}}function Ph(a){if(a.tag===30){var o=a.memoizedProps,u=no(o,a.stateNode),d=La!==null?La.get(u):void 0,m=ao(o.default,d!==void 0?o.share:o.exit);m!=="none"&&(br(a,u,m,null,!1)?d!==void 0?(m=a.stateNode,d.paired=m,m.paired=d,La.delete(u),Nr(a,o.onShare)):Nr(a,o.onExit):Ds(a.child,!1)),La!==null&&jh(a)}else if((a.subtreeFlags&33554432)!==0)for(a=a.child;a!==null;)Ph(a),a=a.sibling;else La!==null&&jh(a)}function b9(a){for(a=a.child;a!==null;){if(a.tag===30){var o=a.memoizedProps,u=no(o,a.stateNode);o=ao(o.default,o.update),a.flags&=-5,o!=="none"&&br(a,u,o,a.memoizedState=[],!1)}else(a.subtreeFlags&33554432)!==0&&b9(a);a=a.sibling}}function Mh(a){if((a.subtreeFlags&18874368)!==0)for(a=a.child;a!==null;){if(a.tag!==22||a.memoizedState===null){if(a.tag===30&&(a.flags&18874368)!==0){var o=a.stateNode;o.paired!==null&&(o.paired=null,Ds(a.child,!1))}Mh(a)}a=a.sibling}}function Bd(a){if(a.tag===30)a.stateNode.paired=null,Ds(a.child,!1),Mh(a);else if((a.subtreeFlags&33554432)!==0)for(a=a.child;a!==null;)Bd(a),a=a.sibling;else Mh(a)}function x9(a){for(a=a.child;a!==null;)a.tag===30?Ds(a.child,!1):(a.subtreeFlags&33554432)!==0&&x9(a),a=a.sibling}function Lh(a,o,u,d,m,k,C){for(var R=!1;o!==null;){if(o.tag===5){var G=o.stateNode;if(k!==null&&va<k.length){var tt=k[va],ot=g_(G);(tt.view||ot.view)&&(R=!0);var dt;if(dt=(a.flags&4)===0)if(ot.clip)dt=!0;else{dt=tt.rect;var J=ot.rect;dt=dt.y!==J.y||dt.x!==J.x||dt.height!==J.height||dt.width!==J.width}dt&&(a.flags|=4),ot.abs?ot=!tt.abs:(tt=tt.rect,ot=ot.rect,ot=tt.height!==ot.height||tt.width!==ot.width),ot&&(a.flags|=32)}else a.flags|=32;(a.flags&4)!==0&&v3(G,va===0?u:u+"_"+va,m),R&&(a.flags&4)!==0||(Os===null&&(Os=[]),Os.push(G,va===0?d:d+"_"+va,o.memoizedProps)),va++}else(o.tag!==22||o.memoizedState===null)&&(o.tag===30&&C?a.flags|=o.flags&32:Lh(a,o.child,u,d,m,k,C)&&(R=!0));o=o.sibling}return R}function A9(a,o){for(a=a.child;a!==null;){if(a.tag===30){var u=a.memoizedProps,d=a.stateNode,m=no(u,d),k=ao(u.default,u.update),C;C=a.memoizedState,a.memoizedState=null,d=a;var R=a.child;va=0,m=Lh(d,R,m,m,k,C,!1),(a.flags&4)!==0&&m&&Nr(a,u.onUpdate)}else(a.subtreeFlags&33554432)!==0&&A9(a);a=a.sibling}}var Dn=!1,je=!1,zs=!1,Oh=!1,C9=typeof WeakSet=="function"?WeakSet:Set,zn=null,Bs=!1,rl=!1,$d=!1,Dh=!1;function KS(a,o,u){if(a=a.containerInfo,u_=Br,a=Iv(a),Am(a)){if("selectionStart"in a)var d={start:a.selectionStart,end:a.selectionEnd};else t:{d=(d=a.ownerDocument)&&d.defaultView||window;var m=d.getSelection&&d.getSelection();if(m&&m.rangeCount!==0){d=m.anchorNode;var k=m.anchorOffset,C=m.focusNode;m=m.focusOffset;try{d.nodeType,C.nodeType}catch{d=null;break t}var R=0,G=-1,tt=-1,ot=0,dt=0,J=a,nt=null;e:for(;;){for(var xt;J!==d||k!==0&&J.nodeType!==3||(G=R+k),J!==C||m!==0&&J.nodeType!==3||(tt=R+m),J.nodeType===3&&(R+=J.nodeValue.length),(xt=J.firstChild)!==null;)nt=J,J=xt;for(;;){if(J===a)break e;if(nt===d&&++ot===k&&(G=R),nt===C&&++dt===m&&(tt=R),(xt=J.nextSibling)!==null)break;J=nt,nt=J.parentNode}J=xt}d=G===-1||tt===-1?null:{start:G,end:tt}}else d=null}d=d||{start:0,end:0}}else d=null;for(l_={focusedElem:a,selectionRange:d},Br=!1,u=(u&335544064)===u,zn=o,o=u?9270:1024;zn!==null;){if(a=zn,u&&(d=a.deletions,d!==null))for(k=0;k<d.length;k++)u&&Ph(d[k]);if(a.alternate===null&&(a.flags&2)!==0)u&&k9(a),Gd(u);else{if(a.tag===22){if(d=a.alternate,a.memoizedState!==null){d!==null&&d.memoizedState===null&&u&&Ph(d),Gd(u);continue}else if(d!==null&&d.memoizedState!==null){u&&k9(a),Gd(u);continue}}d=a.child,(a.subtreeFlags&o)!==0&&d!==null?(d.return=a,zn=d):(u&&b9(a),Gd(u))}}La=null}function Gd(a){for(;zn!==null;){var o=zn,u=a,d=o.alternate,m=o.flags;switch(o.tag){case 0:case 11:case 15:break;case 1:if((m&1024)!==0&&d!==null){u=void 0,m=d.memoizedProps,d=d.memoizedState;var k=o.stateNode;try{var C=yi(o.type,m);u=k.getSnapshotBeforeUpdate(C,d),k.__reactInternalSnapshotBeforeUpdate=u}catch(R){Le(o,o.return,R)}}break;case 3:if((m&1024)!==0){if(d=o.stateNode.containerInfo,u=d.nodeType,u===9)__(d);else if(u===1)switch(d.nodeName){case"HEAD":case"HTML":case"BODY":__(d);break;default:d.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;case 30:u&&d!==null&&(u=no(d.memoizedProps,d.stateNode),m=o.memoizedProps,m=ao(m.default,m.update),m!=="none"&&br(d,u,m,d.memoizedState=[],!0));break;default:if((m&1024)!==0)throw Error(s(163))}if(d=o.sibling,d!==null){d.return=o.return,zn=d;break}zn=o.return}}function S9(a,o,u){var d=u.flags;switch(u.tag){case 0:case 11:case 15:$s(a,u),d&4&&ol(5,u);break;case 1:if($s(a,u),d&4)if(a=u.stateNode,o===null)try{a.componentDidMount()}catch(C){Le(u,u.return,C)}else{var m=yi(u.type,o.memoizedProps);o=o.memoizedState;try{a.componentDidUpdate(m,o,a.__reactInternalSnapshotBeforeUpdate)}catch(C){Le(u,u.return,C)}}d&64&&g9(u),d&512&&Ls(u,u.return);break;case 3:if($s(a,u),d&64&&(a=u.updateQueue,a!==null)){if(o=null,u.child!==null)switch(u.child.tag){case 27:case 5:o=u.child.stateNode;break;case 1:o=u.child.stateNode}try{n2(a,o)}catch(C){Le(u,u.return,C)}}break;case 27:o===null&&d&4&&f9(u);case 26:case 5:$s(a,u),o===null&&d&4&&Eh(u),d&512&&Ls(u,u.return);break;case 12:$s(a,u);break;case 31:$s(a,u),d&4&&N9(a,u);break;case 13:$s(a,u),d&4&&R9(a,u),d&64&&(a=u.memoizedState,a!==null&&(a=a.dehydrated,a!==null&&(u=ow.bind(null,u),$w(a,u))));break;case 22:if(d=u.memoizedState!==null||Dn,!d){var k=o!==null&&o.memoizedState!==null||je;o=Dn,m=je,Dn=d,(je=k)&&!m?(d=2,(u.subtreeFlags&8772)!==0&&(d|=1),fs(a,u,d)):$s(a,u),Dn=o,je=m}break;case 30:$s(a,u),d&512&&Ls(u,u.return);break;case 7:d&512&&Ls(u,u.return);default:$s(a,u)}}function zh(a,o){for(a=a.child;a!==null;)w9(a,o),a=a.sibling}function w9(a,o){switch(a.tag){case 5:case 26:try{var u=a.stateNode;if(o){var d=u.style;typeof d.setProperty=="function"?d.setProperty("display","none","important"):d.display="none"}else{var m=a.stateNode,k=a.memoizedProps.style,C=k!=null&&k.hasOwnProperty("display")?k.display:null;m.style.display=C==null||typeof C=="boolean"?"":(""+C).trim()}}catch(G){Le(a,a.return,G)}Bh(a,o);break;case 6:try{a.stateNode.nodeValue=o?"":a.memoizedProps,we=!0}catch(G){Le(a,a.return,G)}break;case 18:try{var R=a.stateNode;o?k3(R,!0):k3(a.stateNode,!1)}catch(G){Le(a,a.return,G)}break;case 22:case 23:a.memoizedState===null&&zh(a,o);break;default:zh(a,o)}}function Bh(a,o){if(a.subtreeFlags&67108864)for(a=a.child;a!==null;){t:{var u=a,d=o;switch(u.tag){case 4:w9(u,d);break t;case 22:u.memoizedState===null&&Bh(u,d);break t;default:Bh(u,d)}}a=a.sibling}}function E9(a){var o=a.alternate;o!==null&&(a.alternate=null,E9(o)),a.child=null,a.deletions=null,a.sibling=null,a.tag===5&&(o=a.stateNode,o!==null&&un(o)),a.stateNode=null,a.return=null,a.dependencies=null,a.memoizedProps=null,a.memoizedState=null,a.pendingProps=null,a.stateNode=null,a.updateQueue=null}var Ze=null,ya=!1;function hs(a,o,u){for(u=u.child;u!==null;)I9(a,o,u),u=u.sibling}function I9(a,o,u){if(He&&typeof He.onCommitFiberUnmount=="function")try{He.onCommitFiberUnmount(rn,u)}catch{}switch(u.tag){case 26:je||Wn(u,o),hs(a,o,u),u.memoizedState?u.memoizedState.count--:u.stateNode&&!je&&(u=u.stateNode,u.parentNode.removeChild(u));break;case 27:je||Wn(u,o),il(u);var d=Ze,m=ya;$o(u.type)&&(Ze=u.stateNode,ya=!1),hs(a,o,u),j3(u.stateNode,u.type,u.memoizedProps),Ze=d,ya=m;break;case 5:je||Wn(u,o),il(u);case 6:if(u.tag===6&&il(u),d=Ze,m=ya,Ze=null,hs(a,o,u),Ze=d,ya=m,Ze!==null)if(ya)try{(Ze.nodeType===9?Ze.body:Ze.nodeName==="HTML"?Ze.ownerDocument.body:Ze).removeChild(u.stateNode),we=!0}catch(k){Le(u,o,k)}else try{Ze.removeChild(u.stateNode),we=!0}catch(k){Le(u,o,k)}break;case 18:Ze!==null&&(ya?(a=Ze,f3(a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a,u.stateNode),$r(a)):f3(Ze,u.stateNode));break;case 4:d=Ze,m=ya,Ze=u.stateNode.containerInfo,ya=!0,hs(a,o,u),Ze=d,ya=m;break;case 0:case 11:case 14:case 15:Po(2,u,o),je||Po(4,u,o),hs(a,o,u);break;case 1:je||(Wn(u,o),d=u.stateNode,typeof d.componentWillUnmount=="function"&&m9(u,o,d)),hs(a,o,u);break;case 21:hs(a,o,u);break;case 22:je=(d=je)||u.memoizedState!==null,hs(a,o,u),je=d;break;case 30:Wn(u,o),hs(a,o,u);break;case 7:je||Wn(u,o),hs(a,o,u);break;default:hs(a,o,u)}}function N9(a,o){if(o.memoizedState===null&&(a=o.alternate,a!==null&&(a=a.memoizedState,a!==null))){a=a.dehydrated;try{$r(a)}catch(u){Le(o,o.return,u)}}}function R9(a,o){if(o.memoizedState===null&&(a=o.alternate,a!==null&&(a=a.memoizedState,a!==null&&(a=a.dehydrated,a!==null))))try{$r(a)}catch(u){Le(o,o.return,u)}}function WS(a){switch(a.tag){case 31:case 13:case 19:var o=a.stateNode;return o===null&&(o=a.stateNode=new C9),o;case 22:return a=a.stateNode,o=a._retryCache,o===null&&(o=a._retryCache=new C9),o;default:throw Error(s(435,a.tag))}}function Hd(a,o){var u=WS(a);o.forEach(function(d){if(!u.has(d)){u.add(d);var m=iw.bind(null,a,d);d.then(m,m)}})}function da(a,o,u){var d=o.deletions;if(d!==null)for(var m=0;m<d.length;m++){var k=d[m],C=a,R=o,G=R;t:for(;G!==null;){switch(G.tag){case 27:if($o(G.type)){Ze=G.stateNode,ya=!1;break t}break;case 5:Ze=G.stateNode,ya=!1;break t;case 3:case 4:Ze=G.stateNode.containerInfo,ya=!0;break t}G=G.return}if(Ze===null)throw Error(s(160));I9(C,R,k),Ze=null,ya=!1,C=k.alternate,C!==null&&(C.return=null),k.return=null}if(o.subtreeFlags&13886)for(o=o.child;o!==null;)T9(o,a,u),o=o.sibling}var _s=null;function T9(a,o,u){var d=a.alternate,m=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:if(m&4&&(d=a.updateQueue,d=d!==null?d.events:null,d!==null))for(var k=0;k<d.length;k++){var C=d[k];C.ref.impl=C.nextImpl}da(o,a,u),pa(a),m&4&&(Po(3,a,a.return),ol(3,a),Po(5,a,a.return));break;case 1:da(o,a,u),pa(a),m&512&&(je||d===null||Wn(d,d.return)),m&64&&Dn&&(a=a.updateQueue,a!==null&&(o=a.callbacks,o!==null&&(u=a.shared.hiddenCallbacks,a.shared.hiddenCallbacks=u===null?o:u.concat(o))));break;case 26:if(k=_s,da(o,a,u),pa(a),m&512&&(je||d===null||Wn(d,d.return)),m&4)if(m=d!==null?d.memoizedState:null,u=a.memoizedState,d===null)if(u===null)if(a.stateNode===null)if(Dn)a.stateNode=m3(a.type,a.memoizedProps,o.containerInfo,a);else{t:{o=a.type,u=a.memoizedProps,m=k.ownerDocument||k;e:switch(o){case"title":d=m.getElementsByTagName("title")[0],(!d||d[qt]||d[Pe]||d.namespaceURI==="http://www.w3.org/2000/svg"||d.hasAttribute("itemprop"))&&(d=m.createElement(o),m.head.insertBefore(d,m.querySelector("head > title"))),Xn(d,o,u),d[Pe]=a,ln(d),o=d;break t;case"link":if(k=z3("link","href",m).get(o+(u.href||""))){for(C=0;C<k.length;C++)if(d=k[C],d.getAttribute("href")===(u.href==null||u.href===""?null:u.href)&&d.getAttribute("rel")===(u.rel==null?null:u.rel)&&d.getAttribute("title")===(u.title==null?null:u.title)&&d.getAttribute("crossorigin")===(u.crossOrigin==null?null:u.crossOrigin)){k.splice(C,1);break e}}d=m.createElement(o),Xn(d,o,u),m.head.appendChild(d);break;case"meta":if(k=z3("meta","content",m).get(o+(u.content||""))){for(C=0;C<k.length;C++)if(d=k[C],d.getAttribute("content")===(u.content==null?null:""+u.content)&&d.getAttribute("name")===(u.name==null?null:u.name)&&d.getAttribute("property")===(u.property==null?null:u.property)&&d.getAttribute("http-equiv")===(u.httpEquiv==null?null:u.httpEquiv)&&d.getAttribute("charset")===(u.charSet==null?null:u.charSet)){k.splice(C,1);break e}}d=m.createElement(o),Xn(d,o,u),m.head.appendChild(d);break;default:throw Error(s(468,o))}d[Pe]=a,ln(d),o=d}a.stateNode=o}else Dn||A_(k,a.type,a.stateNode);else a.stateNode=D3(k,u,a.memoizedProps);else m!==u?(m===null?(o=d.stateNode,o===null||je||o.parentNode.removeChild(o)):m.count--,u===null?Dn||A_(k,a.type,a.stateNode):D3(k,u,a.memoizedProps)):u===null&&a.stateNode!==null&&Ih(a,a.memoizedProps,d.memoizedProps);break;case 27:da(o,a,u),pa(a),m&512&&(je||d===null||Wn(d,d.return)),d!==null&&m&4&&Ih(a,a.memoizedProps,d.memoizedProps);break;case 5:if(k=zs,zs=!1,da(o,a,u),zs=k,pa(a),m&512&&(je||d===null||Wn(d,d.return)),a.flags&32){o=a.stateNode;try{ar(o,""),we=!0}catch(ot){Le(a,a.return,ot)}}m&4&&a.stateNode!=null&&(o=a.memoizedProps,Ih(a,o,d!==null?d.memoizedProps:o)),m&1024&&(Oh=!0);break;case 6:if(da(o,a,u),pa(a),m&4){if(a.stateNode===null)throw Error(s(162));o=a.memoizedProps,u=a.stateNode;try{u.nodeValue=o,we=!0}catch(ot){Le(a,a.return,ot)}}break;case 3:if(we=!1,ap=null,k=_s,_s=_l(o.containerInfo),da(o,a,u),_s=k,pa(a),m&4&&d!==null&&d.memoizedState.isDehydrated)try{$r(o.containerInfo)}catch(ot){Le(a,a.return,ot)}Oh&&(Oh=!1,j9(a)),we=!1;break;case 4:m=zs,zs=Dn,d=J1(),k=_s,_s=_l(a.stateNode.containerInfo),da(o,a,u),pa(a),_s=k,we&&rl&&($d=!0),we=d,zs=m;break;case 12:da(o,a,u),pa(a);break;case 31:da(o,a,u),pa(a),m&4&&(o=a.updateQueue,o!==null&&(a.updateQueue=null,Hd(a,o)));break;case 13:da(o,a,u),pa(a),a.child.flags&8192&&a.memoizedState!==null!=(d!==null&&d.memoizedState!==null)&&(Vd=ye()),m&4&&(o=a.updateQueue,o!==null&&(a.updateQueue=null,Hd(a,o)));break;case 22:k=a.memoizedState!==null,C=d!==null&&d.memoizedState!==null;var R=Dn,G=je,tt=zs;Dn=R||k,zs=tt||k,je=G||C,da(o,a,u),je=G,zs=tt,Dn=R,pa(a),m&8192&&(o=a.stateNode,o._visibility=k?o._visibility&-2:o._visibility|1,!k||d===null||C||Dn||je||(o=C||je,u=Dn,d=je,Dn=k||Dn,je=o,Mo(a,2),Dn=u,je=d),!k&&zs||zh(a,k)),m&4&&(o=a.updateQueue,o!==null&&(u=o.retryQueue,u!==null&&(o.retryQueue=null,Hd(a,u))));break;case 19:da(o,a,u),pa(a),m&4&&(o=a.updateQueue,o!==null&&(a.updateQueue=null,Hd(a,o)));break;case 30:m&512&&(je||d===null||Wn(d,d.return)),m=J1(),k=rl,C=(u&335544064)===u,R=a.memoizedProps,rl=C&&ao(R.default,R.update)!=="none",da(o,a,u),pa(a),C&&d!==null&&we&&(a.flags|=4),rl=k,we=m;break;case 21:break;case 7:m&512&&(je||d===null||Wn(d,d.return)),d&&d.stateNode!==null&&(d.stateNode._fragmentFiber=a);default:da(o,a,u),pa(a)}}function pa(a){var o=a.flags;if(o&2){try{for(var u,d=a.return;d!==null;){if(_9(d)){u=d;break}d=d.return}d=null;for(var m=a.return;m!==null;){if(wh(m)){var k=m.stateNode;d===null?d=[k]:d.push(k)}if(Sh(m))break;m=m.return}var C=d;if(u==null)throw Error(s(160));switch(u.tag){case 27:var R=u.stateNode,G=Nh(a);Od(a,G,R,C);break;case 5:var tt=u.stateNode;u.flags&32&&(ar(tt,""),u.flags&=-33);var ot=Nh(a);Od(a,ot,tt,C);break;case 3:case 4:var dt=u.stateNode.containerInfo,J=Nh(a);Rh(a,J,dt,C);break;default:throw Error(s(161))}}catch(nt){Le(a,a.return,nt)}a.flags&=-3}o&4096&&(a.flags&=-4097)}function j9(a){if(a.subtreeFlags&1024)for(a=a.child;a!==null;){var o=a;j9(o),o.tag===5&&o.flags&1024&&(o=o.stateNode,Br=!0,o.reset(),Br=!1),a=a.sibling}}function xr(a,o){if(o.subtreeFlags&9270)for(o=o.child;o!==null;)P9(o,a),o=o.sibling;else A9(o)}function P9(a,o){var u=a.alternate;if(u===null)Th(a,!1);else switch(a.tag){case 3:if(Dh=Bs=!1,v9(),xr(o,a),!Bs&&!$d){if(a=Os,a!==null)for(var d=0;d<a.length;d+=3){u=a[d];var m=a[d+1];y3(u,a[d+2]),u=u.ownerDocument.documentElement,u!==null&&u.animate({opacity:[0,0],pointerEvents:["none","none"]},{duration:0,fill:"forwards",pseudoElement:"::view-transition-group("+m+")"})}a=o.containerInfo,a=a.nodeType===9?a.documentElement:a.ownerDocument.documentElement,a!==null&&a.style.viewTransitionName===""&&(a.style.viewTransitionName="none",a.animate({opacity:[0,0],pointerEvents:["none","none"]},{duration:0,fill:"forwards",pseudoElement:"::view-transition-group(root)"}),a.animate({width:[0,0],height:[0,0]},{duration:0,fill:"forwards",pseudoElement:"::view-transition"})),Dh=!0}Os=null;break;case 5:xr(o,a);break;case 4:d=Bs,Bs=!1,xr(o,a),Bs&&($d=!0),Bs=d;break;case 22:a.memoizedState===null&&(u.memoizedState!==null?Th(a,!1):xr(o,a));break;case 30:d=Bs,m=v9(),Bs=!1,xr(o,a),Bs&&(a.flags|=4);var k=a.memoizedProps,C=a.stateNode;o=no(k,C),C=no(u.memoizedProps,C);var R=ao(k.default,k.update);R==="none"?o=!1:(k=u.memoizedState,u.memoizedState=null,u=a.child,va=0,o=Lh(a,u,o,C,R,k,!0),va!==(k===null?0:k.length)&&(a.flags|=32)),(a.flags&4)!==0&&o?(Nr(a,a.memoizedProps.onUpdate),Os=m):m!==null&&(m.push.apply(m,Os),Os=m),Bs=(a.flags&32)!==0?!0:d;break;default:xr(o,a)}}function $s(a,o){if(o.subtreeFlags&8772)for(o=o.child;o!==null;)S9(a,o.alternate,o),o=o.sibling}function Mo(a,o){for(a=a.child;a!==null;){var u=a,d=o;switch(u.tag){case 0:case 11:case 14:case 15:Po(4,u,u.return),Mo(u,d);break;case 1:Wn(u,u.return);var m=u.stateNode;typeof m.componentWillUnmount=="function"&&m9(u,u.return,m),Mo(u,d);break;case 27:(d&2)!==0&&j3(u.stateNode,u.type,u.memoizedProps);case 5:Wn(u,u.return),u.tag!==5&&u.tag!==27||il(u),Mo(u,d);break;case 6:il(u);break;case 26:Wn(u,u.return),m=u.stateNode,u.memoizedState!==null||m===null||je||m.parentNode.removeChild(m),Mo(u,d);break;case 22:u.memoizedState===null&&Mo(u,d);break;case 30:Wn(u,u.return),Mo(u,d);break;case 7:Wn(u,u.return);default:Mo(u,d)}a=a.sibling}}function fs(a,o,u){for(u=(o.subtreeFlags&8772)!==0?u:u&-2,o=o.child;o!==null;){var d=o.alternate,m=a,k=o,C=k.flags,R=(u&1)!==0;switch(k.tag){case 0:case 11:case 15:fs(m,k,u),ol(4,k);break;case 1:if(fs(m,k,u),d=k,m=d.stateNode,typeof m.componentDidMount=="function")try{m.componentDidMount()}catch(ot){Le(d,d.return,ot)}if(d=k,m=d.updateQueue,m!==null){var G=d.stateNode;try{var tt=m.shared.hiddenCallbacks;if(tt!==null)for(m.shared.hiddenCallbacks=null,m=0;m<tt.length;m++)e2(tt[m],G)}catch(ot){Le(d,d.return,ot)}}R&&C&64&&g9(k),Ls(k,k.return);break;case 27:(u&2)!==0&&f9(k);case 5:k.tag!==5&&k.tag!==27||h9(k),fs(m,k,u),R&&d===null&&C&4&&Eh(k),Ls(k,k.return);break;case 6:h9(k);break;case 26:G=k.stateNode,k.memoizedState!==null||G===null||Dn||A_(_l(G.ownerDocument),k.type,G),fs(m,k,u),R&&d===null&&C&4&&Eh(k),Ls(k,k.return);break;case 12:fs(m,k,u);break;case 31:fs(m,k,u),R&&C&4&&N9(m,k);break;case 13:fs(m,k,u),R&&C&4&&R9(m,k);break;case 22:k.memoizedState===null&&fs(m,k,u),Ls(k,k.return);break;case 30:fs(m,k,u),Ls(k,k.return);break;case 7:Ls(k,k.return);default:fs(m,k,u)}o=o.sibling}}function $h(a,o){var u=null;a!==null&&a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(u=a.memoizedState.cachePool.pool),a=null,o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(a=o.memoizedState.cachePool.pool),a!==u&&(a!=null&&a.refCount++,u!=null&&qu(u))}function Gh(a,o){a=null,o.alternate!==null&&(a=o.alternate.memoizedState.cache),o=o.memoizedState.cache,o!==a&&(o.refCount++,a!=null&&qu(a))}function es(a,o,u,d){var m=(u&335544064)===u;if(o.subtreeFlags&(m?10262:10256))for(o=o.child;o!==null;)M9(a,o,u,d),o=o.sibling;else m&&x9(o)}function M9(a,o,u,d){var m=(u&335544064)===u;m&&o.alternate===null&&o.return!==null&&o.return.alternate!==null&&Bd(o);var k=o.flags;switch(o.tag){case 0:case 11:case 15:es(a,o,u,d),k&2048&&ol(9,o);break;case 1:es(a,o,u,d);break;case 3:es(a,o,u,d),m&&Dh&&(a=a.containerInfo,a=a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a,a.style.viewTransitionName==="root"&&(a.style.viewTransitionName=""),a=a.ownerDocument.documentElement,a!==null&&a.style.viewTransitionName==="none"&&(a.style.viewTransitionName="")),k&2048&&(k=null,o.alternate!==null&&(k=o.alternate.memoizedState.cache),o=o.memoizedState.cache,o!==k&&(o.refCount++,k!=null&&qu(k)));break;case 12:if(k&2048){es(a,o,u,d),k=o.stateNode;try{var C=o.memoizedProps,R=C.id,G=C.onPostCommit;typeof G=="function"&&G(R,o.alternate===null?"mount":"update",k.passiveEffectDuration,-0)}catch(tt){Le(o,o.return,tt)}}else es(a,o,u,d);break;case 31:es(a,o,u,d);break;case 13:es(a,o,u,d);break;case 23:break;case 22:C=o.stateNode,R=o.alternate,o.memoizedState!==null?(m&&R!==null&&R.memoizedState===null&&Bd(R),C._visibility&2?es(a,o,u,d):ul(a,o)):(m&&R!==null&&R.memoizedState!==null&&Bd(o),C._visibility&2?es(a,o,u,d):(C._visibility|=2,Ar(a,o,u,d,(o.subtreeFlags&10256)!==0||!1))),k&2048&&$h(R,o);break;case 24:es(a,o,u,d),k&2048&&Gh(o.alternate,o);break;case 30:m&&(k=o.alternate,k!==null&&(Ds(k.child,!0),Ds(o.child,!0))),es(a,o,u,d);break;default:es(a,o,u,d)}}function Ar(a,o,u,d,m){for(m=m&&((o.subtreeFlags&10256)!==0||!1),o=o.child;o!==null;){var k=a,C=o,R=u,G=d,tt=C.flags;switch(C.tag){case 0:case 11:case 15:Ar(k,C,R,G,m),ol(8,C);break;case 23:break;case 22:var ot=C.stateNode;C.memoizedState!==null?ot._visibility&2?Ar(k,C,R,G,m):ul(k,C):(ot._visibility|=2,Ar(k,C,R,G,m)),m&&tt&2048&&$h(C.alternate,C);break;case 24:Ar(k,C,R,G,m),m&&tt&2048&&Gh(C.alternate,C);break;default:Ar(k,C,R,G,m)}o=o.sibling}}function ul(a,o){if(o.subtreeFlags&10256)for(o=o.child;o!==null;){var u=a,d=o,m=d.flags;switch(d.tag){case 22:ul(u,d),m&2048&&$h(d.alternate,d);break;case 24:ul(u,d),m&2048&&Gh(d.alternate,d);break;default:ul(u,d)}o=o.sibling}}var bi=8192;function xi(a,o,u){if(a.subtreeFlags&bi)for(a=a.child;a!==null;)L9(a,o,u),a=a.sibling}function L9(a,o,u){switch(a.tag){case 26:xi(a,o,u),a.flags&bi&&(a.memoizedState!==null?t8(u,_s,a.memoizedState,a.memoizedProps):(a=a.stateNode,(o&335544128)===o&&H3(u,a)));break;case 5:xi(a,o,u),a.flags&bi&&(a=a.stateNode,(o&335544128)===o&&H3(u,a));break;case 3:case 4:var d=_s;_s=_l(a.stateNode.containerInfo),xi(a,o,u),_s=d;break;case 22:a.memoizedState===null&&(d=a.alternate,d!==null&&d.memoizedState!==null?(d=bi,bi=16777216,xi(a,o,u),bi=d):xi(a,o,u));break;case 30:if((a.flags&bi)!==0&&(d=a.memoizedProps.name,d!=null&&d!=="auto")){var m=a.stateNode;m.paired=null,La===null&&(La=new Map),La.set(d,m)}xi(a,o,u);break;default:xi(a,o,u)}}function O9(a){var o=a.alternate;if(o!==null&&(a=o.child,a!==null)){o.child=null;do o=a.sibling,a.sibling=null,a=o;while(a!==null)}}function ll(a){var o=a.deletions;if((a.flags&16)!==0){if(o!==null)for(var u=0;u<o.length;u++){var d=o[u];zn=d,z9(d,a)}O9(a)}if(a.subtreeFlags&10256)for(a=a.child;a!==null;)D9(a),a=a.sibling}function D9(a){switch(a.tag){case 0:case 11:case 15:ll(a),a.flags&2048&&Po(9,a,a.return);break;case 3:ll(a);break;case 12:ll(a);break;case 22:var o=a.stateNode;a.memoizedState!==null&&o._visibility&2&&(a.return===null||a.return.tag!==13)?(o._visibility&=-3,Fd(a)):ll(a);break;default:ll(a)}}function Fd(a){var o=a.deletions;if((a.flags&16)!==0){if(o!==null)for(var u=0;u<o.length;u++){var d=o[u];zn=d,z9(d,a)}O9(a)}for(a=a.child;a!==null;){switch(o=a,o.tag){case 0:case 11:case 15:Po(8,o,o.return),Fd(o);break;case 22:u=o.stateNode,u._visibility&2&&(u._visibility&=-3,Fd(o));break;default:Fd(o)}a=a.sibling}}function z9(a,o){for(;zn!==null;){var u=zn;switch(u.tag){case 0:case 11:case 15:Po(8,u,o);break;case 23:case 22:if(u.memoizedState!==null&&u.memoizedState.cachePool!==null){var d=u.memoizedState.cachePool.pool;d!=null&&d.refCount++}break;case 24:qu(u.memoizedState.cache)}if(d=u.child,d!==null)d.return=u,zn=d;else t:for(u=a;zn!==null;){d=zn;var m=d.sibling,k=d.return;if(E9(d),d===u){zn=null;break t}if(m!==null){m.return=k,zn=m;break t}zn=k}}}var XS={getCacheForType:function(a){var o=Vn(kn),u=o.data.get(a);return u===void 0&&(u=a(),o.data.set(a,u)),u},cacheSignal:function(){return Vn(kn).controller.signal}},YS=typeof WeakMap=="function"?WeakMap:Map,Ee=0,Ue=null,me=null,_e=0,Me=0,Oa=null,Lo=!1,Cr=!1,Hh=!1,go=0,dn=0,Oo=0,Ai=0,Ud=0,Da=0,Sr=0,cl=null,ba=null,Fh=!1,Vd=0,B9=0,qd=1/0,Kd=null,Do=null,nn=0,ks=null,Ci=null,Gs=0,Uh=0,Vh=null,$9=null,wr=null,Er=null,Ir=null,dl=0,Wd=null;function za(){return(Ee&2)!==0&&_e!==0?_e&-_e:ft.T!==null?e_():Ra()}function G9(){if(Da===0)if((_e&536870912)===0||ce){var a=Fn;Fn<<=1,(Fn&3932160)===0&&(Fn=262144),Da=a}else Da=536870912;return a=qn.current,a!==null&&(a.flags|=32),Da}function Nr(a,o){if(o!=null){var u=a.stateNode,d=u.ref;d===null&&(d=u.ref=b3(no(a.memoizedProps,u))),Er===null&&(Er=[]),Er.push(o.bind(null,d))}}function xa(a,o,u){(a===Ue&&(Me===2||Me===9)||a.cancelPendingCommit!==null)&&(Rr(a,0),zo(a,_e,Da,!1)),be(a,u),((Ee&2)===0||a!==Ue)&&(a===Ue&&((Ee&2)===0&&(Ai|=u),dn===4&&zo(a,_e,Da,!1)),Hs(a))}function H9(a,o,u){if((Ee&6)!==0)throw Error(s(327));var d=!u&&(o&127)===0&&(o&a.expiredLanes)===0||gn(a,o),m=d?ZS(a,o):Kh(a,o,!0),k=d;do{if(m===0){Cr&&!d&&zo(a,o,0,!1);break}else{if(u=a.current.alternate,k&&!QS(u)){m=Kh(a,o,!1),k=!1;continue}if(m===2){if(k=o,a.errorRecoveryDisabledLanes&k)var C=0;else C=a.pendingLanes&-536870913,C=C!==0?C:C&536870912?536870912:0;if(C!==0){o=C;t:{var R=a;m=cl;var G=R.current.memoizedState.isDehydrated;if(G&&(Rr(R,C).flags|=256),C=Kh(R,C,!1),C!==2&&C!==6){if(Hh&&!G){R.errorRecoveryDisabledLanes|=k,Ai|=k,m=4;break t}k=ba,ba=m,k!==null&&(ba===null?ba=k:ba.push.apply(ba,k))}m=C}if(k=!1,m!==2)continue}}if(m===1){Rr(a,0),zo(a,o,0,!0);break}t:{switch(d=a,k=m,k){case 0:case 1:throw Error(s(345));case 4:if((o&4194048)!==o&&(o&62914560)!==o)break;case 6:zo(d,o,Da,!Lo);break t;case 2:ba=null;break;case 3:case 5:break;default:throw Error(s(329))}if((o&62914560)===o&&(m=Vd+300-ye(),10<m)){if(zo(d,o,Da,!Lo),Mn(d,0,!0)!==0)break t;Gs=o,d.timeoutHandle=p_(F9.bind(null,d,u,ba,Kd,Fh,o,Da,Ai,Sr,Lo,k,"Throttled",-0,0),m);break t}F9(d,u,ba,Kd,Fh,o,Da,Ai,Sr,Lo,k,null,-0,0)}}break}while(!0);Hs(a)}function F9(a,o,u,d,m,k,C,R,G,tt,ot,dt,J,nt){a.timeoutHandle=-1;var xt=o.subtreeFlags,Lt=(k&335544064)===k;if(dt=null,(Lt||xt&8192||(xt&16785408)===16785408)&&(dt={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:js},La=null,L9(o,k,dt),Lt&&(xt=dt,Lt=a.containerInfo,Lt=(Lt.nodeType===9?Lt:Lt.ownerDocument).__reactViewTransition,Lt!=null&&(xt.count++,xt.waitingForViewTransition=!0,xt=vl.bind(xt),Lt.finished.then(xt,xt))),xt=(k&62914560)===k?Vd-ye():(k&4194048)===k?B9-ye():0,xt=e8(dt,xt),xt!==null)){Gs=k,a.cancelPendingCommit=xt(Q9.bind(null,a,o,k,u,d,m,C,R,G,tt,ot,dt,null,J,nt)),zo(a,k,C,!tt);return}Q9(a,o,k,u,d,m,C,R,G,tt,ot,dt)}function QS(a){for(var o=a;;){var u=o.tag;if((u===0||u===11||u===15)&&o.flags&16384&&(u=o.updateQueue,u!==null&&(u=u.stores,u!==null)))for(var d=0;d<u.length;d++){var m=u[d],k=m.getSnapshot;m=m.value;try{if(!Pa(k(),m))return!1}catch{return!1}}if(u=o.child,o.subtreeFlags&16384&&u!==null)u.return=o,o=u;else{if(o===a)break;for(;o.sibling===null;){if(o.return===null||o.return===a)return!0;o=o.return}o.sibling.return=o.return,o=o.sibling}}return!0}function zo(a,o,u,d){o=tn(a,o),o&=~Ud,o&=~Ai,a.suspendedLanes|=o,a.pingedLanes&=~o,d&&(a.warmLanes|=o),d=a.expirationTimes;for(var m=o;0<m;){var k=31-Mt(m),C=1<<k;d[k]=-1,m&=~C}u!==0&&xe(a,u,o)}function Xd(){return(Ee&6)===0?(pl(0),!1):!0}function qh(){if(me!==null){if(Me===0)var a=me.return;else a=me,io=di=null,th(a),_r=null,Xu=0,a=me;for(;a!==null;)p9(a.alternate,a),a=a.return;me=null}}function Rr(a,o){var u=a.timeoutHandle;return u!==-1&&(a.timeoutHandle=-1,bw(u)),u=a.cancelPendingCommit,u!==null&&(a.cancelPendingCommit=null,u()),Gs=0,qh(),Ue=a,me=u=so(a.current,null),_e=o,Me=0,Oa=null,Lo=!1,Cr=gn(a,o),Hh=!1,Sr=Da=Ud=Ai=Oo=dn=0,ba=cl=null,Fh=!1,go=tn(a,o),ad(),u}function U9(a,o){se=null,ft.H=Id,o===hr||o===md?(o=Qv(),Me=3):o===Gm?(o=Qv(),Me=4):Me=o===hh?8:o!==null&&typeof o=="object"&&typeof o.then=="function"?6:1,Oa=o,me===null&&(dn=1,Nd(a,Qa(o,a.current)))}function V9(){var a=qn.current;return a===null?!0:(_e&4194048)===_e?ea===null:(_e&62914560)===_e||(_e&536870912)!==0?a===ea:!1}function q9(){var a=ft.H;return ft.H=Id,a===null?Id:a}function K9(){var a=ft.A;return ft.A=XS,a}function Yd(){dn=4,Lo||(_e&4194048)!==_e&&qn.current!==null||(Cr=!0),(Oo&134217727)===0&&(Ai&134217727)===0||Ue===null||zo(Ue,_e,Da,!1)}function Kh(a,o,u){var d=Ee;Ee|=2;var m=q9(),k=K9();(Ue!==a||_e!==o)&&(Kd=null,Rr(a,o)),o=!1;var C=dn;t:do try{if(Me!==0&&me!==null){var R=me,G=Oa;switch(Me){case 8:qh(),C=6;break t;case 3:case 2:case 9:case 6:qn.current===null&&(o=!0);var tt=Me;if(Me=0,Oa=null,Tr(a,R,G,tt),u&&Cr){C=0;break t}break;default:tt=Me,Me=0,Oa=null,Tr(a,R,G,tt)}}JS(),C=dn;break}catch(ot){U9(a,ot)}while(!0);return o&&a.shellSuspendCounter++,io=di=null,Ee=d,ft.H=m,ft.A=k,me===null&&(Ue=null,_e=0,ad()),C}function JS(){for(;me!==null;)W9(me)}function ZS(a,o){var u=Ee;Ee|=2;var d=q9(),m=K9();Ue!==a||_e!==o?(Kd=null,qd=ye()+500,Rr(a,o)):Cr=gn(a,o);t:do try{if(Me!==0&&me!==null){o=me;var k=Oa;e:switch(Me){case 1:Me=0,Oa=null,Tr(a,o,k,1);break;case 2:case 9:if(Xv(k)){Me=0,Oa=null,X9(o);break}o=function(){Me!==2&&Me!==9||Ue!==a||(Me=7),Hs(a)},k.then(o,o);break t;case 3:Me=7;break t;case 4:Me=5;break t;case 7:Xv(k)?(Me=0,Oa=null,X9(o)):(Me=0,Oa=null,Tr(a,o,k,7));break;case 5:var C=null;switch(me.tag){case 26:C=me.memoizedState;case 5:case 27:var R=me;if(C?$3(C):R.stateNode.complete){Me=0,Oa=null;var G=R.sibling;if(G!==null)me=G;else{var tt=R.return;tt!==null?(me=tt,Qd(tt)):me=null}break e}}Me=0,Oa=null,Tr(a,o,k,5);break;case 6:Me=0,Oa=null,Tr(a,o,k,6);break;case 8:qh(),dn=6;break t;default:throw Error(s(462))}}tw();break}catch(ot){U9(a,ot)}while(!0);return io=di=null,ft.H=d,ft.A=m,Ee=u,me!==null?0:(Ue=null,_e=0,ad(),dn)}function tw(){for(;me!==null&&!Yt();)W9(me)}function W9(a){var o=c9(a.alternate,a,go);a.memoizedProps=a.pendingProps,o===null?Qd(a):me=o}function X9(a){var o=a,u=o.alternate;switch(o.tag){case 15:case 0:o=a9(u,o,o.pendingProps,o.type,void 0,_e);break;case 11:o=a9(u,o,o.pendingProps,o.type.render,o.ref,_e);break;case 5:th(o);var d=o;d===On&&(ce?(ld(d),d.tag===5&&d.stateNode!=null&&(qe=d.stateNode)):(ld(d),ce=!0));default:p9(u,o),o=me=zv(o,go),o=c9(u,o,go)}a.memoizedProps=a.pendingProps,o===null?Qd(a):me=o}function Tr(a,o,u,d){io=di=null,th(o),_r=null,Xu=0;var m=o.return;try{if(GS(a,m,o,u,_e)){dn=1,Nd(a,Qa(u,a.current)),me=null;return}}catch(k){if(m!==null)throw me=m,k;dn=1,Nd(a,Qa(u,a.current)),me=null;return}o.flags&32768?(ce||d===1?a=!0:Cr||(_e&536870912)!==0?a=!1:(Lo=a=!0,(d===2||d===9||d===3||d===6)&&(d=qn.current,d!==null&&d.tag===13&&(d.flags|=16384))),Y9(o,a)):Qd(o)}function Qd(a){var o=a;do{if((o.flags&32768)!==0){Y9(o,Lo);return}a=o.return;var u=VS(o.alternate,o,go);if(u!==null){me=u;return}if(o=o.sibling,o!==null){me=o;return}me=o=a}while(o!==null);dn===0&&(dn=5)}function Y9(a,o){do{var u=qS(a.alternate,a);if(u!==null){u.flags&=32767,me=u;return}if(u=a.return,u!==null&&(u.flags|=32768,u.subtreeFlags=0,u.deletions=null),!o&&(a=a.sibling,a!==null)){me=a;return}me=a=u}while(a!==null);dn=6,me=null}function Q9(a,o,u,d,m,k,C,R,G,tt,ot,dt){a.cancelPendingCommit=null;do Jd();while(nn!==0);if((Ee&6)!==0)throw Error(s(327));if(o!==null){if(o===a.current)throw Error(s(177));a===Ue&&(me=Ue=null,_e=0),Ci=o,ks=a,Gs=u,Vh=m,$9=d,ew(a,o,u,C,R,G,dt)}}function ew(a,o,u,d,m,k,C){var R=o.lanes|o.childLanes;if(Uh=R,R|=Im,wn(a,u,R,d,m,k),Er=null,(u&335544064)===u?(Ir=NS(a),d=10262):(Ir=null,d=10256),(o.subtreeFlags&d)!==0||(o.flags&d)!==0?(a.callbackNode=null,a.callbackPriority=0,rw(Zn,function(){return Qh(),null})):(a.callbackNode=null,a.callbackPriority=0),Dd=!1,d=(o.flags&13878)!==0,(o.subtreeFlags&13878)!==0||d){d=ft.T,ft.T=null,m=mt.p,mt.p=2,k=Ee,Ee|=4;try{KS(a,o,u)}finally{Ee=k,mt.p=m,ft.T=d}}nn=1,Dd?wr=Ew(C,a.containerInfo,Ir,Wh,Xh,aw,Yh,Qh,nw):(Wh(),Xh(),Yh())}function nw(a){if(nn!==0){var o=ks.onRecoverableError;o(a,{componentStack:null})}}function aw(){nn===3&&(nn=0,P9(Ci,ks),nn=4)}function Wh(){if(nn===1){nn=0;var a=ks,o=Ci,u=Gs,d=(o.flags&13878)!==0;if((o.subtreeFlags&13878)!==0||d){d=ft.T,ft.T=null;var m=mt.p;mt.p=2;var k=Ee;Ee|=4;try{rl=$d=!1,T9(o,a,u),u=l_;var C=Iv(a.containerInfo),R=u.focusedElem,G=u.selectionRange;if(C!==R&&R&&R.ownerDocument&&Ev(R.ownerDocument.documentElement,R)){if(G!==null&&Am(R)){var tt=G.start,ot=G.end;if(ot===void 0&&(ot=tt),"selectionStart"in R)R.selectionStart=tt,R.selectionEnd=Math.min(ot,R.value.length);else{var dt=R.ownerDocument||document,J=dt&&dt.defaultView||window;if(J.getSelection){var nt=J.getSelection(),xt=R.textContent.length,Lt=Math.min(G.start,xt),oe=G.end===void 0?Lt:Math.min(G.end,xt);!nt.extend&&Lt>oe&&(C=oe,oe=Lt,Lt=C);var Z=wv(R,Lt),K=wv(R,oe);if(Z&&K&&(nt.rangeCount!==1||nt.anchorNode!==Z.node||nt.anchorOffset!==Z.offset||nt.focusNode!==K.node||nt.focusOffset!==K.offset)){var et=dt.createRange();et.setStart(Z.node,Z.offset),nt.removeAllRanges(),Lt>oe?(nt.addRange(et),nt.extend(K.node,K.offset)):(et.setEnd(K.node,K.offset),nt.addRange(et))}}}}for(dt=[],nt=R;nt=nt.parentNode;)nt.nodeType===1&&dt.push({element:nt,left:nt.scrollLeft,top:nt.scrollTop});for(typeof R.focus=="function"&&R.focus(),R=0;R<dt.length;R++){var ct=dt[R];ct.element.scrollLeft=ct.left,ct.element.scrollTop=ct.top}}Br=!!u_,l_=u_=null}finally{Ee=k,mt.p=m,ft.T=d}}a.current=o,nn=2}}function Xh(){if(nn===2){nn=0;var a=ks,o=Ci,u=(o.flags&8772)!==0;if((o.subtreeFlags&8772)!==0||u){u=ft.T,ft.T=null;var d=mt.p;mt.p=2;var m=Ee;Ee|=4;try{S9(a,o.alternate,o)}finally{Ee=m,mt.p=d,ft.T=u}}nn=3}}function Yh(){if(nn===4||nn===3){nn=0;var a=wr;wr=null,Qt();var o=ks,u=Ci,d=Gs,m=$9,k=(d&335544064)===d?10262:10256;if((u.subtreeFlags&k)!==0||(u.flags&k)!==0?nn=5:(nn=0,Ci=ks=null,J9(o,o.pendingLanes)),k=o.pendingLanes,k===0&&(Do=null),mn(d),u=u.stateNode,He&&typeof He.onCommitFiberRoot=="function")try{He.onCommitFiberRoot(rn,u,void 0,(u.current.flags&128)===128)}catch{}if(m!==null){u=ft.T,k=mt.p,mt.p=2,ft.T=null;try{for(var C=o.onRecoverableError,R=0;R<m.length;R++){var G=m[R];C(G.value,{componentStack:G.stack})}}finally{ft.T=u,mt.p=k}}if(m=Er,C=Ir,Ir=null,m!==null&&(Er=null,C===null&&(C=[]),a!==null))for(G=0;G<m.length;G++)u=(0,m[G])(C),u!==void 0&&a.finished.finally(u);(Gs&3)!==0&&Jd(),Hs(o),k=o.pendingLanes,(d&261930)!==0&&(k&42)!==0?o===Wd?dl++:(dl=0,Wd=o):(dl=0,Wd=null),pl(0)}}function J9(a,o){(a.pooledCacheLanes&=o)===0&&(o=a.pooledCache,o!=null&&(a.pooledCache=null,qu(o)))}function Jd(){return wr!==null&&(wr.skipTransition(),wr=null),Wh(),Xh(),Yh(),Qh()}function Qh(){if(nn!==5)return!1;var a=ks,o=Uh;Uh=0;var u=mn(Gs),d=ft.T,m=mt.p;try{mt.p=32>u?32:u,ft.T=null,u=Vh,Vh=null;var k=ks,C=Gs;if(nn=0,Ci=ks=null,Gs=0,(Ee&6)!==0)throw Error(s(331));var R=Ee;if(Ee|=4,D9(k.current),M9(k,k.current,C,u),Ee=R,pl(0,!1),He&&typeof He.onPostCommitFiberRoot=="function")try{He.onPostCommitFiberRoot(rn,k)}catch{}return!0}finally{mt.p=m,ft.T=d,J9(a,o)}}function Z9(a,o,u){o=Qa(u,o),o=mh(a.stateNode,o,2),a=No(a,o,2),a!==null&&(be(a,2),Hs(a))}function Le(a,o,u){if(a.tag===3)Z9(a,a,u);else for(;o!==null;){if(o.tag===3){Z9(o,a,u);break}else if(o.tag===1){var d=o.stateNode;if(typeof o.type.getDerivedStateFromError=="function"||typeof d.componentDidCatch=="function"&&(Do===null||!Do.has(d))){a=Qa(u,a),u=X2(2),d=No(o,u,2),d!==null&&(Y2(u,d,o,a),be(d,2),Hs(d));break}}o=o.return}}function Jh(a,o,u){var d=a.pingCache;
vendor: 4,313 bytes, line 8
8if(d===null){d=a.pingCache=new YS;var m=new Set;d.set(o,m)}else m=d.get(o),m===void 0&&(m=new Set,d.set(o,m));m.has(u)||(Hh=!0,m.add(u),a=sw.bind(null,a,o,u),o.then(a,a))}function sw(a,o,u){var d=a.pingCache;d!==null&&d.delete(o),a.pingedLanes|=a.suspendedLanes&u,a.warmLanes&=~u,Ue===a&&(_e&u)===u&&((dn===4||dn===3&&(_e&62914560)===_e&&300>ye()-Vd)&&(Ee&2)===0?Rr(a,0):Ud|=u,Sr===_e&&(Sr=0)),Hs(a)}function t3(a,o){o===0&&(o=Vt()),a=ui(a,o),a!==null&&(be(a,o),Hs(a))}function ow(a){var o=a.memoizedState,u=0;o!==null&&(u=o.retryLane),t3(a,u)}function iw(a,o){var u=0;switch(a.tag){case 31:case 13:var d=a.stateNode,m=a.memoizedState;m!==null&&(u=m.retryLane);break;case 19:d=a.stateNode;break;case 22:d=a.stateNode._retryCache;break;default:throw Error(s(314))}d!==null&&d.delete(o),t3(a,u)}function rw(a,o){return ve(a,o)}var jr=null,Pr=null,Zh=!1,Zd=!1,t_=!1,Bo=0;function Hs(a){a!==Pr&&a.next===null&&(Pr===null?jr=Pr=a:Pr=Pr.next=a),Zd=!0,Zh||(Zh=!0,lw())}function pl(a,o){if(!t_&&Zd){t_=!0;do for(var u=!1,d=jr;d!==null;){if(a!==0){var m=d.pendingLanes;if(m===0)var k=0;else{var C=d.suspendedLanes,R=d.pingedLanes;k=(1<<31-Mt(42|a)+1)-1,k&=m&~(C&~R),k=k&201326741?k&201326741|1:k?k|2:0}k!==0&&(u=!0,s3(d,k))}else k=_e,k=Mn(d,d===Ue?k:0,d.cancelPendingCommit!==null||d.timeoutHandle!==-1),(k&3)===0||gn(d,k)||(u=!0,s3(d,k));d=d.next}while(u);t_=!1}}function uw(){e3()}function e3(){Zd=Zh=!1;var a=0;Bo!==0&&yw()&&(a=Bo);for(var o=ye(),u=null,d=jr;d!==null;){var m=d.next,k=n3(d,o);k===0?(d.next=null,u===null?jr=m:u.next=m,m===null&&(Pr=u)):(u=d,(a!==0||(k&3)!==0)&&(Zd=!0)),d=m}nn!==0&&nn!==5||pl(a),Bo!==0&&(Bo=0)}function n3(a,o){for(var u=a.suspendedLanes,d=a.pingedLanes,m=a.expirationTimes,k=a.pendingLanes&-62914561;0<k;){var C=31-Mt(k),R=1<<C,G=m[C];G===-1?((R&u)===0||(R&d)!==0)&&(m[C]=ta(R,o)):G<=o&&(a.expiredLanes|=R),k&=~R}if(o=Ue,u=_e,u=Mn(a,a===o?u:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),d=a.callbackNode,u===0||a===o&&(Me===2||Me===9)||a.cancelPendingCommit!==null)return d!==null&&d!==null&&Dt(d),a.callbackNode=null,a.callbackPriority=0;if((u&3)===0||gn(a,u)){if(o=u&-u,o===a.callbackPriority)return o;switch(d!==null&&Dt(d),mn(u)){case 2:case 8:u=Tn;break;case 32:u=Zn;break;case 268435456:u=jn;break;default:u=Zn}return d=a3.bind(null,a),u=ve(u,d),a.callbackPriority=o,a.callbackNode=u,o}return d!==null&&d!==null&&Dt(d),a.callbackPriority=2,a.callbackNode=null,2}function a3(a,o){if(nn!==0&&nn!==5)return a.callbackNode=null,a.callbackPriority=0,null;var u=a.callbackNode;if(Jd()&&a.callbackNode!==u)return null;var d=_e;return d=Mn(a,a===Ue?d:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),d===0?null:(H9(a,d,o),n3(a,ye()),a.callbackNode!=null&&a.callbackNode===u?a3.bind(null,a):null)}function s3(a,o){if(Jd())return null;H9(a,o,!0)}function lw(){xw(function(){(Ee&6)!==0?ve(Gn,uw):e3()})}function e_(){if(Bo===0){var a=mi;a===0&&(a=Je,Je<<=1,(Je&261888)===0&&(Je=256)),Bo=a}return Bo}function o3(a){return a==null||typeof a=="symbol"||typeof a=="boolean"?null:typeof a=="function"?a:Xc(a)}function cw(a,o,u,d,m){if(o==="submit"&&u&&u.stateNode===m){var k=o3((m[en]||null).action),C=d.submitter;C&&(o=(o=C[en]||null)?o3(o.formAction):C.getAttribute("formAction"),o!==null&&(k=o,C=null));var R=new Zc("action","action",null,d,m);a.push({event:R,listeners:[{instance:null,listener:function(){if(d.defaultPrevented){if(Bo!==0){var G=new FormData(m,C);lh(u,{pending:!0,data:G,method:m.method,action:k},null,G)}}else typeof k=="function"&&(R.preventDefault(),G=new FormData(m,C),lh(u,{pending:!0,data:G,method:m.method,action:k},k,G))},currentTarget:m}]})}}for(var n_=0;n_<Em.length;n_++){var a_=Em[n_],dw=a_.toLowerCase(),pw=a_[0].toUpperCase()+a_.slice(1);ms(dw,"on"+pw)}ms(Tv,"onAnimationEnd"),ms(jv,"onAnimationIteration"),ms(Pv,"onAnimationStart"),ms("dblclick","onDoubleClick"),ms("focusin","onFocus"),ms("focusout","onBlur"),ms(bS,"onTransitionRun"),ms(xS,"onTransitionStart"),ms(AS,"onTransitionCancel"),ms(Mv,"onTransitionEnd"),gs("onMouseEnter",["mouseout","mouseover"]),gs("onMouseLeave",["mouseout","mouseover"]),gs("onPointerEnter",["pointerout","pointerover"]),gs("onPointerLeave",["pointerout","pointerover"]),le("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),le("onSelect","focusout contextmenu dragend focu
8sin keydown keyup mousedown mouseup selectionchange".split(" ")),le("onBeforeInput",["compositionend","keypress","textInput","paste"]),le("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),le("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),le("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var gl="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),gw=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(gl));function i3(a,o){o=(o&4)!==0;for(var u=0;u<a.length;u++){var d=a[u],m=d.event;d=d.listeners;t:{var k=void 0;if(o)for(var C=d.length-1;0<=C;C--){var R=d[C],G=R.instance,tt=R.currentTarget;if(R=R.listener,G!==k&&m.isPropagationStopped())break t;k=R,m.currentTarget=tt;try{k(m)}catch(ot){nd(ot)}m.currentTarget=null,k=G}else for(C=0;C<d.length;C++){if(R=d[C],G=R.instance,tt=R.currentTarget,R=R.listener,G!==k&&m.isPropagationStopped())break t;k=R,m.currentTarget=tt;try{k(m)}catch(ot){nd(ot)}m.currentTarget=null,k=G}}}}function he(a,o){var u=o[Rs];u===void 0&&(u=o[Rs]=new Set);var d=a+"__bubble";u.has(d)||(r3(o,a,2,!1),u.add(d))}function s_(a,o,u){var d=0;o&&(d|=4),r3(u,a,d,o)}var tp="_reactListening"+Math.random().toString(36).slice(2);function o_(a){if(!a[tp]){a[tp]=!0,er.forEach(function(u){u!=="selectionchange"&&(gw.has(u)||s_(u,!1,a),s_(u,!0,a))});var o=a.nodeType===9?a:a.ownerDocument;o===null||o[tp]||(o[tp]=!0,s_("selectionchange",!1,o))}}function r3(a,o,u,d){switch(Y3(o)){case 2:var m=o8;break;case 8:m=i8;break;default:m=S_}u=m.bind(null,o,u,a),m=void 0,!gm||o!=="touchstart"&&o!=="touchmove"&&o!=="wheel"||(m=!0),d?m!==void 0?a.addEventListener(o,u,{capture:!0,passive:m}):a.addEventListener(o,u,!0):m!==void 0?a.addEventListener(o,u,{passive:m}):a.addEventListener(o,u,!1)}function i_(a,o,u,d,m){var k=d;if((o&1)===0&&(o&2)===0&&d!==null)t:for(;;){if(d===null)return;var C=d.tag;if(C===3||C===4){var R=d.stateNode.containerInfo;if(R===m)break;if(C===4)for(C=d.return;C!==null;){var G=C.tag;if((G===3||G===4)&&C.stateNode.containerInfo===m)return;C=C.return}for(;R!==null;){if(C=Ta(R),C===null)return;if(G=C.tag,G===5||G===6||G===26||G===27){d=k=C;continue t}R=R.parentNode}}d=d.return}rv(function(){var tt=k,ot=dm(u),dt=[];t:{var J=Lv.get(a);if(J!==void 0){var nt=Zc,xt=a;switch(a){case"keypress":if(Qc(u)===0)break t;case"keydown":case"keyup":nt=QC;break;case"focusin":xt="focus",nt=fm;break;case"focusout":xt="blur",nt=fm;break;case"beforeblur":case"afterblur":nt=fm;break;case"click":if(u.button===2)break t;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":nt=cv;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":nt=BC;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":nt=nS;break;case Tv:case jv:case Pv:nt=HC;break;case Mv:nt=sS;break;case"scroll":case"scrollend":nt=DC;break;case"wheel":nt=iS;break;case"copy":case"cut":case"paste":nt=UC;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":nt=pv;break;case"submit":nt=tS;break;case"toggle":case"beforetoggle":nt=uS}var Lt=(o&4)!==0,oe=!Lt&&(a==="scroll"||a==="scrollend"),Z=Lt?J!==null?J+"Capture":null:J;Lt=[];for(var K=tt,et;K!==null;){var ct=K;if(et=ct.stateNode,ct=ct.tag,ct!==5&&ct!==26&&ct!==27||et===null||Z===null||(ct=Lu(K,Z),ct!=null&&Lt.push(ml(K,ct,et))),oe)break;K=K.return}0<Lt.length&&(J=new nt(J,xt,null,u,ot),dt.push({event:J,listeners:Lt}))}}if((o&7)===0){t:{if(nt=a==="mouseover"||a==="pointerover",J=a==="mouseout"||a==="pointerout",nt&&u!==cm&&(xt=u.relatedTarget||u.fromElement)&&(Ta(xt)||xt[fa]))break t;(J||nt)&&(xt=ot.window===ot?ot:(nt=ot.ownerDocument)?nt.defaultView||nt.parentWindow:window,J?(nt=u.relatedTarget||u.toElement,J=tt,nt=nt?Ta(nt):null,nt!==null&&(oe=r(nt),Lt=nt.tag,nt!==oe||Lt!==5&&Lt!==27&&Lt!==6)&&(nt=null)):(J=null,nt=tt),J!==nt&&(Lt=cv,ct="onMouseLeave",Z="onMouseEnter",K="mouse",(a==="pointerout"||a==="pointerover")&&(Lt=pv,ct="onPointerLeave",Z="onPointerEnter",K="pointer"),oe=J==null?xt:Ts(J),et=nt==null?xt:Ts(nt),xt=new Lt(ct,K+"leave",J,u,ot),xt.target=
vendor: 5,408 bytes, lines 8-9
8oe,xt.relatedTarget=et,ct=null,Ta(ot)===tt&&(Lt=new Lt(Z,K+"enter",nt,u,ot),Lt.target=et,Lt.relatedTarget=oe,ct=Lt),oe=ct,Lt=J&&nt?P(J,nt,mw):null,J!==null&&u3(dt,xt,J,Lt,!1),nt!==null&&oe!==null&&u3(dt,oe,nt,Lt,!0)))}t:{if(J=tt?Ts(tt):window,nt=J.nodeName&&J.nodeName.toLowerCase(),nt==="select"||nt==="input"&&J.type==="file")var Rt=yv;else if(kv(J))if(bv)Rt=kS;else{Rt=_S;var fe=hS}else nt=J.nodeName,!nt||nt.toLowerCase()!=="input"||J.type!=="checkbox"&&J.type!=="radio"?tt&&lm(tt.elementType)&&(Rt=yv):Rt=fS;if(Rt&&(Rt=Rt(a,tt))){vv(dt,Rt,u,ot);break t}fe&&fe(a,J,tt)}switch(fe=tt?Ts(tt):window,a){case"focusin":(kv(fe)||fe.contentEditable==="true")&&(rr=fe,Cm=tt,Fu=null);break;case"focusout":Fu=Cm=rr=null;break;case"mousedown":Sm=!0;break;case"contextmenu":case"mouseup":case"dragend":Sm=!1,Nv(dt,u,ot);break;case"selectionchange":if(yS)break;case"keydown":case"keyup":Nv(dt,u,ot)}var $t;if(vm)t:{switch(a){case"compositionstart":var Kt="onCompositionStart";break t;case"compositionend":Kt="onCompositionEnd";break t;case"compositionupdate":Kt="onCompositionUpdate";break t}Kt=void 0}else ir?_v(a,u)&&(Kt="onCompositionEnd"):a==="keydown"&&u.keyCode===229&&(Kt="onCompositionStart");Kt&&(gv&&u.locale!=="ko"&&(ir||Kt!=="onCompositionStart"?Kt==="onCompositionEnd"&&ir&&($t=uv()):(yo=ot,mm="value"in yo?yo.value:yo.textContent,ir=!0)),fe=ep(tt,Kt),0<fe.length&&(Kt=new dv(Kt,a,null,u,ot),dt.push({event:Kt,listeners:fe}),$t?Kt.data=$t:($t=fv(u),$t!==null&&(Kt.data=$t)))),($t=cS?dS(a,u):pS(a,u))&&(Kt=ep(tt,"onBeforeInput"),0<Kt.length&&(fe=new dv("onBeforeInput","beforeinput",null,u,ot),dt.push({event:fe,listeners:Kt}),fe.data=$t)),cw(dt,a,tt,u,ot)}i3(dt,o)})}function ml(a,o,u){return{instance:a,listener:o,currentTarget:u}}function ep(a,o){for(var u=o+"Capture",d=[];a!==null;){var m=a,k=m.stateNode;if(m=m.tag,m!==5&&m!==26&&m!==27||k===null||(m=Lu(a,u),m!=null&&d.unshift(ml(a,m,k)),m=Lu(a,o),m!=null&&d.push(ml(a,m,k))),a.tag===3)return d;a=a.return}return[]}function mw(a){if(a===null)return null;do a=a.return;while(a&&a.tag!==5&&a.tag!==27);return a||null}function u3(a,o,u,d,m){for(var k=o._reactName,C=[];u!==null&&u!==d;){var R=u,G=R.alternate,tt=R.stateNode;if(R=R.tag,G!==null&&G===d)break;R!==5&&R!==26&&R!==27||tt===null||(G=tt,m?(tt=Lu(u,k),tt!=null&&C.unshift(ml(u,tt,G))):m||(tt=Lu(u,k),tt!=null&&C.push(ml(u,tt,G)))),u=u.return}C.length!==0&&a.push({event:o,listeners:C})}var hw=/\r\n?/g,_w=/\u0000|\uFFFD/g;function l3(a){return(typeof a=="string"?a:""+a).replace(hw,`
9`).replace(_w,"")}function c3(a,o){return o=l3(o),l3(a)===o}function Oe(a,o,u,d,m,k){switch(u){case"children":if(typeof d=="string")o==="body"||o==="textarea"&&d===""||ar(a,d);else if(typeof d=="number"||typeof d=="bigint")o!=="body"&&ar(a,""+d);else return;break;case"className":Wc(a,"class",d);break;case"tabIndex":Wc(a,"tabindex",d);break;case"dir":case"role":case"viewBox":case"width":case"height":Wc(a,u,d);break;case"style":ov(a,d,k);return;case"data":if(o!=="object"){Wc(a,"data",d);break}case"src":case"href":if(d===""&&(o!=="a"||u!=="href")){a.removeAttribute(u);break}if(d==null||typeof d=="function"||typeof d=="symbol"||typeof d=="boolean"){a.removeAttribute(u);break}d=Xc(d),a.setAttribute(u,d);break;case"action":case"formAction":if(typeof d=="function"){a.setAttribute(u,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof k=="function"&&(u==="formAction"?(o!=="input"&&Oe(a,o,"name",m.name,m,null),Oe(a,o,"formEncType",m.formEncType,m,null),Oe(a,o,"formMethod",m.formMethod,m,null),Oe(a,o,"formTarget",m.formTarget,m,null)):(Oe(a,o,"encType",m.encType,m,null),Oe(a,o,"method",m.method,m,null),Oe(a,o,"target",m.target,m,null)));if(d==null||typeof d=="symbol"||typeof d=="boolean"){a.removeAttribute(u);break}d=Xc(d),a.setAttribute(u,d);break;case"onClick":d!=null&&(a.onclick=js);return;case"onScroll":d!=null&&he("scroll",a);return;case"onScrollEnd":d!=null&&he("scrollend",a);return;case"dangerouslySetInnerHTML":if(d!=null){if(typeof d!="object"||!("__html"in d))throw Error(s(61));if(u=d.__html,u!=null){if(m.children!=null)throw Error(s(60));k?.__html!==u&&(a.innerHTML=u)}}break;case"multiple":a.multiple=d&&typeof d!="function"&&typeof d!="symbol";break;case"muted":a.muted=d&&typeof d!="function"&&typeof d!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(d==null||typeof d=="function"||typeof d=="boolean"||typeof d=="symbol"){a.removeAttribute("xlink:href");break}u=Xc(d),a.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",u);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":d!=null&&typeof d!="function"&&typeof d!="symbol"?a.setAttribute(u,d):a.removeAttribute(u);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"credentialless":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInl
9ine":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":d&&typeof d!="function"&&typeof d!="symbol"?a.setAttribute(u,""):a.removeAttribute(u);break;case"capture":case"download":d===!0?a.setAttribute(u,""):d!==!1&&d!=null&&typeof d!="function"&&typeof d!="symbol"?a.setAttribute(u,d):a.removeAttribute(u);break;case"cols":case"rows":case"size":case"span":d!=null&&typeof d!="function"&&typeof d!="symbol"&&!isNaN(d)&&1<=d?a.setAttribute(u,d):a.removeAttribute(u);break;case"rowSpan":case"start":d==null||typeof d=="function"||typeof d=="symbol"||isNaN(d)?a.removeAttribute(u):a.setAttribute(u,d);break;case"popover":he("beforetoggle",a),he("toggle",a),Kc(a,"popover",d);break;case"xlinkActuate":to(a,"http://www.w3.org/1999/xlink","xlink:actuate",d);break;case"xlinkArcrole":to(a,"http://www.w3.org/1999/xlink","xlink:arcrole",d);break;case"xlinkRole":to(a,"http://www.w3.org/1999/xlink","xlink:role",d);break;case"xlinkShow":to(a,"http://www.w3.org/1999/xlink","xlink:show",d);break;case"xlinkTitle":to(a,"http://www.w3.org/1999/xlink","xlink:title",d);break;case"xlinkType":to(a,"http://www.w3.org/1999/xlink","xlink:type",d);break;case"xmlBase":to(a,"http://www.w3.org/XML/1998/namespace","xml:base",d);break;case"xmlLang":to(a,"http://www.w3.org/XML/1998/namespace","xml:lang",d);break;case"xmlSpace":to(a,"http://www.w3.org/XML/1998/namespace","xml:space",d);break;case"is":Kc(a,"is",d);break;case"innerText":case"textContent":return;default:if(!(2<u.length)||u[0]!=="o"&&u[0]!=="O"||u[1]!=="n"&&u[1]!=="N")u=LC.get(u)||u,Kc(a,u,d);else return}we=!0}function r_(a,o,u,d,m,k){switch(u){case"style":ov(a,d,k);return;case"dangerouslySetInnerHTML":if(d!=null){if(typeof d!="object"||!("__html"in d))throw Error(s(61));if(u=d.__html,u!=null){if(m.children!=null)throw Error(s(60));k?.__html!==u&&(a.innerHTML=u)}}break;case"children":if(typeof d=="string")ar(a,d);else if(typeof d=="number"||typeof d=="bigint")ar(a,""+d);else return;break;case"onScroll":d!=null&&he("scroll",a);return;case"onScrollEnd":d!=null&&he("scrollend",a);return;case"onClick":d!=null&&(a.onclick=js);return;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":return;case"innerText":case"textContent":return;default:if(!Et.hasOwnProperty(u))t:{if(u[0]==="o"&&u[1]==="n"&&(m=u.endsWith("Capture"),k=u.slice(2,m?u.length-7:void 0),o=a[en]||null,o=o!=null?o[u]:null,typeof o=="function"&&a.removeEventListener(k,o,m),typeof d=="function")){typeof o!="function"&&o!==null&&(u in a?a[u]=null:a.hasAttribute(u)&&a.removeAttribute(u)),a.addEventListener(k,d,m);break t}we=!0,u in a?a[u]=d:d===!0?a.setAttribute(u,""):Kc(a,u,d)}return}we=!0}function Xn(a,o,u){switch(o){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":he("error",a),he("load",a);var d=!1,m=!1,k;for(k in u)if(u.hasOwnProperty(k)){var C=u[k];if(C!=null)switch(k){case"src":d=!0;break;case"srcSet":m=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(s(137,o));default:Oe(a,o,k,C,u,null)}}m&&Oe(a,o,"srcSet",u.srcSet,u,null),d&&Oe(a,o,"src",u.src,u,null);return;case"input":he("invalid",a);var R=k=C=m=null,G=null,tt=null;for(d in u)if(u.hasOwnProperty(d)){var ot=u[d];if(ot!=null)switch(d){case"name":m=ot;break;case"type":C=ot;break;case"checked":G=ot;break;case"defaultChecked":tt=ot;break;case"value":k=ot;break;case"defaultValue":R=ot;break;case"children":case"dangerouslySetInnerHTML":if(ot!=null)throw Error(s(137,o));break;default:Oe(a,o,d,ot,u,null)}}ev(a,k,R,G,tt,C,m,!1);return;case"select":he("invalid",a),d=C=k=null;for(m in u)if(u.hasOwnProperty(m)&&(R=u[m],R!=null))switch(m){case"value":k=R;break;case"defaultValue":C=R;break;case"multiple":d=R;default:Oe(a,o,m,R,u,null)}o=k,u=C,a.multiple=!!d,o!=null?nr(a,!!d,o,!1):u!=null&&nr(a,!!d,u,!0);return;case"textarea":he("invalid",a),k=m=d=null;for(C in u)if(u.hasOwnProperty(C)&&(R=u[C],R!=null))switch(C){case"value":d=R;break;case"defaultValue":m=R;break;case"children":k=R;break;case"dangerouslySetInnerHTML":if(R!=null)throw Error(s(91));break;default:Oe(a,o,C,R,u,null)}av(a,d,m,k);return;case"option":for(G in u)u.hasOwnProperty(G)&&(d=u[G],d!=null)&&(G==="selected"?a.selected=d&&typeof d!="function"&&typeof d!="symbol":Oe(a,o,G,d,u,null));return;case"dialog":he("beforetoggle",a),he("toggle",a),he("cancel",a),he("close",a);break;case"iframe":case"object":he("load",a);break;case"video":case"audio":for(d=0;d<gl.length;d++)he(gl[d],a);break;case"image":he("error",a),he("load",a);break;case"details":he("toggle",a);break;case"embed":case"source":case"link":he("error",a),he("load",a);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(tt in u)if(u.hasOwnProperty(tt)&&(d=u[tt],d!=null))switch(tt){case"children":case"dangerouslySetInnerHTML":throw Error(s(137,o));default:Oe(a,o,tt,d,u,null)}return;default:if(lm(o)){for(ot in u)u.hasOwnProperty(ot)&&(d=u[ot],d!==void 0&&r_(a,o,ot,d,u,void 0));return}}for(R in u)u.hasOwnProperty(R)&&(d=u[R],d!=null&&Oe(a,o,R,d,u,null))}var fw={};function kw(a,o,u,d){switch(o){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var m=null,k=null,C=null,R=null,G=null,tt=null,ot=null;for(nt in u){var dt=u[nt];if(u.hasOwnProperty(nt)&&dt!=null)switch(nt){case"checked":break;case"value":break;case"defaultValue":G=dt;default:d.hasOwnProperty(nt)||Oe(a,o,nt,null,d,dt)}}for(var J in d){var nt=d[J];if(dt=u[J],d.hasOwnProperty(J)&&(nt!=null||dt!=null))switch(J){case"type":nt!==dt&&(we=!0),k=nt;break;case"name":nt!==dt&&(we=!0),m=nt;break;case"checked":nt!==dt&&(we=!0),tt=nt;break;case"defaultChecked":nt!==dt&&(we=!0),ot=nt;break;case"value":nt!==dt&&(we=!0),C=nt;break;case"defaultValue":nt!==dt&&(we=!0),R=nt;break;case"children":case"dangerouslySetInnerHTML":if(nt!=null)throw Error(s(137,o));break;default:nt!==dt&&Oe(a,o,J,nt,d,dt)}}rm(a,C,R,G,tt,ot,k,m);return;case"select":nt=C=R=J=null;for(k in u)if(G=u[k],u.hasOwnProperty(k)&&G!=null)switch(k){case"value":break;case"multiple":nt=G;default:d.hasOwnProperty(k)||Oe(a,o,k,null,d,G)}for(m in d)if(k=d[m],G=u[m],d.hasOwnProperty(m)&&(k!=null||G!=null))switch(m){case"value":k!==G&&(we=!0),J=k;break;case"defaultValue":k!==G&&(we=!0),R=k;break;case"multiple":k!==G&&(we=!0),C=k;default:k!==G&&Oe(a,o,m,k,d,G)}o=R,u=C,d=nt,J!=null?nr(a,!!u,J,!1):!!d!=!!u&&(o!=null?nr(a,!!u,o,!0):nr(a,!!u,u?[]:"",!1));return;case"textarea":nt=J=null;for(R in u)if(m=u[R],u.hasOwnProperty(R)&&m!=null&&!d.hasOwnProperty(R))switch(R){case"value":break;case"children":break;default:Oe(a,o,R,null,d,m)}for(C in d)if(m=d[C],k=u[C],d.hasOwnProperty(C)&&(m!=null||k!=null))switch(C){case"value":m!==k&&(we=!0),J=m;break;case"defaultValue":m!==k&&(we=!0),nt=m;break;case"children":break;case"dangerouslySetInnerHTML":if(m!=null)throw Error(s(91));break;default:m!==k&&Oe(a,o,C,m,d,k)}nv(a,J,nt);return;case"option":for(var xt in u)J=u[xt],u.hasOwnProperty(xt)&&J!=null&&!d.hasOwnProperty(xt)&&(xt==="selected"?a.selected=!1:Oe(a,o,xt,null,d,J));for(G in d)J=d[G],nt=u[G],d.hasOwnProperty(G)&&J!==nt&&(J!=null||nt!=null)&&(G==="selected"?(J!==nt&&(we=!0),a.selected=J&&typeof J!="function"&&typeof J!="symbol"):Oe(a,o,G,J,d,nt));return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var Lt in u)J=u[Lt],u.hasOwnProperty(Lt)&&J!=null&&!d.hasOwnProperty(Lt)&&Oe(a,o,Lt,null,d,J);for(tt in d)if(J=d[tt],nt=u[tt],d.hasOwnProperty(tt)&&J!==nt&&(J!=null||nt!=null))switch(tt){case"children":case"dangerouslySetInnerHTML":if(J!=null)throw Error(s(137,o));break;default:Oe(a,o,tt,J,d,nt)}return;default:if(lm(o)){for(var oe in u)J=u[oe],u.hasOwnProperty(oe)&&J!==void 0&&!d.hasOwnProperty(oe)&&r_(a,o,oe,void 0,d,J);for(ot in d)J=d[ot],nt=u[ot],!d.hasOwnProperty(ot)||J===nt||J===void 0&&nt===void 0||r_(a,o,ot,J,d,nt);return}}for(var Z in u)J=u[Z],u.hasOwnProperty(Z)&&J!=null&&!d.hasOwnProperty(Z)&&Oe(a,o,Z,null,d,J);for(dt in d)J=d[dt],nt=u[dt],!d.hasOwnProperty(dt)||J===nt||J==null&&nt==null||Oe(a,o,dt,J,d,nt)}function d3(a){switch(a){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function vw(){if(typeof performance.getEntriesByType=="function"){for(var a=0,o=0,u=performance.getEntriesByType("resource"),d=0;d<u.length;d++){var m=u[d],k=m.transferSize,C=m.initiatorType,R=m.duration;if(k&&R&&d3(C)){for(C=0,R=m.responseEnd,d+=1;d<u.length;d++){var G=u[d],tt=G.startTime;if(tt>R)break;var ot=G.transferSize,dt=G.initiatorType;ot&&d3(dt)&&(G=G.responseEnd,C+=ot*(G<R?1:(R-tt)/(G-tt)))}if(--d,o+=8*(k+C)/(m.duration/1e3),a++,10<a)break}}if(0<a)return o/a/1e6}return navigator.connection&&(a=navigator.connection.downlink,typeof a=="number")?a:5}var u_=null,l_=null;function hl(a){return a.nodeType===9?a:a.ownerDocument}function p3(a){switch(a){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function g3(a,o){if(a===0)switch(o){case"svg":return 1;case"math":return 2;default:return 0}return a===1&&o==="foreignObject"?0:a}function m3(a,o,u,d){return u=hl(u).createElement(a),u[Pe]=d,u[en]=o,Xn(u,a,o),ln(u),u}function c_(a,o){return a==="textarea"||a==="noscript"||typeof o.children=="string"||typeof o.children=="number"||typeof o.children=="bigint"||typeof o.dangerouslySetInnerHTML=="object"&&o.dangerouslySetInnerHTML!==null&&o.dangerouslySetInnerHTML.__html!=null}var d_=null;function yw(){var a=window.event;return a&&a.type==="popstate"?a===d_?!1:(d_=a,!0):(d_=null,!1)}var p_=typeof setTimeout=="function"?setTimeout:void 0,bw=typeof clearTimeout=="function"?clearTimeout:void 0,h3=typeof Promise=="function"?Promise:void 0,_3=typeof requestAnimationFrame=="function"?requestAnimationFrame:p_,xw=typeof queueMicrotask=="function"?queueMicrotask:typeof h3<"u"?function(a){return h3.resolve(null).then(a).catch(Aw)}:p_;function Aw(a){setTimeout(function(){throw a})}function $o(a){return a==="head"}function f3(a,o){var u=o,d=0;do{var m=u.nextSibling;if(a.removeChild(u),m&&m.nodeType===8)if(u=m.data,u==="/$"||u==="/&"){if(d===0){a.removeChild(m),$r(o);return}d--}else if(u==="$"||u==="$?"||u==="$~"||u==="$!"||u==="&")d++;else if(u==="html")y_(a.ownerDocument.documentElement);else if(u==="head"){u=a.ownerDocument.head,y_(u);for(var k=u.firstChild;k;){var C=k.nextSibling,R=k.nodeName;k[qt]||R==="SCRIPT"||R==="STYLE"||R==="LINK"&&k.rel.toLowerCase()==="stylesheet"||u.removeChild(k),k=C}}else u==="body"&&y_(a.ownerDocument.body);u=m}while(u);$r(o)}function k3(a,o){var u=a;a=0;do{var d=u.nextSibling;if(u.nodeType===1?o?(u._stashedDisplay=u.style.display,u.style.display="none"):(u.style.display=u._stashedDisplay||"",u.getAttribute("style")===""&&u.removeAttribute("style")):u.nodeType===3&&(o?(u._stashedText=u.nodeValue,u.nodeValue=""):u.nodeValue=u._stashedText||""),d&&d.nodeType===8)if(u=d.data,u==="/$"){if(a===0)break;a--}else u!=="$"&&u!=="$?"&&u!=="$~"&&u!=="$!"||a++;u=d}while(u)}function v3(a,o,u){if(o=CSS.escape(o)!==o?"r-"+btoa(o).replace(/=/g,""):o,a.style.viewTransitionName=o,u!=null&&(a.style.viewTransitionClass=u),u=getComputedStyle(a),u.display==="inline"){if(o=a.getClientRects(),o.length===1)var d=1;else for(var m=d=0;m<o.length;m++){var k=o[m];0<k.width&&0<k.height&&d++}d===1&&(a=a.style,a.display=o.length===1?"inline-block":"block",a.marginTop="-"+u.paddingTop,a.marginBottom="-"+u.paddingBottom)}}function y3(a,o){a=a.style,o=o.style;var u=o!=null?o.hasOwnProperty("viewTransitionName")?o.viewTransitionName:o.hasOwnProperty("view-transition-name")?o["view-transition-name"]:null:null;a.viewTransitionName=u==null||typeof u=="boolean"?"":(""+u).trim(),u=o!=null?o.hasOwnProperty("viewTransitionClass")?o.viewTransitionClass:o.hasOwnProperty("view-transition-class")?o["view-transition-class"]:null:null,a.viewTransitionClass=u==null||typeof u=="boolean"?"":(""+u).trim(),a.display==="inline-block"&&(o==null?a.display=a.margin="":(u=o.display,a.display=u==null||typeof u=="boolean"?"":u,u=o.margin,u!=null?a.margin=u:(u=o.hasOwnProperty("marginTop")?o.marginTop:o["margin-top"],a.marginTop=u==null||typeof u=="boolean"?"":u,o=o.hasOwnProperty("marginBottom")?o.marginBottom:o["margin-bottom"],a.marginBottom=o==null||typeof o=="boolean"?"":o)))}function Cw(a,o,u){return u=u.ownerDocument.defaultView,{rect:a,abs:o.position==="absolute"||o.position==="fixed",clip:o.clipPath!=="none"||o.overflow!=="visible"||o.filter!=="none"||o.mask!=="none"||o.mask!=="none"||o.borderRadius!=="0px",view:0<=a.bottom&&0<=a.right&&a.top<=u.innerHe
vendor: 10,895 bytes, line 9
9ight&&a.left<=u.innerWidth}}function g_(a){var o=a.getBoundingClientRect(),u=getComputedStyle(a);return Cw(o,u,a)}function Sw(a){return a.documentElement.clientHeight}function ww(a){this.addEventListener("load",a),this.addEventListener("error",a)}function Ew(a,o,u,d,m,k,C,R,G){var tt=o.nodeType===9?o:o.ownerDocument;try{var ot=tt.startViewTransition({update:function(){var J=tt.defaultView,nt=J.navigation&&J.navigation.transition,xt=tt.fonts.status;d();var Lt=[];if(xt==="loaded"&&(Sw(tt),tt.fonts.status==="loading"&&Lt.push(tt.fonts.ready)),xt=Lt.length,a!==null)for(var oe=a.suspenseyImages,Z=0,K=0;K<oe.length;K++){var et=oe[K];if(!et.complete){var ct=et.getBoundingClientRect();if(0<ct.bottom&&0<ct.right&&ct.top<J.innerHeight&&ct.left<J.innerWidth){if(Z+=G3(et),Z>sp){Lt.length=xt;break}et=new Promise(ww.bind(et)),Lt.push(et)}}}if(0<Lt.length)return J=Promise.race([Promise.all(Lt),new Promise(function(Rt){return setTimeout(Rt,500)})]).then(m,m),(nt?Promise.allSettled([nt.finished,J]):J).then(k,k);if(m(),nt)return nt.finished.then(k,k);k()},types:u});tt.__reactViewTransition=ot;var dt=[];return ot.ready.then(function(){for(var J=tt.documentElement.getAnimations({subtree:!0}),nt=0;nt<J.length;nt++){var xt=J[nt],Lt=xt.effect,oe=Lt.pseudoElement;if(oe!=null&&oe.startsWith("::view-transition")){dt.push(xt),xt=Lt.getKeyframes();for(var Z=oe=void 0,K=!0,et=0;et<xt.length;et++){var ct=xt[et],Rt=ct.width;if(oe===void 0)oe=Rt;else if(oe!==Rt){K=!1;break}if(Rt=ct.height,Z===void 0)Z=Rt;else if(Z!==Rt){K=!1;break}delete ct.width,delete ct.height,ct.transform==="none"&&delete ct.transform}K&&oe!==void 0&&Z!==void 0&&(Lt.setKeyframes(xt),K=getComputedStyle(Lt.target,Lt.pseudoElement),K.width!==oe||K.height!==Z)&&(K=xt[0],K.width=oe,K.height=Z,K=xt[xt.length-1],K.width=oe,K.height=Z,Lt.setKeyframes(xt))}}C()},function(J){tt.__reactViewTransition===ot&&(tt.__reactViewTransition=null);try{typeof J=="object"&&J!==null&&J.name==="InvalidStateError"&&(J.message==="View transition was skipped because document visibility state is hidden."||J.message==="Skipping view transition because document visibility state has become hidden."||J.message==="Skipping view transition because viewport size changed."||J.message==="Transition was aborted because of invalid state")&&(J=null),J!==null&&G(J)}finally{d(),m(),C()}}),ot.finished.finally(function(){for(var J=0;J<dt.length;J++)dt[J].cancel();tt.__reactViewTransition===ot&&(tt.__reactViewTransition=null),R()}),ot}catch{return d(),m(),C(),null}}function Si(a,o){this._scope=document.documentElement,this._selector="::view-transition-"+a+"("+o+")"}Si.prototype.animate=function(a,o){return o=typeof o=="number"?{duration:o}:N({},o),o.pseudoElement=this._selector,this._scope.animate(a,o)},Si.prototype.getAnimations=function(){for(var a=this._scope,o=this._selector,u=a.getAnimations({subtree:!0}),d=[],m=0;m<u.length;m++){var k=u[m].effect;k!==null&&k.target===a&&k.pseudoElement===o&&d.push(u[m])}return d},Si.prototype.getComputedStyle=function(){return getComputedStyle(this._scope,this._selector)};function b3(a){return{name:a,group:new Si("group",a),imagePair:new Si("image-pair",a),old:new Si("old",a),new:new Si("new",a)}}function Ba(a){this._fragmentFiber=a,this._observers=this._eventListeners=null}Ba.prototype.addEventListener=function(a,o,u){var d=null,m=null;if(!(u!=null&&typeof u!="boolean"&&(d=u.signal||null,d!==null&&d.aborted))){this._eventListeners===null&&(this._eventListeners=[]);var k=this._eventListeners;if(A3(k,a,o,u)===-1){var C=this,R=o;u!=null&&typeof u!="boolean"&&u.once===!0&&(R=function(G){C.removeEventListener(a,o,u),typeof o=="function"?o.call(this,G):o.handleEvent(G)}),d!==null&&(m=C.removeEventListener.bind(C,a,o,u),d.addEventListener("abort",m,{once:!0}),m=d.removeEventListener.bind(d,"abort",m)),d=Mr(u),k.push({type:a,listener:o,optionsOrUseCapture:u,attachedListener:R,cleanup:m}),h(this._fragmentFiber.child,!1,Iw,a,R,d)}this._eventListeners=k}};function Iw(a,o,u,d){return w(a).addEventListener(o,u,d),!1}Ba.prototype.removeEventListener=function(a,o,u){var d=this._eventListeners;if(d!==null&&(o=A3(d,a,o,u),o!==-1)){var m=d[o];u=m.attachedListener;var k=m.cleanup;m=Mr(m.optionsOrUseCapture),h(this._fragmentFiber.child,!1,Nw,a,u,m),d.splice(o,1),k!==null&&k()}};function Nw(a,o,u,d){return w(a).removeEventListener(o,u,d),!1}function Mr(a){return a!=null&&typeof a!="boolean"&&(a.once===!0||a.signal instanceof AbortSignal)?{capture:a.capture,passive:a.passive}:a}function x3(a){return a==null?"c=0":typeof a=="boolean"?"c="+(a?"1":"0"):"c="+(a.capture?"1":"0")}function A3(a,o,u,d){if(a.length===0)return-1;d=x3(d);for(var m=0;m<a.length;m++){var k=a[m];if(k.type===o&&k.listener===u&&x3(k.optionsOrUseCapture)===d)return m}return-1}Ba.prototype.dispatchEvent=function(a){var o=v(this._fragmentFiber);if(o===null)return!0;o=w(o);var u=this._eventListeners;if(u!==null&&0<u.length||!a.bubbles){var d=o.nodeType===9?o.createComment(""):document.createTextNode("");if(u)for(var m=0;m<u.length;m++){var k=u[m];d.addEventListener(k.type,k.attachedListener,Mr(k.optionsOrUseCapture))}if(o.appendChild(d),a=d.dispatchEvent(a),u)for(m=0;m<u.length;m++)k=u[m],d.removeEventListener(k.type,k.attachedListener,Mr(k.optionsOrUseCapture));return o.removeChild(d),a}return o.dispatchEvent(a)},Ba.prototype.focus=function(a){h(this._fragmentFiber.child,!0,C3,a,void 0,void 0)};function C3(a,o){return a.tag===6?!1:(a=w(a),Gw(a,o))}Ba.prototype.focusLast=function(a){var o=[];h(this._fragmentFiber.child,!0,m_,o,void 0,void 0);for(var u=o.length-1;0<=u&&!C3(o[u],a);u--);};function m_(a,o){return o.push(a),!1}Ba.prototype.blur=function(){var a=v(this._fragmentFiber);a!==null&&(a=w(a),a=hl(a).activeElement,a!==null&&h(this._fragmentFiber.child,!1,Rw,a,void 0,void 0))};function Rw(a,o){return a.tag===6?!1:(a=w(a),a===o||a.contains(o)?(o.blur(),!0):!1)}Ba.prototype.observeUsing=function(a){this._observers===null&&(this._observers=new Set),this._observers.add(a),h(this._fragmentFiber.child,!1,Tw,a,void 0,void 0)};function Tw(a,o){return a.tag===6||(a=w(a),o.observe(a)),!1}Ba.prototype.unobserveUsing=function(a){var o=this._observers;if(o!==null&&o.has(a)){o.delete(a),h(this._fragmentFiber.child,!1,jw,a,void 0,void 0);for(var u=o=0;u<vs.length;u++){var d=vs[u];d.fragmentInstance===this&&d.observer===a?a.unobserve(d.instance):vs[o++]=d}vs.length=o}};function jw(a,o){return a.tag===6||(a=w(a),o.unobserve(a)),!1}var vs=[],h_=!1;function Pw(a,o,u){vs.push({fragmentInstance:a,observer:o,instance:u}),h_||(h_=!0,Hw(function(){h_=!1;var d=vs;vs=[];for(var m=0;m<d.length;m++){var k=d[m];k.observer.unobserve(k.instance)}}))}Ba.prototype.getClientRects=function(){var a=[];return h(this._fragmentFiber.child,!1,Mw,a,void 0,void 0),a};function Mw(a,o){if(a.tag===6){a=a.stateNode;var u=a.ownerDocument.createRange();u.selectNodeContents(a),o.push.apply(o,u.getClientRects())}else a=w(a),o.push.apply(o,a.getClientRects());return!1}Ba.prototype.getRootNode=function(a){var o=v(this._fragmentFiber);return o===null?this:w(o).getRootNode(a)},Ba.prototype.compareDocumentPosition=function(a){var o=v(this._fragmentFiber);if(o===null)return Node.DOCUMENT_POSITION_DISCONNECTED;var u=[];h(this._fragmentFiber.child,!1,m_,u,void 0,void 0);var d=w(o);if(u.length===0){if(u=d,b(this._fragmentFiber)){t:{for(o=this._fragmentFiber.return;o!==null;){if(o.tag===4){o=o.stateNode.containerInfo;break t}if(o.tag===3||o.tag===5||o.tag===27)break;o=o.return}o=null}o!=null&&(u=o)}o=this._fragmentFiber;var m=d=u.compareDocumentPosition(a);return u===a?m=Node.DOCUMENT_POSITION_CONTAINS:d&Node.DOCUMENT_POSITION_CONTAINED_BY&&(u=S(o)[1],u===null?m=Node.DOCUMENT_POSITION_PRECEDING:(a=w(u).compareDocumentPosition(a),m=a===0||a&Node.DOCUMENT_POSITION_FOLLOWING?Node.DOCUMENT_POSITION_FOLLOWING:Node.DOCUMENT_POSITION_PRECEDING)),m|=Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC}o=w(u[0]),m=w(u[u.length-1]);var k=b(this._fragmentFiber)?o.parentElement:d;if(k==null)return Node.DOCUMENT_POSITION_DISCONNECTED;d=k.compareDocumentPosition(o)&Node.DOCUMENT_POSITION_CONTAINED_BY,k=k.compareDocumentPosition(m)&Node.DOCUMENT_POSITION_CONTAINED_BY;var C=o.compareDocumentPosition(a),R=m.compareDocumentPosition(a),G=C&Node.DOCUMENT_POSITION_CONTAINED_BY||R&Node.DOCUMENT_POSITION_CONTAINED_BY;return R=d&&k&&C&Node.DOCUMENT_POSITION_FOLLOWING&&R&Node.DOCUMENT_POSITION_PRECEDING,o=d&&o===a||k&&m===a||G||R?Node.DOCUMENT_POSITION_CONTAINED_BY:!d&&o===a||!k&&m===a?Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC:C,o&Node.DOCUMENT_POSITION_DISCONNECTED||o&Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC||Lw(o,this._fragmentFiber,u[0],u[u.length-1],a)?o:Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC};function Lw(a,o,u,d,m){var k=Ta(m);if(a&Node.DOCUMENT_POSITION_CONTAINED_BY){if(u=!!k)t:{for(;k!==null;){if(k.tag===7&&(k===o||k.alternate===o)){u=!0;break t}k=k.return}u=!1}return u}if(a&Node.DOCUMENT_POSITION_CONTAINS){if(k===null)return k=m.ownerDocument,m===k||m===k.documentElement||m===k.body;t:{for(k=o,o=v(o);k!==null;){if(!(k.tag!==5&&k.tag!==3&&k.tag!==27||k!==o&&k.alternate!==o)){k=!0;break t}k=k.return}k=!1}return k}return a&Node.DOCUMENT_POSITION_PRECEDING?((o=!!k)&&!(o=k===u)&&(o=P(u,k,T),o===null?o=!1:(h(o,!0,I,k,u),k=A,A=null,o=k!==null)),o):a&Node.DOCUMENT_POSITION_FOLLOWING?((o=!!k)&&!(o=k===d)&&(o=P(d,k,T),o===null?o=!1:(h(o,!0,j,k,d),k=A,E=A=null,o=k!==null)),o):!1}function S3(a,o){var u=a.ownerDocument.createRange();u.selectNodeContents(a),a=u.getBoundingClientRect(),window.scrollTo(window.scrollX+a.left,o?window.scrollY+a.top:window.scrollY+a.bottom-window.innerHeight)}Ba.prototype.scrollIntoView=function(a){if(typeof a=="object")throw Error(s(566));var o=[];h(this._fragmentFiber.child,!1,m_,o,void 0,void 0);var u=a!==!1;if(o.length===0){var d=S(this._fragmentFiber);if(d=u?d[1]||d[0]||v(this._fragmentFiber):d[0]||d[1],d===null)return;if(d.tag===6){a=w(d),S3(a,u);return}if(d=w(d),d.nodeType!==9){if(d.nodeType===11){u="host"in d?d.host:null,u!==null&&u.scrollIntoView(a);return}d.scrollIntoView(a)}}for(d=u?o.length-1:0;d!==(u?-1:o.length);){var m=o[d];m.tag===6?(m=w(m),S3(m,u)):w(m).scrollIntoView(a),d+=u?-1:1}};function Ow(a,o){return a=w(a),w3(a,o),!1}function w3(a,o){a.reactFragments==null&&(a.reactFragments=new Set),a.reactFragments.add(o)}function E3(a,o){var u=o._eventListeners;if(u!==null)for(var d=0;d<u.length;d++){var m=u[d];a.addEventListener(m.type,m.attachedListener,Mr(m.optionsOrUseCapture))}a.nodeType!==3&&(u=o._observers,u!==null&&u.forEach(function(k){for(var C=0,R=0;R<vs.length;R++){var G=vs[R];(G.fragmentInstance!==o||G.observer!==k||G.instance!==a)&&(vs[C++]=G)}vs.length=C,k.observe(a)}),w3(a,o))}function Dw(a,o){var u=o._eventListeners;if(u!==null)for(var d=0;d<u.length;d++){var m=u[d];a.removeEventListener(m.type,m.attachedListener,Mr(m.optionsOrUseCapture))}a.nodeType!==3&&(u=o._observers,u!==null&&u.forEach(function(k){typeof k.rootMargin=="str
9ing"?Pw(o,k,a):k.unobserve(a)}),a.reactFragments!=null&&a.reactFragments.delete(o))}function __(a){var o=a.firstChild;for(o&&o.nodeType===10&&(o=o.nextSibling);o;){var u=o;switch(o=o.nextSibling,u.nodeName){case"HTML":case"HEAD":case"BODY":__(u),un(u);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(u.rel.toLowerCase()==="stylesheet")continue}a.removeChild(u)}}function zw(a,o,u,d){for(;a.nodeType===1;){var m=u;if(a.nodeName.toLowerCase()!==o.toLowerCase()){if(!d&&(a.nodeName!=="INPUT"||a.type!=="hidden"))break}else if(d){if(!a[qt])switch(o){case"meta":if(!a.hasAttribute("itemprop"))break;return a;case"link":if(k=a.getAttribute("rel"),k==="stylesheet"&&a.hasAttribute("data-precedence"))break;if(k!==m.rel||a.getAttribute("href")!==(m.href==null||m.href===""?null:m.href)||a.getAttribute("crossorigin")!==(m.crossOrigin==null?null:m.crossOrigin)||a.getAttribute("title")!==(m.title==null?null:m.title))break;return a;case"style":if(a.hasAttribute("data-precedence"))break;return a;case"script":if(k=a.getAttribute("src"),(k!==(m.src==null?null:m.src)||a.getAttribute("type")!==(m.type==null?null:m.type)||a.getAttribute("crossorigin")!==(m.crossOrigin==null?null:m.crossOrigin))&&k&&a.hasAttribute("async")&&!a.hasAttribute("itemprop"))break;return a;default:return a}}else if(o==="input"&&a.type==="hidden"){var k=m.name==null?null:""+m.name;if(m.type==="hidden"&&a.getAttribute("name")===k)return a}else return a;if(a=ns(a.nextSibling),a===null)break}return null}function Bw(a,o,u){if(o==="")return null;for(;a.nodeType!==3;)if((a.nodeType!==1||a.nodeName!=="INPUT"||a.type!=="hidden")&&!u||(a=ns(a.nextSibling),a===null))return null;return a}function I3(a,o){for(;a.nodeType!==8;)if((a.nodeType!==1||a.nodeName!=="INPUT"||a.type!=="hidden")&&!o||(a=ns(a.nextSibling),a===null))return null;return a}function f_(a){return a.data==="$?"||a.data==="$~"}function k_(a){return a.data==="$!"||a.data==="$?"&&a.ownerDocument.readyState!=="loading"}function $w(a,o){var u=a.ownerDocument;if(a.data==="$~")a._reactRetry=o;else if(a.data!=="$?"||u.readyState!=="loading")o();else{var d=function(){o(),u.removeEventListener("DOMContentLoaded",d)};u.addEventListener("DOMContentLoaded",d),a._reactRetry=d}}function ns(a){for(;a!=null;a=a.nextSibling){var o=a.nodeType;if(o===1||o===3)break;if(o===8){if(o=a.data,o==="$"||o==="$!"||o==="$?"||o==="$~"||o==="&"||o==="F!"||o==="F")break;if(o==="/$"||o==="/&")return null}}return a}var v_=null;function N3(a){a=a.nextSibling;for(var o=0;a;){if(a.nodeType===8){var u=a.data;if(u==="/$"||u==="/&"){if(o===0)return ns(a.nextSibling);o--}else u!=="$"&&u!=="$!"&&u!=="$?"&&u!=="$~"&&u!=="&"||o++}a=a.nextSibling}return null}function R3(a){a=a.previousSibling;for(var o=0;a;){if(a.nodeType===8){var u=a.data;if(u==="$"||u==="$!"||u==="$?"||u==="$~"||u==="&"){if(o===0)return a;o--}else u!=="/$"&&u!=="/&"||o++}a=a.previousSibling}return null}function Gw(a,o){function u(){d=!0}if(a.ownerDocument.activeElement===a)return!0;var d=!1;try{a.ownerDocument.addEventListener("focus",u,!0),(a.focus||HTMLElement.prototype.focus).call(a,o)}finally{a.ownerDocument.removeEventListener("focus",u,!0)}return d}function Hw(a){_3(function(){_3(function(o){return a(o)})})}function T3(a,o,u){switch(o=hl(u),a){case"html":if(a=o.documentElement,!a)throw Error(s(452));return a;case"head":if(a=o.head,!a)throw Error(s(453));return a;case"body":if(a=o.body,!a)throw Error(s(454));return a;default:throw Error(s(451))}}function j3(a,o,u){for(var d in u){var m=u[d];u.hasOwnProperty(d)&&m!=null&&Oe(a,o,d,null,fw,m)}u.dangerouslySetInnerHTML!=null&&(a.textContent=""),a.onclick===js&&(a.onclick=null),un(a)}function y_(a){for(var o=a.attributes;o.length;)a.removeAttributeNode(o[0]);un(a)}var as=new Map,P3=new Set;function _l(a){if(typeof a.getRootNode=="function"){var o=a.getRootNode();if(o.nodeType===9||o.nodeType===11)return o}return a.nodeType===9?a:a.ownerDocument}var mo=mt.d;mt.d={f:Fw,r:Uw,D:Vw,C:qw,L:Kw,m:Ww,X:Yw,S:Xw,M:Qw};function Fw(){var a=mo.f(),o=Xd();return a||o}function Uw(a){var o=Wa(a);o!==null&&o.tag===5&&o.type==="form"?L2(o):mo.r(a)}var Lr=typeof document>"u"?null:document;function M3(a,o,u){var d=Lr;
vendor: 11,283 bytes, line 9
9if(d&&typeof o=="string"&&o){var m=Xa(o);m='link[rel="'+a+'"][href="'+m+'"]',typeof u=="string"&&(m+='[crossorigin="'+u+'"]'),P3.has(m)||(P3.add(m),a={rel:a,crossOrigin:u,href:o},d.querySelector(m)===null&&(o=d.createElement("link"),Xn(o,"link",a),ln(o),d.head.appendChild(o)))}}function Vw(a){mo.D(a),M3("dns-prefetch",a,null)}function qw(a,o){mo.C(a,o),M3("preconnect",a,o)}function Kw(a,o,u){mo.L(a,o,u);var d=Lr;if(d&&a&&o){var m='link[rel="preload"][as="'+Xa(o)+'"]';o==="image"&&u&&u.imageSrcSet?(m+='[imagesrcset="'+Xa(u.imageSrcSet)+'"]',typeof u.imageSizes=="string"&&(m+='[imagesizes="'+Xa(u.imageSizes)+'"]')):m+='[href="'+Xa(a)+'"]';var k=m;switch(o){case"style":k=Or(a);break;case"script":k=Dr(a)}if(!(as.has(k)||(a=N({rel:"preload",href:o==="image"&&u&&u.imageSrcSet?void 0:a,as:o},u),as.set(k,a),d.querySelector(m)!==null||o==="style"&&d.querySelector(fl(k))||o==="script"&&d.querySelector(kl(k))))){var C=d.createElement("link");Xn(C,"link",a),o==="style"&&(C[hn]=!0,C.onload=C.onerror=function(){tr(C)}),ln(C),d.head.appendChild(C)}}}function Ww(a,o){mo.m(a,o);var u=Lr;if(u&&a){var d=o&&typeof o.as=="string"?o.as:"script",m='link[rel="modulepreload"][as="'+Xa(d)+'"][href="'+Xa(a)+'"]',k=m;switch(d){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":k=Dr(a)}if(!as.has(k)&&(a=N({rel:"modulepreload",href:a},o),as.set(k,a),u.querySelector(m)===null)){switch(d){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(u.querySelector(kl(k)))return}d=u.createElement("link"),Xn(d,"link",a),ln(d),u.head.appendChild(d)}}}function Xw(a,o,u){mo.S(a,o,u);var d=Lr;if(d&&a){var m=Zs(d).hoistableStyles,k=Or(a);o=o||"default";var C=m.get(k);if(!C){var R={loading:0,preload:null};if(C=d.querySelector(fl(k)))R.loading=5;else{a=N({rel:"stylesheet",href:a,"data-precedence":o},u),(u=as.get(k))&&b_(a,u);var G=C=d.createElement("link");ln(G),Xn(G,"link",a),G._p=new Promise(function(tt,ot){G.onload=tt,G.onerror=ot}),G.addEventListener("load",function(){R.loading|=1}),G.addEventListener("error",function(){R.loading|=2}),R.loading|=4,np(C,o,d)}C={type:"stylesheet",instance:C,count:1,state:R},m.set(k,C)}}}function Yw(a,o){mo.X(a,o);var u=Lr;if(u&&a){var d=Zs(u).hoistableScripts,m=Dr(a),k=d.get(m);k||(k=u.querySelector(kl(m)),k||(a=N({src:a,async:!0},o),(o=as.get(m))&&x_(a,o),k=u.createElement("script"),ln(k),Xn(k,"link",a),u.head.appendChild(k)),k={type:"script",instance:k,count:1,state:null},d.set(m,k))}}function Qw(a,o){mo.M(a,o);var u=Lr;if(u&&a){var d=Zs(u).hoistableScripts,m=Dr(a),k=d.get(m);k||(k=u.querySelector(kl(m)),k||(a=N({src:a,async:!0,type:"module"},o),(o=as.get(m))&&x_(a,o),k=u.createElement("script"),ln(k),Xn(k,"link",a),u.head.appendChild(k)),k={type:"script",instance:k,count:1,state:null},d.set(m,k))}}function L3(a,o,u,d){var m=(m=Xt.current)?_l(m):null;if(!m)throw Error(s(446));switch(a){case"meta":case"title":return null;case"style":return typeof u.precedence=="string"&&typeof u.href=="string"?(u=Or(u.href),o=Zs(m).hoistableStyles,d=o.get(u),d||(d={type:"style",instance:null,count:0,state:null},o.set(u,d)),d):{type:"void",instance:null,count:0,state:null};case"link":if(u.rel==="stylesheet"&&typeof u.href=="string"&&typeof u.precedence=="string"){a=Or(u.href);var k=Zs(m).hoistableStyles,C=k.get(a);if(C||(m=m.ownerDocument||m,C={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},k.set(a,C),(k=m.querySelector(fl(a)))?k._p||(C.instance=k,C.state.loading=5):(k=as.get(a),k||(k={rel:"preload",as:"style",href:u.href,crossOrigin:u.crossOrigin,integrity:u.integrity,media:u.media,hrefLang:u.hrefLang,referrerPolicy:u.referrerPolicy},as.set(a,k)),Jw(m,a,k,C.state))),o&&d===null)throw Error(s(528,""));return C}if(o&&d!==null)throw Error(s(529,""));return null;case"script":return o=u.async,u=u.src,typeof u=="string"&&o&&typeof o!="function"&&typeof o!="symbol"?(u=Dr(u),o=Zs(m).hoistableScripts,d=o.get(u),d||(d={type:"script",instance:null,count:0,state:null},o.set(u,d)),d):{type:"void",instance:null,count:0,state:null};default:throw Error(s(444,a))}}function Or(a){return'href="'+Xa(a)+'"'}function fl(a){return'link[rel="stylesheet"]['+a+"]"}function O3(a){return N({},a,{"data-precedence":a.precedence,precedence:null})}function Jw(a,o,u,d){if(o=a.querySelector('link[rel="preload"][as="style"]['+o+"]")){if(o[hn]!==!0){d.loading=1;return}}else o=a.createElement("link"),o[hn]=!0,o.onload=o.onerror=tr.bind(null,o),Xn(o,"link",u),ln(o),a.head.appendChild(o);d.preload=o,o.addEventListener("load",function(){return d.loading|=1}),o.addEventListener("error",function(){return d.loading|=2})}function Dr(a){return'[src="'+Xa(a)+'"]'}function kl(a){return"script[async]"+a}function D3(a,o,u){if(o.count++,o.instance===null)switch(o.type){case"style":var d=a.querySelector('style[data-href~="'+Xa(u.href)+'"]');if(d)return o.instance=d,ln(d),d;var m=N({},u,{"data-href":u.href,"data-precedence":u.precedence,href:null,precedence:null});return d=(a.ownerDocument||a).createElement("style"),ln(d),Xn(d,"style",m),np(d,u.precedence,a),o.instance=d;case"stylesheet":m=Or(u.href);var k=a.querySelector(fl(m));if(k)return o.state.loading|=4,o.instance=k,ln(k),k;d=O3(u),(m=as.get(m))&&b_(d,m),k=(a.ownerDocument||a).createElement("link"),ln(k);var C=k;return C._p=new Promise(function(R,G){C.onload=R,C.onerror=G}),Xn(k,"link",d),o.state.loading|=4,np(k,u.precedence,a),o.instance=k;case"script":return k=Dr(u.src),(m=a.querySelector(kl(k)))?(o.instance=m,ln(m),m):(d=u,(m=as.get(k))&&(d=N({},u),x_(d,m)),a=a.ownerDocument||a,m=a.createElement("script"),ln(m),Xn(m,"link",d),a.head.appendChild(m),o.instance=m);case"void":return null;default:throw Error(s(443,o.type))}else o.type==="stylesheet"&&(o.state.loading&4)===0&&(d=o.instance,o.state.loading|=4,np(d,u.precedence,a));return o.instance}function np(a,o,u){for(var d=u.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),m=d.length?d[d.length-1]:null,k=m,C=0;C<d.length;C++){var R=d[C];if(R.dataset.precedence===o)k=R;else if(k!==m)break}k?k.parentNode.insertBefore(a,k.nextSibling):(o=u.nodeType===9?u.head:u,o.insertBefore(a,o.firstChild))}function b_(a,o){a.crossOrigin==null&&(a.crossOrigin=o.crossOrigin),a.referrerPolicy==null&&(a.referrerPolicy=o.referrerPolicy),a.title==null&&(a.title=o.title)}function x_(a,o){a.crossOrigin==null&&(a.crossOrigin=o.crossOrigin),a.referrerPolicy==null&&(a.referrerPolicy=o.referrerPolicy),a.integrity==null&&(a.integrity=o.integrity)}var ap=null;function z3(a,o,u){if(ap===null){var d=new Map,m=ap=new Map;m.set(u,d)}else m=ap,d=m.get(u),d||(d=new Map,m.set(u,d));if(d.has(a))return d;for(d.set(a,null),u=u.getElementsByTagName(a),m=0;m<u.length;m++){var k=u[m];if(!(k[qt]||k[Pe]||a==="link"&&k.getAttribute("rel")==="stylesheet")&&k.namespaceURI!=="http://www.w3.org/2000/svg"){var C=k.getAttribute(o)||"";C=a+C;var R=d.get(C);R?R.push(k):d.set(C,[k])}}return d}function A_(a,o,u){a=a.ownerDocument||a,a.head.insertBefore(u,o==="title"?a.querySelector("head > title"):null)}function Zw(a,o,u){if(u===1||o.itemProp!=null)return!1;switch(a){case"meta":case"title":return!0;case"style":if(typeof o.precedence!="string"||typeof o.href!="string"||o.href==="")break;return!0;case"link":if(typeof o.rel!="string"||typeof o.href!="string"||o.href===""||o.onLoad||o.onError)break;return o.rel==="stylesheet"?(a=o.disabled,typeof o.precedence=="string"&&a==null):!0;case"script":if(o.async&&typeof o.async!="function"&&typeof o.async!="symbol"&&!o.onLoad&&!o.onError&&o.src&&typeof o.src=="string")return!0}return!1}function B3(a,o){return a==="img"&&o.src!=null&&o.src!==""&&o.onLoad==null&&o.loading!=="lazy"}function $3(a){return!(a.type==="stylesheet"&&(a.state.loading&3)===0)}function G3(a){return(a.width||100)*(a.height||100)*(typeof devicePixelRatio=="number"?devicePixelRatio:1)*.25}function H3(a,o){typeof o.decode=="function"&&(a.imgCount++,o.complete||(a.imgBytes+=G3(o),a.suspenseyImages.push(o)),a=n8.bind(a),o.decode().then(a,a))}function t8(a,o,u,d){if(u.type==="stylesheet"&&(typeof d.media!="string"||matchMedia(d.media).matches!==!1)&&(u.state.loading&4)===0){if(u.instance===null){var m=Or(d.href),k=o.querySelector(fl(m));if(k){o=k._p,o!==null&&typeof o=="object"&&typeof o.then=="function"&&(a.count++,a=vl.bind(a),o.then(a,a)),u.state.loading|=4,u.instance=k,ln(k);return}k=o.ownerDocument||o,d=O3(d),(m=as.get(m))&&b_(d,m),k=k.createElement("link"),ln(k);var C=k;C._p=new Promise(function(R,G){C.onload=R,C.onerror=G}),Xn(k,"link",d),u.instance=k}a.stylesheets===null&&(a.stylesheets=new Map),a.stylesheets.set(u,o),(o=u.state.preload)&&(u.state.loading&3)===0&&(a.count++,u=vl.bind(a),o.addEventListener("load",u),o.addEventListener("error",u))}}var sp=0;function e8(a,o){return a.stylesheets&&a.count===0&&ip(a,a.stylesheets),0<a.count||0<a.imgCount?function(u){var d=setTimeout(function(){if(a.stylesheets&&ip(a,a.stylesheets),a.unsuspend){var k=a.unsuspend;a.unsuspend=null,k()}},6e4+o);0<a.imgBytes&&sp===0&&(sp=62500*vw());var m=setTimeout(function(){if(a.waitingForImages=!1,a.count===0&&(a.stylesheets&&ip(a,a.stylesheets),a.unsuspend)){var k=a.unsuspend;a.unsuspend=null,k()}},(a.imgBytes>sp?50:800)+o);return a.unsuspend=u,function(){a.unsuspend=null,clearTimeout(d),clearTimeout(m)}}:null}function F3(a){if(a.count===0&&(a.imgCount===0||!a.waitingForImages)){if(a.stylesheets)ip(a,a.stylesheets);else if(a.unsuspend){var o=a.unsuspend;a.unsuspend=null,o()}}}function vl(){this.count--,F3(this)}function n8(){this.imgCount--,F3(this)}var op=null;function ip(a,o){a.stylesheets=null,a.unsuspend!==null&&(a.count++,op=new Map,o.forEach(a8,a),op=null,vl.call(a))}function a8(a,o){if(!(o.state.loading&4)){var u=op.get(a);if(u)var d=u.get(null);else{u=new Map,op.set(a,u);for(var m=a.querySelectorAll("link[data-precedence],style[data-precedence]"),k=0;k<m.length;k++){var C=m[k];(C.nodeName==="LINK"||C.getAttribute("media")!=="not all")&&(u.set(C.dataset.precedence,C),d=C)}d&&u.set(null,d)}m=o.instance,C=m.getAttribute("data-precedence"),k=u.get(C)||d,k===d&&u.set(null,m),u.set(C,m),this.count++,d=vl.bind(this),m.addEventListener("load",d),m.addEventListener("error",d),k?k.parentNode.insertBefore(m,k.nextSibling):(a=a.nodeType===9?a.head:a,a.insertBefore(m,a.firstChild)),o.state.loading|=4}}var zr={$$typeof:V,Provider:null,Consumer:null,_currentValue:wt,_currentValue2:wt,_threadCount:0};function s8(a,o,u,d,m,k,C,R,G){this.tag=1,this.containerInfo=a,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=ie(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ie(0),this.hiddenUpdates=ie(null),this.identifierPrefix=d,this.onUncaughtError=m,this.onCaughtError=k,this.onRecoverableError=C,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=G,this.transitionTypes=null,this.incompleteTransitions=new Map}function U3(a,o,u,d,m,k,C,R,G,tt,ot,dt){return a=new s8(a,o,u,C,G,tt,ot,dt,R),o=1,k===!0&&(o|=24),k=ka(3,null,null,o),a.current=k,k.stateNode=a,o=zm(
vendor: 7,440 bytes, line 9
9),o.refCount++,a.pooledCache=o,o.refCount++,k.memoizedState={element:d,isDehydrated:u,cache:o},Hm(k),a}function V3(a){return a?(a=cr,a):cr}function q3(a,o,u,d,m,k){m=V3(m),d.context===null?d.context=m:d.pendingContext=m,d=Io(o),d.payload={element:u},k=k===void 0?null:k,k!==null&&(d.callback=k),u=No(a,d,o),u!==null&&(xa(u,a,o),Yu(u,a,o))}function K3(a,o){if(a=a.memoizedState,a!==null&&a.dehydrated!==null){var u=a.retryLane;a.retryLane=u!==0&&u<o?u:o}}function C_(a,o){K3(a,o),(a=a.alternate)&&K3(a,o)}function W3(a){if(a.tag===13||a.tag===31){var o=ui(a,67108864);o!==null&&xa(o,a,67108864),C_(a,67108864)}}function X3(a){if(a.tag===13||a.tag===31){var o=za();o=ze(o);var u=ui(a,o);u!==null&&xa(u,a,o),C_(a,o)}}var Br=!0;function o8(a,o,u,d){var m=ft.T;ft.T=null;var k=mt.p;try{mt.p=2,S_(a,o,u,d)}finally{mt.p=k,ft.T=m}}function i8(a,o,u,d){var m=ft.T;ft.T=null;var k=mt.p;try{mt.p=8,S_(a,o,u,d)}finally{mt.p=k,ft.T=m}}function S_(a,o,u,d){if(Br){var m=w_(d);if(m===null)i_(a,o,d,rp,u),Q3(a,d);else if(u8(m,a,o,u,d))d.stopPropagation();else if(Q3(a,d),o&4&&-1<r8.indexOf(a)){for(;m!==null;){var k=Wa(m);if(k!==null)switch(k.tag){case 3:if(k=k.stateNode,k.current.memoizedState.isDehydrated){var C=Sn(k.pendingLanes);if(C!==0){var R=k;for(R.pendingLanes|=2,R.entangledLanes|=2;C;){var G=1<<31-Mt(C);R.entanglements[1]|=G,C&=~G}Hs(k),(Ee&6)===0&&(qd=ye()+500,pl(0))}}break;case 31:case 13:R=ui(k,2),R!==null&&xa(R,k,2),Xd(),C_(k,2)}if(k=w_(d),k===null&&i_(a,o,d,rp,u),k===m)break;m=k}m!==null&&d.stopPropagation()}else i_(a,o,d,null,u)}}function w_(a){return a=dm(a),E_(a)}var rp=null;function E_(a){if(rp=null,a=Ta(a),a!==null){var o=r(a);if(o===null)a=null;else{var u=o.tag;if(u===13){if(a=c(o),a!==null)return a;a=null}else if(u===31){if(a=p(o),a!==null)return a;a=null}else if(u===3){if(o.stateNode.current.memoizedState.isDehydrated)return o.tag===3?o.stateNode.containerInfo:null;a=null}else o!==a&&(a=null)}}return rp=a,null}function Y3(a){switch(a){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"fullscreenerror":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"resize":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(Te()){case Gn:return 2;case Tn:return 8;case Zn:case Hn:return 32;case jn:return 268435456;default:return 32}default:return 32}}var I_=!1,Go=null,Ho=null,Fo=null,yl=new Map,bl=new Map,Uo=[],r8="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function Q3(a,o){switch(a){case"focusin":case"focusout":Go=null;break;case"dragenter":case"dragleave":Ho=null;break;case"mouseover":case"mouseout":Fo=null;break;case"pointerover":case"pointerout":yl.delete(o.pointerId);break;case"gotpointercapture":case"lostpointercapture":bl.delete(o.pointerId)}}function xl(a,o,u,d,m,k){return a===null||a.nativeEvent!==k?(a={blockedOn:o,domEventName:u,eventSystemFlags:d,nativeEvent:k,targetContainers:[m]},o!==null&&(o=Wa(o),o!==null&&W3(o)),a):(a.eventSystemFlags|=d,o=a.targetContainers,m!==null&&o.indexOf(m)===-1&&o.push(m),a)}function u8(a,o,u,d,m){switch(o){case"focusin":return Go=xl(Go,a,o,u,d,m),!0;case"dragenter":return Ho=xl(Ho,a,o,u,d,m),!0;case"mouseover":return Fo=xl(Fo,a,o,u,d,m),!0;case"pointerover":var k=m.pointerId;return yl.set(k,xl(yl.get(k)||null,a,o,u,d,m)),!0;case"gotpointercapture":return k=m.pointerId,bl.set(k,xl(bl.get(k)||null,a,o,u,d,m)),!0}return!1}function J3(a){var o=Ta(a.target);if(o!==null){var u=r(o);if(u!==null){if(o=u.tag,o===13){if(o=c(u),o!==null){a.blockedOn=o,Ka(a.priority,function(){X3(u)});return}}else if(o===31){if(o=p(u),o!==null){a.blockedOn=o,Ka(a.priority,function(){X3(u)});return}}else if(o===3&&u.stateNode.current.memoizedState.isDehydrated){a.blockedOn=u.tag===3?u.stateNode.containerInfo:null;return}}}a.blockedOn=null}function up(a){if(a.blockedOn!==null)return!1;for(var o=a.targetContainers;0<o.length;){var u=w_(a.nativeEvent);if(u===null){u=a.nativeEvent;var d=new u.constructor(u.type,u);cm=d,u.target.dispatchEvent(d),cm=null}else return o=Wa(u),o!==null&&W3(o),a.blockedOn=u,!1;o.shift()}return!0}function Z3(a,o,u){up(a)&&u.delete(o)}function l8(){I_=!1,Go!==null&&up(Go)&&(Go=null),Ho!==null&&up(Ho)&&(Ho=null),Fo!==null&&up(Fo)&&(Fo=null),yl.forEach(Z3),bl.forEach(Z3)}function lp(a,o){a.blockedOn===o&&(a.blockedOn=null,I_||(I_=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,l8)))}var cp=null;function ty(a){cp!==a&&(cp=a,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){cp===a&&(cp=null);for(var o=0;o<a.length;o+=3){var u=a[o],d=a[o+1],m=a[o+2];if(typeof d!="function"){if(E_(d||u)===null)continue;break}var k=Wa(u);k!==null&&(a.splice(o,3),o-=3,lh(k,{pending:!0,data:m,method:u.method,action:d},d,m))}}))}function $r(a){function o(G){return lp(G,a)}Go!==null&&lp(Go,a),Ho!==null&&lp(Ho,a),Fo!==null&&lp(Fo,a),yl.forEach(o),bl.forEach(o);for(var u=0;u<Uo.length;u++){var d=Uo[u];d.blockedOn===a&&(d.blockedOn=null)}for(;0<Uo.length&&(u=Uo[0],u.blockedOn===null);)J3(u),u.blockedOn===null&&Uo.shift();if(u=(a.ownerDocument||a).$$reactFormReplay,u!=null)for(d=0;d<u.length;d+=3){var m=u[d],k=u[d+1],C=m[en]||null;if(typeof k=="function")C||ty(u);else if(C){var R=null;if(k&&k.hasAttribute("formAction")){if(m=k,C=k[en]||null)R=C.formAction;else if(E_(m)!==null)continue}else R=C.action;typeof R=="function"?u[d+1]=R:(u.splice(d,3),d-=3),ty(u)}}}function ey(){function a(k){k.canIntercept&&k.info==="react-transition"&&k.intercept({handler:function(){return new Promise(function(C){return m=C})},focusReset:"manual",scroll:"manual"})}function o(){m!==null&&(m(),m=null),d||setTimeout(u,20)}function u(){if(!d&&!navigation.transition){var k=navigation.currentEntry;k&&k.url!=null&&navigation.navigate(k.url,{state:k.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var d=!1,m=null;return navigation.addEventListener("navigate",a),navigation.addEventListener("navigatesuccess",o),navigation.addEventListener("navigateerror",o),setTimeout(u,100),function(){d=!0,navigation.removeEventListener("navigate",a),navigation.removeEventListener("navigatesuccess",o),navigation.removeEventListener("navigateerror",o),m!==null&&(m(),m=null)}}}function N_(a){this._internalRoot=a}dp.prototype.render=N_.prototype.render=function(a){var o=this._internalRoot;if(o===null)throw Error(s(409));var u=o.current,d=za();
9q3(u,d,a,o,null,null)},dp.prototype.unmount=N_.prototype.unmount=function(){var a=this._internalRoot;if(a!==null){this._internalRoot=null;var o=a.containerInfo;q3(a.current,2,null,a,null,null),Xd(),o[fa]=null}};function dp(a){this._internalRoot=a}dp.prototype.unstable_scheduleHydration=function(a){if(a){var o=Ra();a={blockedOn:null,target:a,priority:o};for(var u=0;u<Uo.length&&o!==0&&o<Uo[u].priority;u++);Uo.splice(u,0,a),u===0&&J3(a)}};var ny=e.version;if(ny!=="19.3.0")throw Error(s(527,ny,"19.3.0"));mt.findDOMNode=function(a){var o=a._reactInternals;if(o===void 0)throw typeof a.render=="function"?Error(s(188)):(a=Object.keys(a).join(","),Error(s(268,a)));return a=_(o),a=a!==null?f(a):null,a=a===null?null:a.stateNode,a};var c8={bundleType:0,version:"19.3.0",rendererPackageName:"react-dom",currentDispatcherRef:ft,reconcilerVersion:"19.3.0"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var pp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!pp.isDisabled&&pp.supportsFiber)try{rn=pp.inject(c8),He=pp}catch{}}return Cl.createRoot=function(a,o){if(!i(a))throw Error(s(299));var u=!1,d="",m=V2,k=q2,C=K2;return o!=null&&(o.unstable_strictMode===!0&&(u=!0),o.identifierPrefix!==void 0&&(d=o.identifierPrefix),o.onUncaughtError!==void 0&&(m=o.onUncaughtError),o.onCaughtError!==void 0&&(k=o.onCaughtError),o.onRecoverableError!==void 0&&(C=o.onRecoverableError)),o=U3(a,1,!1,null,null,u,d,null,m,k,C,ey),a[fa]=o.current,o_(a),new N_(o)},Cl.hydrateRoot=function(a,o,u){if(!i(a))throw Error(s(299));var d=!1,m="",k=V2,C=q2,R=K2,G=null;return u!=null&&(u.unstable_strictMode===!0&&(d=!0),u.identifierPrefix!==void 0&&(m=u.identifierPrefix),u.onUncaughtError!==void 0&&(k=u.onUncaughtError),u.onCaughtError!==void 0&&(C=u.onCaughtError),u.onRecoverableError!==void 0&&(R=u.onRecoverableError),u.formState!==void 0&&(G=u.formState)),o=U3(a,1,!0,o,u??null,d,m,G,k,C,R,ey),o.context=V3(null),u=o.current,d=za(),d=ze(d),m=Io(d),m.callback=null,No(u,m,d),u=d,o.current.lanes=u,be(o,u),Hs(o),a[fa]=o.current,o_(a),new dp(o)},Cl.version="19.3.0",Cl}var py;function b8(){if(py)return j_.exports;py=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),j_.exports=y8(),j_.exports}var x8=b8();var D0=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,t7=/^[\\/]{2}/;function A8(t,e){return e+t.replace(/\\/g,"/")}var gy="popstate";function my(t){return typeof t=="object"&&t!=null&&"pathname"in t&&"search"in t&&"hash"in t&&"state"in t&&"key"in t}function C8(t={}){function e(s,i){let r=i.state?.masked,{pathname:c,search:p,hash:g}=r||s.location;return Vf("",{pathname:c,search:p,hash:g},i.state&&i.state.usr||null,i.state&&i.state.key||"default",r?{pathname:s.location.pathname,search:s.location.search,hash:s.location.hash}:void 0)}function n(s,i){return typeof i=="string"?i:du(i)}return w8(e,n,null,t)}function sn(t,e){if(t===!1||t===null||typeof t>"u")throw new Error(e)}function Xs(t,e){if(!t){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function S8(){return Math.random().toString(36).substring(2,10)}function hy(t,e){return{usr:t.state,key:t.key,idx:e,masked:t.mask?{pathname:t.pathname,search:t.search,hash:t.hash}:void 0}}function Vf(t,e,n=null,s,i){return{pathname:typeof t=="string"?t:t.pathname,search:"",hash:"",...typeof e=="string"?yu(e):e,state:n,key:e&&e.key||s||S8(),mask:i}}function du({pathname:t="/",search:e="",hash:n=""}){return e&&e!=="?"&&(t+=e.charAt(0)==="?"?e:"?"+e),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function yu(t){let e={};if(t){let n=t.indexOf("#");n>=0&&(e.hash=t.substring(n),t=t.substring(0,n));let s=t.indexOf("?");s>=0&&(e.search=t.substring(s),t=t.substring(0,s)),t&&(e.pathname=t)}return e}function w8(t,e,n,s={}){let{window:i=document.defaultView,v5Compat:r=!1}=s,c=i.history,p="POP",g=null,_=f();_==null&&(_=0,c.replaceState({...c.state,idx:_},""));function f(){return(c.state||{idx:null}).idx}function h(){p="POP";let w=f(),A=w==null?null:w-_;_=w,g&&g({action:p,location:x.location,delta:A})}function v(w,A){p="PUSH";let E=my(w)?w:Vf(x.location,w,A);_=f()+1;let I=hy(E,_),j=x.createHref(E.mask||E);try{c.pushState(I,"",j)}catch(T){if(T instanceof DOMException&&T.name==="DataCloneError")throw T;i.location.assign(j)}r&&g&&g({action:p,location:x.location,delta:1})}function b(w,A){p="REPLACE";let E=my(w)?w:Vf(x.location,w,A);_=f();let I=hy(E,_),j=x.createHref(E.mask||E);c.replaceState(I,"",j),r&&g&&g({action:p,location:x.location,delta:0})}function S(w){return E8(i,w)}let x={get action(){return p},get location(){return t(i,c)},listen(w){if(g)throw new Error("A history only accepts one active listener");return i.addEventListener(gy,h),g=w,()=>{i.removeEventListener(gy,h),g=null}},createHref(w){return e(i,w)},createURL:S,encodeLocation(w){let A=S(w);return{pathname:A.pathname,search:A.search,hash:A.hash}},push:v,replace:b,go(w){return c.go(w)}};return x}function E8(t,e,n=!1){let s="http://localhost";t&&(s=t.location.origin!=="null"?t.location.origin:t.location.href),sn(s,"No window.location.(origin|href) available to create URL");let i=typeof e=="string"?e:du(e);return i=i.replace(/ $/,"%20"),!n&&t7.test(i)&&(i=s+i),new URL(i,s)}function e7(t,e,n="/"){return I8(t,e,n,!1)}function I8(t,e,n,s,i){let r=typeof e=="string"?yu(e):e,c=ko(r.pathname||"/",n);if(c==null)return null;let p=N8(t),g=null,_=$8(c);for(let f=0;g==null&&f<p.length;++f)g=B8(p[f],_,s);return g}function N8(t){let e=n7(t);return R8(e),e}function n7(t,e=[],n=[],s="",i=!1){let r=(c,p,g=i,_)=>{let f={relativePath:_===void 0?c.path||"":_,caseSensitive:c.caseSensitive===!0,childrenIndex:
9p,route:c};if(f.relativePath.startsWith("/")){if(!f.relativePath.startsWith(s)&&g)return;sn(f.relativePath.startsWith(s),`Absolute route path "${f.relativePath}" nested under path "${s}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),f.relativePath=f.relativePath.slice(s.length)}let h=Cs([s,f.relativePath]),v=n.concat(f);c.children&&c.children.length>0&&(sn(c.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${h}".`),n7(c.children,e,v,h,g)),!(c.path==null&&!c.index)&&e.push({path:h,score:D8(h,c.index),routesMeta:v.map((b,S)=>{let[x,w]=o7(b.relativePath,b.caseSensitive,S===v.length-1);return{...b,matcher:x,compiledParams:w}})})};return t.forEach((c,p)=>{if(c.path===""||!c.path?.includes("?"))r(c,p);else for(let g of a7(c.path))r(c,p,!0,g)}),e}function a7(t){let e=t.split("/");if(e.length===0)return[];let[n,...s]=e,i=n.endsWith("?"),r=n.replace(/\?$/,"");if(s.length===0)return i?[r,""]:[r];let c=a7(s.join("/")),p=[];return p.push(...c.map(g=>g===""?r:[r,g].join("/"))),i&&p.push(...c),p.map(g=>t.startsWith("/")&&g===""?"/":g)}function R8(t){t.sort((e,n)=>e.score!==n.score?n.score-e.score:z8(e.routesMeta.map(s=>s.childrenIndex),n.routesMeta.map(s=>s.childrenIndex)))}var T8=/^:[\w-]+$/,j8=3,P8=2,M8=1,L8=10,O8=-2,_y=t=>t==="*";function D8(t,e){let n=t.split("/"),s=n.length;return n.some(_y)&&(s+=O8),e&&(s+=P8),n.filter(i=>!_y(i)).reduce((i,r)=>i+(T8.test(r)?j8:r===""?M8:L8),s)}function z8(t,e){return t.length===e.length&&t.slice(0,-1).every((s,i)=>s===e[i])?t[t.length-1]-e[e.length-1]:0}function B8(t,e,n=!1){let{routesMeta:s}=t,i={},r="/",c=[];for(let p=0;p<s.length;++p){let g=s[p],_=p===s.length-1,f=r==="/"?e:e.slice(r.length)||"/",h={path:g.relativePath,caseSensitive:g.caseSensitive,end:_},v=g.matcher&&g.compiledParams?s7(h,f,g.matcher,g.compiledParams):Zp(h,f),b=g.route;if(!v&&_&&n&&!s[s.length-1].route.index&&(v=Zp({path:g.relativePath,caseSensitive:g.caseSensitive,end:!1},f)),!v)return null;
9Object.assign(i,v.params),c.push({params:i,pathname:Cs([r,v.pathname]),pathnameBase:F8(Cs([r,v.pathnameBase])),route:b}),v.pathnameBase!=="/"&&(r=Cs([r,v.pathnameBase]))}return c}function Zp(t,e){typeof t=="string"&&(t={path:t,caseSensitive:!1,end:!0});let[n,s]=o7(t.path,t.caseSensitive,t.end);return s7(t,e,n,s)}function s7(t,e,n,s){let i=e.match(n);if(!i)return null;let r=i[0],c=pu(r,1),p=i.slice(1);return{params:s.reduce((_,{paramName:f,isOptional:h},v)=>{if(f==="*"){let S=p[v]||"";c=pu(r.slice(0,r.length-S.length),1)}const b=p[v];return h&&!b?_[f]=void 0:_[f]=(b||"").replace(/%2F/g,"/"),_},{}),pathname:r,pathnameBase:c,pattern:t}}function o7(t,e=!1,n=!0){Xs(t==="*"||!t.endsWith("*")||t.endsWith("/*"),`Route path "${t}" will be treated as if it were "${t.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${t.replace(/\*$/,"/*")}".`);let s=[],i="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(c,p,g,_,f)=>{if(s.push({paramName:p,isOptional:g!=null}),g){let h=f.charAt(_+c.length);return h&&h!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return t.endsWith("*")?(s.push({paramName:"*"}),i+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":t!==""&&t!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,e?void 0:"i"),s]}function $8(t){try{return t.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(e){return Xs(!1,`The URL path "${t}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${e}).`),t}}function ko(t,e){if(e==="/")return t;if(!t.toLowerCase().startsWith(e.toLowerCase()))return null;let n=e.endsWith("/")?e.length-1:e.length,s=t.charAt(n);return s&&s!=="/"?null:t.slice(n)||"/"}function G8(t,e="/"){let{pathname:n,search:s="",hash:i=""}=typeof t=="string"?yu(t):t,r;return n?(n=r7(n),n.startsWith("/")||n.startsWith("\\")?r=fy(n.substring(1),"/"):r=fy(n,e)):r=e,{pathname:r,search:U8(s),hash:V8(i)}}function fy(t,e){let n=pu(e).split("/");return t.split("/").forEach(i=>{i===".."?n.length>1&&n.pop():i!=="."&&n.push(i)}),n.length>1?n.join("/"):"/"}function O_(t,e,n,s){return`Cannot include a '${t}' character in a manually specified \`to.${e}\` field [${JSON.stringify(s)}].  Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function H8(t){return t.filter((e,n)=>n===0||e.route.path&&e.route.path.length>0)}function i7(t){let e=H8(t);return e.map((n,s)=>s===e.length-1?n.pathname:n.pathnameBase)}function z0(t,e,n,s=!1){let i;typeof t=="string"?i=yu(t):(i={...t},sn(!i.pathname||!i.pathname.includes("?"),O_("?","pathname","search",i)),sn(!i.pathname||!i.pathname.includes("#"),O_("#","pathname","hash",i)),sn(!i.search||!i.search.includes("#"),O_("#","search","hash",i)));let r=t===""||i.pathname==="",c=r?"/":i.pathname,p;if(c==null)p=n;else{let h=e.length-1;if(!s&&c.startsWith("..")){let v=c.split("/");for(;v[0]==="..";)v.shift(),h-=1;i.pathname=v.join("/")}p=h>=0?e[h]:"/"}let g=G8(i,p),_=c&&c!=="/"&&c.endsWith("/"),f=(r||c===".")&&n.endsWith("/");return!g.pathname.endsWith("/")&&(_||f)&&(g.pathname+="/"),g}var r7=t=>t.replace(/[\\/]{2,}/g,"/"),Cs=t=>r7(t.join("/"));function pu(t,e=0){let n=t.length;for(;n>e&&t.charCodeAt(n-1)===47;)n--;return n===t.length?t:t.slice(0,n)}var F8=t=>pu(t).replace(/^\/*/,"/"),U8=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,V8=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t,q8=class{constructor(t,e,n,s=!1){this.status=t,this.statusText=e||"",this.internal=s,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function K8(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}function W8(t){let e=t.map(n=>n.route.path).filter(Boolean);return Cs(e)||"/"}var u7=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function l7(t,e){let n=t;
9if(typeof n!="string"||!D0.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let s=n,i=!1;if(u7)try{let r=new URL(window.location.href),c=t7.test(n)?new URL(A8(n,r.protocol)):new URL(n),p=ko(c.pathname,e);c.origin===r.origin&&p!=null?n=p+c.search+c.hash:i=!0}catch{Xs(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:s,isExternal:i,to:n}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var ky=new URL("http://localhost");function c7(t){if(t.createURL)return t.createURL("/");try{return new URL(t.createHref("/"),ky)}catch{return ky}}function D_(t,e){return t.origin===e.origin&&(t.origin!=="null"||t.protocol===e.protocol&&t.host===e.host)}function X8(t,e){if(t.startsWith("//"))return!0;let n=e.protocol.toLowerCase();return t.toLowerCase().startsWith(n)?e.host===""||t.slice(n.length).startsWith("//"):!1}function d7(t,e,n,s){let i=null;try{i=t==null?null:new URL(t,n)}catch{}let r=new URL(e,n),c=i!=null&&!D_(i,n),p=!D_(r,n);if(s==="reject"){if(c||p)throw new Error("External navigation is not allowed")}else if(p&&(i==null||!X8(t,i)||!D_(i,r)))throw new Error("External navigation is not allowed")}var p7=["POST","PUT","PATCH","DELETE"];new Set(p7);var Y8=["GET",...p7];new Set(Y8);var Q8=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];function J8(t){try{return Q8.includes(new URL(t).protocol)}catch{return!1}}var bu=y.createContext(null);bu.displayName="DataRouter";var wg=y.createContext(null);wg.displayName="DataRouterState";var g7=y.createContext(!1);function Z8(){return y.useContext(g7)}var m7=y.createContext({isTransitioning:!1});m7.displayName="ViewTransition";var tE=y.createContext(new Map);tE.displayName="Fetchers";var eE=y.createContext(null);eE.displayName="Await";var cs=y.createContext(null);cs.displayName="Navigation";var Cc=y.createContext(null);Cc.displayName="Location";var Qs=y.createContext({outlet:null,matches:[],isDataRoute:!1});Qs.displayName="Route";var B0=y.createContext(null);B0.displayName="RouteError";var h7="REACT_ROUTER_ERROR",nE="REDIRECT",aE="ROUTE_ERROR_RESPONSE";function sE(t){if(t.startsWith(`${h7}:${nE}:{`))try{let e=JSON.parse(t.slice(28));if(typeof e=="object"&&e&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.location=="string"&&typeof e.reloadDocument=="boolean"&&typeof e.replace=="boolean")return e}catch{}}function oE(t){if(t.startsWith(`${h7}:${aE}:{`))try{let e=JSON.parse(t.slice(40));if(typeof e=="object"&&e&&typeof e.status=="number"&&typeof e.statusText=="string")return new q8(e.status,e.statusText,e.data)}catch{}}function iE(t,{relative:e}={}){sn(Sc(),"useHref() may be used only in the context of a <Router> component.");let{basename:n,navigator:s}=y.useContext(cs),{hash:i,pathname:r,search:c}=wc(t,{relative:e}),p=r;return n!=="/"&&(p=r==="/"?n:Cs([n,r])),s.createHref({pathname:p,search:c,hash:i})}function Sc(){return y.useContext(Cc)!=null}function qa(){return sn(Sc(),"useLocation() may be used only in the context of a <Router> component."),y.useContext(Cc).location}var _7="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function f7(t){y.useContext(cs).static||y.useLayoutEffect(t)}function si(){let{isDataRoute:t}=y.useContext(Qs);return t?vE():rE()}function rE(){sn(Sc(),"useNavigate() may be used only in the context of a <Router> component.");let t=y.useContext(bu),{basename:e,navigator:n}=y.useContext(cs),{matches:s}=y.useContext(Qs),{pathname:i}=qa(),r=JSON.stringify(i7(s)),c=y.useRef(!1);return f7(()=>{c.current=!0}),y.useCallback((g,_={})=>{if(Xs(c.current,_7),!c.current)return;if(typeof g=="number"){n.go(g);return}let f=z0(g,JSON.parse(r),i,_.relative==="path");t==null&&e!=="/"&&(f.pathname=f.pathname==="/"?e:Cs([e,f.pathname])),d7(typeof g=="string"?g:du(g),n.createHref(f),c7(n),"reject"),(_.replace?n.replace:n.push)(f,_.state,_)},[e,n,r,i,t])}y.createContext(null);function k7(){let{matches:t}=y.useContext(Qs);return t[t.length-1]?.params??{}}function wc(t,{relative:e}={}){let{matches:n}=y.useContext(Qs),{pathname:s}=qa(),i=JSON.stringify(i7(n));return y.useMemo(()=>z0(t,JSON.parse(i),s,e==="path"),[t,i,s,e])}function uE(t,e){return v7(t,e)}function v7(t,e,n){sn(Sc(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:s}=y.useContext(cs),{matches:i}=y.useContext(Qs),r=i[i.length-1],c=r?r.params:{},p=r?r.pathname:"/",g=r?r.pathnameBase:"/",_=r&&r.route;{let w=_&&_.path||"";b7(p,!_||w.endsWith("*")||w.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${p}" (under <Route path="${w}">) 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.
10
11Please change the parent <Route path="${w}"> to <Route path="${w==="/"?"*":`${w}/*`}">.`)}let f=qa(),h;if(e){let w=typeof e=="string"?yu(e):e;sn(g==="/"||w.pathname?.startsWith(g),`When overriding the location using \`<Routes location>\` 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 "${g}" but pathname "${w.pathname}" was given in the \`location\` prop.`),h=w}else h=f;let v=h.pathname||"/",b=v;if(g!=="/"){let w=g.replace(/^\//,"").split("/");b="/"+v.replace(/^\//,"").split("/").slice(w.length).join("/")}let S=n&&n.state.matches.length?n.state.matches.map(w=>Object.assign(w,{route:n.manifest[w.route.id]||w.route})):e7(t,{pathname:b});Xs(_||S!=null,`No routes matched location "${h.pathname}${h.search}${h.hash}" `),Xs(S==null||S[S.length-1].route.element!==void 0||S[S.length-1].route.Component!==void 0||S[S.length-1].route.lazy!==void 0,`Matched leaf route at location "${h.pathname}${h.search}${h.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let x=gE(S&&S.map(w=>Object.assign({},w,{params:Object.assign({},c,w.params),pathname:Cs([g,s.encodeLocation?s.encodeLocation(w.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:w.pathname]),pathnameBase:w.pathnameBase==="/"?g:Cs([g,s.encodeLocation?s.encodeLocation(w.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:w.pathnameBase])})),i,n);return e&&x?y.createElement(Cc.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",mask:void 0,...h},navigationType:"POP"}},x):x}function lE(){let t=kE(),e=K8(t)?`${t.status} ${t.statusText}`:t instanceof Error?t.message:JSON.stringify(t),n=t instanceof Error?t.stack:null,s="rgba(200,200,200, 0.5)",i={padding:"0.5rem",backgroundColor:s},r={padding:"2px 4px",backgroundColor:s},c=null;return console.error("Error handled by React Router default ErrorBoundary:",t),c=y.createElement(y.Fragment,null,y.createElement("p",null,"💿 Hey developer 👋"),y.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",y.createElement("code",{style:r},"ErrorBoundary")," or"," ",y.createElement("code",{style:r},"errorElement")," prop on your route.")),y.createElement(y.Fragment,null,y.createElement("h2",null,"Unexpected Application 
11Error!"),y.createElement("h3",{style:{fontStyle:"italic"}},e),n?y.createElement("pre",{style:i},n):null,c)}var cE=y.createElement(lE,null),y7=class extends y.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,e){return e.location!==t.location||e.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:e.error,location:e.location,revalidation:t.revalidation||e.revalidation}}componentDidCatch(t,e){this.props.onError?this.props.onError(t,e):console.error("React Router caught the following error during render",t)}render(){let t=this.state.error;if(this.context&&typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){const n=oE(t.digest);n&&(t=n)}let e=t!==void 0?y.createElement(Qs.Provider,{value:this.props.routeContext},y.createElement(B0.Provider,{value:t,children:this.props.component})):this.props.children;return this.context?y.createElement(dE,{error:t},e):e}};y7.contextType=g7;var z_=new WeakMap;function dE({children:t,error:e}){let{basename:n,navigator:s}=y.useContext(cs);if(typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){let i=sE(e.digest);if(i){let r=z_.get(e);if(r)throw r;let c=l7(i.location,n),p=c.absoluteURL||c.to;if(d7(i.location,p,c7(s),"allow-explicit"),J8(p))throw new Error("Invalid redirect location");if(u7&&!z_.get(e))if(c.isExternal||i.reloadDocument)window.location.href=p;else{const g=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(c.to,{replace:i.replace}));throw z_.set(e,g),g}return y.createElement("meta",{httpEquiv:"refresh",content:`0;url=${p}`})}}return t}function pE({routeContext:t,match:e,children:n}){let s=y.useContext(bu);return s&&s.static&&s.staticContext&&(e.route.errorElement||e.route.ErrorBoundary)&&(s.staticContext._deepestRenderedBoundaryId=e.route.id),y.createElement(Qs.Provider,{value:t},n)}function gE(t,e=[],n){let s=n?.state;if(t==null){if(!s)return null;if(s.errors)t=s.matches;else if(e.length===0&&!s.initialized&&s.matches.length>0)t=s.matches;else return null}let i=t,r=s?.errors;if(r!=null){let f=i.findIndex(h=>h.route.id&&r?.[h.route.id]!==void 0);sn(f>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(r).join(",")}`),i=i.slice(0,Math.min(i.length,f+1))}let c=!1,p=-1;if(n&&s){c=s.renderFallback;for(let f=0;f<i.length;f++){let h=i[f];if((h.route.HydrateFallback||h.route.hydrateFallbackElement)&&(p=f),h.route.id){let{loaderData:v,errors:b}=s,S=h.route.loader&&!v.hasOwnProperty(h.route.id)&&(!b||b[h.route.id]===void 0);if(h.route.lazy||S){n.isStatic&&(c=!0),p>=0?i=i.slice(0,p+1):i=[i[0]];break}}}}let g=n?.onError,_=s&&g?(f,h)=>{g(f,{location:s.location,params:s.matches?.[0]?.params??{},pattern:W8(s.matches),errorInfo:h})}:void 0;return i.reduceRight((f,h,v)=>{let b,S=!1,x=null,w=null;s&&(b=r&&h.route.id?r[h.route.id]:void 0,x=h.route.errorElement||cE,c&&(p<0&&v===0?(b7("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),S=!0,w=null):p===v&&(S=!0,w=h.route.hydrateFallbackElement||null)));let A=e.concat(i.slice(0,v+1)),E=()=>{let I;return b?I=x:S?I=w:h.route.Component?I=y.createElement(h.route.Component,null):h.route.element?I=h.route.element:I=f,y.createElement(pE,{match:h,routeContext:{outlet:f,matches:A,isDataRoute:s!=null},children:I})};return s&&(h.route.ErrorBoundary||h.route.errorElement||v===0)?y.createElement(y7,{location:s.location,revalidation:s.revalidation,component:x,error:b,children:E(),routeContext:{outlet:null,matches:A,isDataRoute:!0},onError:_}):E()},null)}function $0(t){return`${t} must be used within a data router.  See https://reactrouter.com/en/main/routers/picking-a-router.`}function mE(t){let e=y.useContext(bu);return sn(e,$0(t)),e}function hE(t){let e=y.useContext(wg);return sn(e,$0(t)),e}function _E(t){let e=y.useContext(Qs);return sn(e,$0(t)),e}function G0(t){let e=_E(t),n=e.matches[e.matches.length-1];return sn(n.route.id,`${t} can only be used on routes that contain a unique "id"`),n.route.id}function fE(){return G0("useRouteId")}function kE(){let t=y.useContext(B0),e=hE("useRouteError"),n=G0("useRouteError");return t!==void 0?t:e.errors?.[n]}function vE(){let{router:t}=mE("useNavigate"),e=G0("useNavigate"),n=y.useRef(!1);return f7(()=>{n.current=!0}),y.useCallback(async(i,r={})=>{Xs(n.current,_7),n.current&&(typeof i=="number"?await t.navigate(i):await t.navigate(i,{fromRouteId:e,...r}))},[t,e])}var vy={};function b7(t,e,n){!e&&!vy[t]&&(vy[t]=!0,Xs(!1,n))}y.memo(yE);function yE({routes:t,manifest:e,future:n,state:s,isStatic:i,onError:r}){return v7(t,void 0,{manifest:e,state:s,isStatic:i,onError:r})}function We(t){sn(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function bE({basename:t="/",children:e=null,location:n,navigationType:s="POP",navigator:i,static:r=!1,useTransitions:c}){sn(!Sc(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let p=t.replace(/^\/*/,"/"),g=y.useMemo(()=>({basename:p,navigator:i,static:r,useTransitions:c,future:{}}),[p,i,r,c]);typeof n=="string"&&(n=yu(n));let{pathname:_="/",search:f="",hash:h="",state:v=null,key:b="default",mask:S}=n,x=y.useMemo(()=>{let w=ko(_,p);return w==null?null:{location:{pathname:w,search:f,hash:h,state:v,key:b,mask:S},navigationType:s}},[p,_,f,h,v,b,s,S]);
11return Xs(x!=null,`<Router basename="${p}"> is not able to match the URL "${_}${f}${h}" because it does not start with the basename, so the <Router> won't render anything.`),x==null?null:y.createElement(cs.Provider,{value:g},y.createElement(Cc.Provider,{children:e,value:x}))}function xE({children:t,location:e}){return uE(qf(t),e)}function qf(t,e=[]){let n=[];return y.Children.forEach(t,(s,i)=>{if(!y.isValidElement(s))return;let r=[...e,i];if(s.type===y.Fragment){n.push.apply(n,qf(s.props.children,r));return}sn(s.type===We,`[${typeof s.type=="string"?s.type:s.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),sn(!s.props.index||!s.props.children,"An index route cannot have child routes.");let c={id:s.props.id||r.join("-"),caseSensitive:s.props.caseSensitive,element:s.props.element,Component:s.props.Component,index:s.props.index,path:s.props.path,middleware:s.props.middleware,loader:s.props.loader,action:s.props.action,hydrateFallbackElement:s.props.hydrateFallbackElement,HydrateFallback:s.props.HydrateFallback,errorElement:s.props.errorElement,ErrorBoundary:s.props.ErrorBoundary,hasErrorBoundary:s.props.hasErrorBoundary===!0||s.props.ErrorBoundary!=null||s.props.errorElement!=null,shouldRevalidate:s.props.shouldRevalidate,handle:s.props.handle,lazy:s.props.lazy};s.props.children&&(c.children=qf(s.props.children,r)),n.push(c)}),n}var Pp="get",Mp="application/x-www-form-urlencoded";function Eg(t){return typeof HTMLElement<"u"&&t instanceof HTMLElement}function AE(t){return Eg(t)&&t.tagName.toLowerCase()==="button"}function CE(t){return Eg(t)&&t.tagName.toLowerCase()==="form"}function SE(t){return Eg(t)&&t.tagName.toLowerCase()==="input"}function wE(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function EE(t,e){return t.button===0&&(!e||e==="_self")&&!wE(t)}var gp=null;function IE(){if(gp===null)try{new FormData(document.createElement("form"),0),gp=!1}catch{gp=!0}return gp}var NE=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function B_(t){return t!=null&&!NE.has(t)?(Xs(!1,`"${t}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Mp}"`),null):t}function RE(t,e){let n,s,i,r,c;if(CE(t)){let p=t.getAttribute("action");s=p?ko(p,e):null,n=t.getAttribute("method")||Pp,i=B_(t.getAttribute("enctype"))||Mp,r=new FormData(t)}else if(AE(t)||SE(t)&&(t.type==="submit"||t.type==="image")){let p=t.form;if(p==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let g=t.getAttribute("formaction")||p.getAttribute("action");if(s=g?ko(g,e):null,n=t.getAttribute("formmethod")||p.getAttribute("method")||Pp,i=B_(t.getAttribute("formenctype"))||B_(p.getAttribute("enctype"))||Mp,r=new FormData(p,t),!IE()){let{name:_,type:f,value:h}=t;if(f==="image"){let v=_?`${_}.`:"";r.append(`${v}x`,"0"),r.append(`${v}y`,"0")}else _&&r.append(_,h)}}else{if(Eg(t))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');n=Pp,s=null,i=Mp,c=t}return r&&i==="text/plain"&&(c=r,r=void 0),{action:s,method:n.toLowerCase(),encType:i,formData:r,body:c}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function H0(t,e){if(t===!1||t===null||typeof t>"u")throw new Error(e)}function x7(t,e,n,s){let i=typeof t=="string"?new URL(t,typeof window>"u"?"server://singlefetch/":window.location.origin):t;return n?i.pathname.endsWith("/")?i.pathname=`${i.pathname}_.${s}`:i.pathname=`${i.pathname}.${s}`:i.pathname==="/"?i.pathname=`_root.${s}`:e&&ko(i.pathname,e)==="/"?i.pathname=`${pu(e)}/_root.${s}`:i.pathname=`${pu(i.pathname)}.${s}`,i}async function TE(t,e){if(t.id in e)return e[t.id];try{let n=await import(t.module);return e[t.id]=n,n}catch(n){return console.error(`Error loading route module \`${t.module}\`, reloading page...`),console.error(n),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function jE(t){return t==null?!1:t.href==null?t.rel==="preload"&&typeof t.imageSrcSet=="string"&&typeof t.imageSizes=="string":typeof t.rel=="string"&&typeof t.href=="string"}async function PE(t,e,n){let s=await Promise.all(t.map(async i=>{let r=e.routes[i.route.id];if(r){let c=await TE(r,n);return c.links?c.links():[]}return[]}));return DE(s.flat(1).filter(jE).filter(i=>i.rel==="stylesheet"||i.rel==="preload").map(i=>i.rel==="stylesheet"?{...i,rel:"prefetch",as:"style"}:{...i,rel:"prefetch"}))}function yy(t,e,n,s,i,r){let c=(g,_)=>n[_]?g.route.id!==n[_].route.id:!0,p=(g,_)=>n[_].pathname!==g.pathname||n[_].route.path?.endsWith("*")&&n[_].params["*"]!==g.params["*"];return r==="assets"?e.filter((g,_)=>c(g,_)||p(g,_)):r==="data"?e.filter((g,_)=>{let f=s.routes[g.route.id];if(!f||!f.hasLoader)return!1;if(c(g,_)||p(g,_))return!0;
11if(g.route.shouldRevalidate){let h=g.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(t,window.origin),nextParams:g.params,defaultShouldRevalidate:!0});if(typeof h=="boolean")return h}return!0}):[]}function ME(t,e,{includeHydrateFallback:n}={}){return LE(t.map(s=>{let i=e.routes[s.route.id];if(!i)return[];let r=[i.module];return i.clientActionModule&&(r=r.concat(i.clientActionModule)),i.clientLoaderModule&&(r=r.concat(i.clientLoaderModule)),n&&i.hydrateFallbackModule&&(r=r.concat(i.hydrateFallbackModule)),i.imports&&(r=r.concat(i.imports)),r}).flat(1))}function LE(t){return[...new Set(t)]}function OE(t){let e={},n=Object.keys(t).sort();for(let s of n)e[s]=t[s];return e}function DE(t,e){let n=new Set;return new Set(e),t.reduce((s,i)=>{let r=JSON.stringify(OE(i));return n.has(r)||(n.add(r),s.push({key:r,link:i})),s},[])}function F0(){let t=y.useContext(bu);return H0(t,"You must render this element inside a <DataRouterContext.Provider> element"),t}function zE(){let t=y.useContext(wg);return H0(t,"You must render this element inside a <DataRouterStateContext.Provider> element"),t}var U0=y.createContext(void 0);U0.displayName="FrameworkContext";function Ig(){let t=y.useContext(U0);return H0(t,"You must render this element inside a <HydratedRouter> element"),t}function BE(t,e){let n=y.useContext(U0),[s,i]=y.useState(!1),[r,c]=y.useState(!1),{onFocus:p,onBlur:g,onMouseEnter:_,onMouseLeave:f,onTouchStart:h}=e,v=y.useRef(null);y.useEffect(()=>{if(t==="render"&&c(!0),t==="viewport"){let x=A=>{A.forEach(E=>{c(E.isIntersecting)})},w=new IntersectionObserver(x,{threshold:.5});return v.current&&w.observe(v.current),()=>{w.disconnect()}}},[t]),y.useEffect(()=>{if(s){let x=setTimeout(()=>{c(!0)},100);return()=>{clearTimeout(x)}}},[s]);let b=()=>{i(!0)},S=()=>{i(!1),c(!1)};return n?t!=="intent"?[r,v,{}]:[r,v,{onFocus:Sl(p,b),onBlur:Sl(g,S),onMouseEnter:Sl(_,b),onMouseLeave:Sl(f,S),onTouchStart:Sl(h,b)}]:[!1,v,{}]}function Sl(t,e){return n=>{t&&t(n),n.defaultPrevented||e(n)}}function $E({page:t,...e}){let n=Z8(),{nonce:s}=Ig(),{router:i}=F0(),r=y.useMemo(()=>e7(i.routes,t,i.basename),[i.routes,t,i.basename]);return r?(e.nonce==null&&s&&(e={...e,nonce:s}),n?y.createElement(HE,{page:t,matches:r,...e}):y.createElement(FE,{page:t,matches:r,...e})):null}function GE(t){let{manifest:e,routeModules:n}=Ig(),[s,i]=y.useState([]);return y.useEffect(()=>{let r=!1;return PE(t,e,n).then(c=>{r||i(c)}),()=>{r=!0}},[t,e,n]),s}function HE({page:t,matches:e,...n}){let s=qa(),{future:i}=Ig(),{basename:r}=F0(),c=y.useMemo(()=>{if(t===s.pathname+s.search+s.hash)return[];let p=x7(t,r,i.v8_trailingSlashAwareDataRequests,"rsc"),g=!1,_=[];for(let f of e)typeof f.route.shouldRevalidate=="function"?g=!0:_.push(f.route.id);return g&&_.length>0&&p.searchParams.set("_routes",_.join(",")),[p.pathname+p.search]},[r,i.v8_trailingSlashAwareDataRequests,t,s,e]);return y.createElement(y.Fragment,null,c.map(p=>y.createElement("link",{key:p,rel:"prefetch",as:"fetch",href:p,...n})))}function FE({page:t,matches:e,...n}){let s=qa(),{future:i,manifest:r,routeModules:c}=Ig(),{basename:p}=F0(),{loaderData:g,matches:_}=zE(),f=y.useMemo(()=>yy(t,e,_,r,s,"data"),[t,e,_,r,s]),h=y.useMemo(()=>yy(t,e,_,r,s,"assets"),[t,e,_,r,s]),v=y.useMemo(()=>{if(t===s.pathname+s.search+s.hash)return[];let x=new Set,w=!1;if(e.forEach(E=>{let I=r.routes[E.route.id];!I||!I.hasLoader||(!f.some(j=>j.route.id===E.route.id)&&E.route.id in g&&c[E.route.id]?.shouldRevalidate||I.hasClientLoader?w=!0:x.add(E.route.id))}),x.size===0)return[];
11let A=x7(t,p,i.v8_trailingSlashAwareDataRequests,"data");return w&&x.size>0&&A.searchParams.set("_routes",e.filter(E=>x.has(E.route.id)).map(E=>E.route.id).join(",")),[A.pathname+A.search]},[p,i.v8_trailingSlashAwareDataRequests,g,s,r,f,e,t,c]),b=y.useMemo(()=>ME(h,r),[h,r]),S=GE(h);return y.createElement(y.Fragment,null,v.map(x=>y.createElement("link",{key:x,rel:"prefetch",as:"fetch",href:x,...n})),b.map(x=>y.createElement("link",{key:x,rel:"modulepreload",href:x,...n})),S.map(({key:x,link:w})=>y.createElement("link",{key:x,nonce:n.nonce,...w,crossOrigin:w.crossOrigin??n.crossOrigin})))}function UE(...t){return e=>{t.forEach(n=>{typeof n=="function"?n(e):n!=null&&(n.current=e)})}}var VE=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{VE&&(window.__reactRouterVersion="7.18.3")}catch{}function qE({basename:t,children:e,useTransitions:n,window:s}){let i=y.useRef();i.current==null&&(i.current=C8({window:s,v5Compat:!0}));let r=i.current,[c,p]=y.useState({action:r.action,location:r.location}),g=y.useCallback(_=>{n===!1?p(_):y.startTransition(()=>p(_))},[n]);return y.useLayoutEffect(()=>r.listen(g),[r,g]),y.createElement(bE,{basename:t,children:e,location:c.location,navigationType:c.action,navigator:r,useTransitions:n})}var Wt=y.forwardRef(function({onClick:e,discover:n="render",prefetch:s="none",relative:i,reloadDocument:r,replace:c,mask:p,state:g,target:_,to:f,preventScrollReset:h,viewTransition:v,defaultShouldRevalidate:b,...S},x){let{basename:w,navigator:A,useTransitions:E}=y.useContext(cs),I=typeof f=="string"&&D0.test(f),j=l7(f,w);f=j.to;let T=iE(f,{relative:i}),P=qa(),N=null;if(p){let V=z0(p,[],P.mask?P.mask.pathname:"/",!0);w!=="/"&&(V.pathname=V.pathname==="/"?w:Cs([w,V.pathname])),N=A.createHref(V)}let[D,F,B]=BE(s,S),L=YE(f,{replace:c,mask:p,state:g,target:_,preventScrollReset:h,relative:i,viewTransition:v,defaultShouldRevalidate:b,useTransitions:E});function $(V){e&&e(V),V.defaultPrevented||L(V)}let q=!(j.isExternal||r),Q=y.createElement("a",{...S,...B,href:(q?N:void 0)||j.absoluteURL||T,onClick:q?$:e,ref:UE(x,F),target:_,"data-discover":!I&&n==="render"?"true":void 0});return D&&!I?y.createElement(y.Fragment,null,Q,y.createElement($E,{page:T})):Q});Wt.displayName="Link";var KE=y.forwardRef(function({"aria-current":e="page",caseSensitive:n=!1,className:s="",end:i=!1,style:r,to:c,viewTransition:p,children:g,..._},f){let h=wc(c,{relative:_.relative}),v=qa(),b=y.useContext(wg),{navigator:S,basename:x}=y.useContext(cs),w=b!=null&&eI(h)&&p===!0,A=S.encodeLocation?S.encodeLocation(h).pathname:h.pathname,E=v.pathname,I=b&&b.navigation&&b.navigation.location?b.navigation.location.pathname:null;n||(E=E.toLowerCase(),I=I?I.toLowerCase():null,A=A.toLowerCase()),I&&x&&(I=ko(I,x)||I);const j=A!=="/"&&A.endsWith("/")?A.length-1:A.length;let T=E===A||!i&&E.startsWith(A)&&E.charAt(j)==="/",P=I!=null&&(I===A||!i&&I.startsWith(A)&&I.charAt(A.length)==="/"),N={isActive:T,isPending:P,isTransitioning:w},D=T?e:void 0,F;typeof s=="function"?F=s(N):F=[s,T?"active":null,P?"pending":null,w?"transitioning":null].filter(Boolean).join(" ");let B=typeof r=="function"?r(N):r;return y.createElement(Wt,{..._,"aria-current":D,className:F,ref:f,style:B,to:c,viewTransition:p},typeof g=="function"?g(N):g)});KE.displayName="NavLink";var WE=y.forwardRef(({discover:t="render",fetcherKey:e,navigate:n,reloadDocument:s,replace:i,state:r,method:c=Pp,action:p,onSubmit:g,relative:_,preventScrollReset:f,viewTransition:h,defaultShouldRevalidate:v,...b},S)=>{let{useTransitions:x}=y.useContext(cs),w=ZE(),A=tI(p,{relative:_}),E=c.toLowerCase()==="get"?"get":"post",I=typeof p=="string"&&D0.test(p),j=T=>{if(g&&g(T),T.defaultPrevented)return;T.preventDefault();let P=T.nativeEvent.submitter,N=P?.getAttribute("formmethod")||c,D=()=>w(P||T.currentTarget,{fetcherKey:e,method:N,navigate:n,replace:i,state:r,relative:_,preventScrollReset:f,viewTransition:h,defaultShouldRevalidate:v});x&&n!==!1?y.startTransition(()=>D()):D()};return y.createElement("form",{ref:S,method:E,action:A,onSubmit:s?g:j,...b,"data-discover":!I&&t==="render"?"true":void 0})});WE.displayName="Form";function XE(t){return`${t} must be used within a data router.  See https://reactrouter.com/en/main/routers/picking-a-router.`}function A7(t){let e=y.useContext(bu);return sn(e,XE(t)),e}function YE(t,{target:e,replace:n,mask:s,state:i,preventScrollReset:r,relative:c,viewTransition:p,defaultShouldRevalidate:g,useTransitions:_}={}){let f=si(),h=qa(),v=wc(t,{relative:c}
11);return y.useCallback(b=>{if(EE(b,e)){b.preventDefault();let S=n!==void 0?n:du(h)===du(v),x=()=>f(t,{replace:S,mask:s,state:i,preventScrollReset:r,relative:c,viewTransition:p,defaultShouldRevalidate:g});_?y.startTransition(()=>x()):x()}},[h,f,v,n,s,i,e,t,r,c,p,g,_])}var QE=0,JE=()=>`__${String(++QE)}__`;function ZE(){let{router:t}=A7("useSubmit"),{basename:e}=y.useContext(cs),n=fE(),s=t.fetch,i=t.navigate;return y.useCallback(async(r,c={})=>{let{action:p,method:g,encType:_,formData:f,body:h}=RE(r,e);if(c.navigate===!1){let v=c.fetcherKey||JE();await s(v,n,c.action||p,{defaultShouldRevalidate:c.defaultShouldRevalidate,preventScrollReset:c.preventScrollReset,formData:f,body:h,formMethod:c.method||g,formEncType:c.encType||_,flushSync:c.flushSync})}else await i(c.action||p,{defaultShouldRevalidate:c.defaultShouldRevalidate,preventScrollReset:c.preventScrollReset,formData:f,body:h,formMethod:c.method||g,formEncType:c.encType||_,replace:c.replace,state:c.state,fromRouteId:n,flushSync:c.flushSync,viewTransition:c.viewTransition})},[s,i,e,n])}function tI(t,{relative:e}={}){let{basename:n}=y.useContext(cs),s=y.useContext(Qs);sn(s,"useFormAction must be used inside a RouteContext");let[i]=s.matches.slice(-1),r={...wc(t||".",{relative:e})},c=qa();if(t==null){r.search=c.search;
11let p=new URLSearchParams(r.search),g=p.getAll("index");if(g.some(f=>f==="")){p.delete("index"),g.filter(h=>h).forEach(h=>p.append("index",h));let f=p.toString();r.search=f?`?${f}`:""}}return(!t||t===".")&&i.route.index&&(r.search=r.search?r.search.replace(/^\?/,"?index&"):"?index"),n!=="/"&&(r.pathname=r.pathname==="/"?n:Cs([n,r.pathname])),du(r)}function eI(t,{relative:e}={}){let n=y.useContext(m7);sn(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`.  Did you accidentally import `RouterProvider` from `react-router`?");let{basename:s}=A7("useViewTransitionState"),i=wc(t,{relative:e});if(!n.isTransitioning)return!1;let r=ko(n.currentLocation.pathname,s)||n.currentLocation.pathname,c=ko(n.nextLocation.pathname,s)||n.nextLocation.pathname;return Zp(i.pathname,c)!=null||Zp(i.pathname,r)!=null}var Ng=Zx(),$_={};const te=t=>typeof t=="string",wl=()=>{let t,e;const n=new Promise((s,i)=>{t=s,e=i});return n.resolve=t,n.reject=e,n},by=t=>t==null?"":""+t,nI=(t,e,n)=>{t.forEach(s=>{e[s]&&(n[s]=e[s])})},aI=/###/g,xy=t=>t&&t.indexOf("###")>-1?t.replace(aI,"."):t,Ay=t=>!t||te(t),Ql=(t,e,n)=>{const s=te(e)?e.split("."):e;let i=0;for(;i<s.length-1;){if(Ay(t))return{};const r=xy(s[i]);!t[r]&&n&&(t[r]=new n),Object.prototype.hasOwnProperty.call(t,r)?t=t[r]:t={},++i}return Ay(t)?{}:{obj:t,k:xy(s[i])}},Cy=(t,e,n)=>{const{obj:s,k:i}=Ql(t,e,Object);if(s!==void 0||e.length===1){s[i]=n;return}let r=e[e.length-1],c=e.slice(0,e.length-1),p=Ql(t,c,Object);for(;p.obj===void 0&&c.length;)r=`${c[c.length-1]}.${r}`,c=c.slice(0,c.length-1),p=Ql(t,c,Object),p?.obj&&typeof p.obj[`${p.k}.${r}`]<"u"&&(p.obj=void 0);p.obj[`${p.k}.${r}`]=n},sI=(t,e,n,s)=>{const{obj:i,k:r}=Ql(t,e,Object);i[r]=i[r]||[],i[r].push(n)},tg=(t,e)=>{const{obj:n,k:s}=Ql(t,e);if(n&&Object.prototype.hasOwnProperty.call(n,s))return n[s]},oI=(t,e,n)=>{const s=tg(t,n);return s!==void 0?s:tg(e,n)},C7=(t,e,n)=>{for(const s in e)s!=="__proto__"&&s!=="constructor"&&(s in t?te(t[s])||t[s]instanceof String||te(e[s])||e[s]instanceof String?n&&(t[s]=e[s]):C7(t[s],e[s],n):t[s]=e[s]);return t},wi=t=>t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var iI={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};const rI=t=>te(t)?t.replace(/[&<>"'\/]/g,e=>iI[e]):t;class uI{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const n=this.regExpMap.get(e);if(n!==void 0)return n;const s=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,s),this.regExpQueue.push(e),s}}const lI=[" ",",","?","!",";"],cI=new uI(20),dI=(t,e,n)=>{e=e||"",n=n||"";const s=lI.filter(c=>e.indexOf(c)<0&&n.indexOf(c)<0);if(s.length===0)return!0;const i=cI.getRegExp(`(${s.map(c=>c==="?"?"\\?":c).join("|")})`);let r=!i.test(t);if(!r){const c=t.indexOf(n);c>0&&!i.test(t.substring(0,c))&&(r=!0)}return r},Kf=(t,e,n=".")=>{if(!t)return;if(t[e])return Object.prototype.hasOwnProperty.call(t,e)?t[e]:void 0;const s=e.split(n);let i=t;for(let r=0;r<s.length;){if(!i||typeof i!="object")return;let c,p="";for(let g=r;g<s.length;++g)if(g!==r&&(p+=n),p+=s[g],c=i[p],c!==void 0){if(["string","number","boolean"].indexOf(typeof c)>-1&&g<s.length-1)continue;r+=g-r+1;break}i=c}return i},uc=t=>t?.replace(/_/g,"-"),pI={type:"logger",log(t){this.output("log",t)},warn(t){this.output("warn",t)},error(t){this.output("error",t)},output(t,e){console?.[t]?.apply?.(console,e)}};class eg{constructor(e,n={}){this.init(e,n)}init(e,n={}){this.prefix=n.prefix||"i18next:",this.logger=e||pI,this.options=n,this.debug=n.debug}log(...e){return this.forward(e,"log","",!0)}warn(...e){return this.forward(e,"warn","",!0)}error(...e){return this.forward(e,"error","")}deprecate(...e){return this.forward(e,"warn","WARNING DEPRECATED: ",!0)}forward(e,n,s,i){return i&&!this.debug?null:(te(e[0])&&(e[0]=`${s}${this.prefix} ${e[0]}`),this.logger[n](e))}create(e){return new eg(this.logger,{prefix:`${this.prefix}:${e}:`,...this.options})}clone(e){return e=e||this.options,e.prefix=e.prefix||this.prefix,new eg(this.logger,e)}}var Ws=new eg;class Rg{constructor(){this.observers={}}on(e,n){return e.split(" ").forEach(s=>{this.observers[s]||(this.observers[s]=new Map);const i=this.observers[s].get(n)||0;this.observers[s].set(n,i+1)}),this}
11off(e,n){if(this.observers[e]){if(!n){delete this.observers[e];return}this.observers[e].delete(n)}}emit(e,...n){this.observers[e]&&Array.from(this.observers[e].entries()).forEach(([i,r])=>{for(let c=0;c<r;c++)i(...n)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(([i,r])=>{for(let c=0;c<r;c++)i.apply(i,[e,...n])})}}class Sy extends Rg{constructor(e,n={ns:["translation"],defaultNS:"translation"}){super(),this.data=e||{},this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){const n=this.options.ns.indexOf(e);n>-1&&this.options.ns.splice(n,1)}getResource(e,n,s,i={}){const r=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator,c=i.ignoreJSONStructure!==void 0?i.ignoreJSONStructure:this.options.ignoreJSONStructure;let p;e.indexOf(".")>-1?p=e.split("."):(p=[e,n],s&&(Array.isArray(s)?p.push(...s):te(s)&&r?p.push(...s.split(r)):p.push(s)));const g=tg(this.data,p);return!g&&!n&&!s&&e.indexOf(".")>-1&&(e=p[0],n=p[1],s=p.slice(2).join(".")),g||!c||!te(s)?g:Kf(this.data?.[e]?.[n],s,r)}addResource(e,n,s,i,r={silent:!1}){const c=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator;let p=[e,n];s&&(p=p.concat(c?s.split(c):s)),e.indexOf(".")>-1&&(p=e.split("."),i=n,n=p[1]),this.addNamespaces(n),Cy(this.data,p,i),r.silent||this.emit("added",e,n,s,i)}addResources(e,n,s,i={silent:!1}){for(const r in s)(te(s[r])||Array.isArray(s[r]))&&this.addResource(e,n,r,s[r],{silent:!0});i.silent||this.emit("added",e,n,s)}addResourceBundle(e,n,s,i,r,c={silent:!1,skipCopy:!1}){let p=[e,n];e.indexOf(".")>-1&&(p=e.split("."),i=s,s=n,n=p[1]),this.addNamespaces(n);let g=tg(this.data,p)||{};c.skipCopy||(s=JSON.parse(JSON.stringify(s))),i?C7(g,s,r):g={...g,...s},Cy(this.data,p,g),c.silent||this.emit("added",e,n,s)}removeResourceBundle(e,n){this.hasResourceBundle(e,n)&&delete this.data[e][n],this.removeNamespaces(n),this.emit("removed",e,n)}hasResourceBundle(e,n){return this.getResource(e,n)!==void 0}getResourceBundle(e,n){return n||(n=this.options.defaultNS),this.getResource(e,n)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const n=this.getDataByLanguage(e);return!!(n&&Object.keys(n)||[]).find(i=>n[i]&&Object.keys(n[i]).length>0)}toJSON(){return this.data}}var S7={processors:{},addPostProcessor(t){this.processors[t.name]=t},handle(t,e,n,s,i){return t.forEach(r=>{e=this.processors[r]?.process(e,n,s,i)??e}),e}};const w7=Symbol("i18next/PATH_KEY");function gI(){const t=[],e=Object.create(null);let n;return e.get=(s,i)=>(n?.revoke?.(),i===w7?t:(t.push(i),n=Proxy.revocable(s,e),n.proxy)),Proxy.revocable(Object.create(null),e).proxy}function iu(t,e){const{[w7]:n}=t(gI()),s=e?.keySeparator??".",i=e?.nsSeparator??":";if(n.length>1&&i){const r=e?.ns,c=Array.isArray(r)?r:null;if(c&&c.length>1&&c.slice(1).includes(n[0]))return`${n[0]}${i}${n.slice(1).join(s)}`}return n.join(s)}const wy={},G_=t=>!te(t)&&typeof t!="boolean"&&typeof t!="number";class ng extends Rg{constructor(e,n={}){super(),nI(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","
11i18nFormat","utils"],e,this),this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Ws.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e,n={interpolation:{}}){const s={...n};if(e==null)return!1;const i=this.resolve(e,s);if(i?.res===void 0)return!1;const r=G_(i.res);return!(s.returnObjects===!1&&r)}extractFromKey(e,n){let s=n.nsSeparator!==void 0?n.nsSeparator:this.options.nsSeparator;s===void 0&&(s=":");const i=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator;let r=n.ns||this.options.defaultNS||[];const c=s&&e.indexOf(s)>-1,p=!this.options.userDefinedKeySeparator&&!n.keySeparator&&!this.options.userDefinedNsSeparator&&!n.nsSeparator&&!dI(e,s,i);if(c&&!p){const g=e.match(this.interpolator.nestingRegexp);if(g&&g.length>0)return{key:e,namespaces:te(r)?[r]:r};const _=e.split(s);(s!==i||s===i&&this.options.ns.indexOf(_[0])>-1)&&(r=_.shift()),e=_.join(i)}return{key:e,namespaces:te(r)?[r]:r}}translate(e,n,s){let i=typeof n=="object"?{...n}:n;if(typeof i!="object"&&this.options.overloadTranslationOptionHandler&&(i=this.options.overloadTranslationOptionHandler(arguments)),typeof i=="object"&&(i={...i}),i||(i={}),e==null)return"";typeof e=="function"&&(e=iu(e,{...this.options,...i})),Array.isArray(e)||(e=[String(e)]),e=e.map(q=>typeof q=="function"?iu(q,{...this.options,...i}):String(q));const r=i.returnDetails!==void 0?i.returnDetails:this.options.returnDetails,c=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator,{key:p,namespaces:g}=this.extractFromKey(e[e.length-1],i),_=g[g.length-1];let f=i.nsSeparator!==void 0?i.nsSeparator:this.options.nsSeparator;f===void 0&&(f=":");const h=i.lng||this.language,v=i.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(h?.toLowerCase()==="cimode")return v?r?{res:`${_}${f}${p}`,usedKey:p,exactUsedKey:p,usedLng:h,usedNS:_,usedParams:this.getUsedParamsDetails(i)}:`${_}${f}${p}`:r?{res:p,usedKey:p,exactUsedKey:p,usedLng:h,usedNS:_,usedParams:this.getUsedParamsDetails(i)}:p;const b=this.resolve(e,i);let S=b?.res;const x=b?.usedKey||p,w=b?.exactUsedKey||p,A=["[object Number]","[object Function]","[object RegExp]"],E=i.joinArrays!==void 0?i.joinArrays:this.options.joinArrays,I=!this.i18nFormat||this.i18nFormat.handleAsObject,j=i.count!==void 0&&!te(i.count),T=ng.hasDefaultValue(i),P=j?this.pluralResolver.getSuffix(h,i.count,i):"",N=i.ordinal&&j?this.pluralResolver.getSuffix(h,i.count,{ordinal:!1}):"",D=j&&!i.ordinal&&i.count===0,F=D&&i[`defaultValue${this.options.pluralSeparator}zero`]||i[`defaultValue${P}`]||i[`defaultValue${N}`]||i.defaultValue;let B=S;I&&!S&&T&&(B=F);const L=G_(B),$=Object.prototype.toString.apply(B);if(I&&B&&L&&A.indexOf($)<0&&!(te(E)&&Array.isArray(B))){if(!i.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const q=this.options.returnedObjectHandler?this.options.returnedObjectHandler(x,B,{...i,ns:g}):`key '${p} (${this.language})' returned an object instead of string.`;return r?(b.res=q,b.usedParams=this.getUsedParamsDetails(i),b):q}if(c){const q=Array.isArray(B),Q=q?[]:{},V=q?w:x;for(const U in B)if(Object.prototype.hasOwnProperty.call(B,U)){const H=`${V}${c}${U}`;T&&!S?Q[U]=this.translate(H,{...i,defaultValue:G_(F)?F[U]:void 0,joinArrays:!1,ns:g}):Q[U]=this.translate(H,{...i,joinArrays:!1,ns:g}),Q[U]===H&&(Q[U]=B[U])}S=Q}}else if(I&&te(E)&&Array.isArray(S))S=S.join(E),S&&(S=this.extendTranslation(S,e,i,s));else{let q=!1,Q=!1;!this.isValidLookup(S)&&T&&(q=!0,S=F),this.isValidLookup(S)||(Q=!0,S=p);const U=(i.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&Q?void 0:S,H=T&&F!==S&&this.options.updateMissing;if(Q||q||H){if(this.logger.log(H?"updateKey":"missingKey",h,_,p,H?F:S),c){const gt=this.resolve(p,{...i,keySeparator:!1});gt&&gt.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let st=[];const lt=this.languageUtils.getFallbackCodes(this.options.fallbackLng,i.lng||this.language);if(this.options.saveMissingTo==="fallback"&&lt&&lt[0])for(let gt=0;gt<lt.length;gt++)st.push(lt[gt]);else this.options.saveMissingTo==="all"?st=this.languageUtils.toResolveHierarchy(i.lng||this.language):st.push(i.lng||this.language);const M=(gt,rt,O)=>{const z=T&&O!==S?O:U;this.options.missingKeyHandler?this.options.missingKeyHandler(gt,_,rt,z,H,i):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(gt,_,rt,z,H,i),this.emit
11("missingKey",gt,_,rt,S)};this.options.saveMissing&&(this.options.saveMissingPlurals&&j?st.forEach(gt=>{const rt=this.pluralResolver.getSuffixes(gt,i);D&&i[`defaultValue${this.options.pluralSeparator}zero`]&&rt.indexOf(`${this.options.pluralSeparator}zero`)<0&&rt.push(`${this.options.pluralSeparator}zero`),rt.forEach(O=>{M([gt],p+O,i[`defaultValue${O}`]||F)})}):M(st,p,F))}S=this.extendTranslation(S,e,i,b,s),Q&&S===p&&this.options.appendNamespaceToMissingKey&&(S=`${_}${f}${p}`),(Q||q)&&this.options.parseMissingKeyHandler&&(S=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${_}${f}${p}`:p,q?S:void 0,i))}return r?(b.res=S,b.usedParams=this.getUsedParamsDetails(i),b):S}extendTranslation(e,n,s,i,r){if(this.i18nFormat?.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...s},s.lng||this.language||i.usedLng,i.usedNS,i.usedKey,{resolved:i});else if(!s.skipInterpolation){s.interpolation&&this.interpolator.init({...s,interpolation:{...this.options.interpolation,...s.interpolation}});const g=te(e)&&(s?.interpolation?.skipOnVariables!==void 0?s.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let _;if(g){const h=e.match(this.interpolator.nestingRegexp);_=h&&h.length}let f=s.replace&&!te(s.replace)?s.replace:s;if(this.options.interpolation.defaultVariables&&(f={...this.options.interpolation.defaultVariables,...f}),e=this.interpolator.interpolate(e,f,s.lng||this.language||i.usedLng,s),g){const h=e.match(this.interpolator.nestingRegexp),v=h&&h.length;_<v&&(s.nest=!1)}!s.lng&&i&&i.res&&(s.lng=this.language||i.usedLng),s.nest!==!1&&(e=this.interpolator.nest(e,(...h)=>r?.[0]===h[0]&&!s.context?(this.logger.warn(`It seems you are nesting recursively key: ${h[0]} in key: ${n[0]}`),null):this.translate(...h,n),s)),s.interpolation&&this.interpolator.reset()}const c=s.postProcess||this.options.postProcess,p=te(c)?[c]:c;return e!=null&&p?.length&&s.applyPostProcessor!==!1&&(e=S7.handle(p,e,n,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...i,usedParams:this.getUsedParamsDetails(s)},...s}:s,this)),e}resolve(e,n={}){let s,i,r,c,p;return te(e)&&(e=[e]),Array.isArray(e)&&(e=e.map(g=>typeof g=="function"?iu(g,{...this.options,...n}):g)),e.forEach(g=>{if(this.isValidLookup(s))return;const _=this.extractFromKey(g,n),f=_.key;i=f;let h=_.namespaces;this.options.fallbackNS&&(h=h.concat(this.options.fallbackNS));const v=n.count!==void 0&&!te(n.count),b=v&&!n.ordinal&&n.count===0,S=n.context!==void 0&&(te(n.context)||typeof n.context=="number")&&n.context!=="",x=n.lngs?n.lngs:this.languageUtils.toResolveHierarchy(n.lng||this.language,n.fallbackLng);h.forEach(w=>{this.isValidLookup(s)||(p=w,!wy[`${x[0]}-${w}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(p)&&(wy[`${x[0]}-${w}`]=!0,this.logger.warn(`key "${i}" for languages "${x.join(", ")}" won't get resolved as namespace "${p}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),x.forEach(A=>{if(this.isValidLookup(s))return;c=A;const E=[f];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(E,f,A,w,n);else{let j;v&&(j=this.pluralResolver.getSuffix(A,n.count,n));const T=`${this.options.pluralSeparator}zero`,P=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(v&&(n.ordinal&&j.indexOf(P)===0&&E.push(f+j.replace(P,this.options.pluralSeparator)),E.push(f+j),b&&E.push(f+T)),S){const N=`${f}${this.options.contextSeparator||"_"}${n.context}`;E.push(N),v&&(n.ordinal&&j.indexOf(P)===0&&E.push(N+j.replace(P,this.options.pluralSeparator)),E.push(N+j),b&&E.push(N+T))}}let I;for(;I=E.pop();)this.isValidLookup(s)||(r=I,s=this.getResource(A,w,I,n))}))})}),{res:s,usedKey:i,exactUsedKey:r,usedLng:c,usedNS:p}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e==="")}getResource(e,n,s,i={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,n,s,i):this.resourceStore.getResource(e,n,s,i)}
vendor: 3,125 bytes, line 11
11getUsedParamsDetails(e={}){const n=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],s=e.replace&&!te(e.replace);let i=s?e.replace:e;if(s&&typeof e.count<"u"&&(i.count=e.count),this.options.interpolation.defaultVariables&&(i={...this.options.interpolation.defaultVariables,...i}),!s){i={...i};for(const r of n)delete i[r]}return i}static hasDefaultValue(e){const n="defaultValue";for(const s in e)if(Object.prototype.hasOwnProperty.call(e,s)&&n===s.substring(0,n.length)&&e[s]!==void 0)return!0;return!1}}class Ey{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Ws.create("languageUtils")}getScriptPartFromCode(e){if(e=uc(e),!e||e.indexOf("-")<0)return null;const n=e.split("-");return n.length===2||(n.pop(),n[n.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(n.join("-"))}getLanguagePartFromCode(e){if(e=uc(e),!e||e.indexOf("-")<0)return e;const n=e.split("-");return this.formatLanguageCode(n[0])}formatLanguageCode(e){if(te(e)&&e.indexOf("-")>-1){let n;try{n=Intl.getCanonicalLocales(e)[0]}catch{}return n&&this.options.lowerCaseLng&&(n=n.toLowerCase()),n||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let n;return e.forEach(s=>{if(n)return;const i=this.formatLanguageCode(s);(!this.options.supportedLngs||this.isSupportedCode(i))&&(n=i)}),!n&&this.options.supportedLngs&&e.forEach(s=>{if(n)return;const i=this.getScriptPartFromCode(s);if(this.isSupportedCode(i))return n=i;const r=this.getLanguagePartFromCode(s);if(this.isSupportedCode(r))return n=r;n=this.options.supportedLngs.find(c=>{if(c===r)return c;if(!(c.indexOf("-")<0&&r.indexOf("-")<0)&&(c.indexOf("-")>0&&r.indexOf("-")<0&&c.substring(0,c.indexOf("-"))===r||c.indexOf(r)===0&&r.length>1))return c})}),n||(n=this.getFallbackCodes(this.options.fallbackLng)[0]),n}getFallbackCodes(e,n){if(!e)return[];if(typeof e=="function"&&(e=e(n)),te(e)&&(e=[e]),Array.isArray(e))return e;if(!n)return e.default||[];let s=e[n];return s||(s=e[this.getScriptPartFromCode(n)]),s||(s=e[this.formatLanguageCode(n)]),s||(s=e[this.getLanguagePartFromCode(n)]),s||(s=e.default),s||[]}toResolveHierarchy(e,n){const s=this.getFallbackCodes((n===!1?[]:n)||this.options.fallbackLng||[],e),i=[],r=c=>{c&&(this.isSupportedCode(c)?i.push(c):this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`))};return te(e)&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&r(this.formatLanguageCode(e)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&r(this.getScriptPartFromCode(e)),this.options.load!=="currentOnly"&&r(this.getLanguagePartFromCode(e))):te(e)&&r(this.formatLanguageCode(e)),s.forEac
11h(c=>{i.indexOf(c)<0&&r(this.formatLanguageCode(c))}),i}}const Iy={zero:0,one:1,two:2,few:3,many:4,other:5},Ny={select:t=>t===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class mI{constructor(e,n={}){this.languageUtils=e,this.options=n,this.logger=Ws.create("pluralResolver"),this.pluralRulesCache={}}clearCache(){this.pluralRulesCache={}}getRule(e,n={}){const s=uc(e==="dev"?"en":e),i=n.ordinal?"ordinal":"cardinal",r=JSON.stringify({cleanedCode:s,type:i});if(r in this.pluralRulesCache)return this.pluralRulesCache[r];let c;try{c=new Intl.PluralRules(s,{type:i})}catch{if(typeof Intl>"u")return this.logger.error("No Intl support, please use an Intl polyfill!"),Ny;if(!e.match(/-|_/))return Ny;const g=this.languageUtils.getLanguagePartFromCode(e);c=this.getRule(g,n)}return this.pluralRulesCache[r]=c,c}needsPlural(e,n={}){let s=this.getRule(e,n);return s||(s=this.getRule("dev",n)),s?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,n,s={}){return this.getSuffixes(e,s).map(i=>`${n}${i}`)}getSuffixes(e,n={}){let s=this.getRule(e,n);return s||(s=this.getRule("dev",n)),s?s.resolvedOptions().pluralCategories.sort((i,r)=>Iy[i]-Iy[r]).map(i=>`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${i}`):[]}getSuffix(e,n,s={}){const i=this.getRule(e,s);return i?`${this.options.prepend}${s.ordinal?`ordinal${this.options.prepend}`:""}${i.select(n)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix("dev",n,s))}}const Ry=(t,e,n,s=".",i=!0)=>{let r=oI(t,e,n);return!r&&i&&te(n)&&(r=Kf(t,n,s),r===void 0&&(r=Kf(e,n,s))),r},H_=t=>t.replace(/\$/g,"$$$$");class Ty{constructor(e={}){this.logger=Ws.create("interpolator"),this.options=e,this.format=e?.interpolation?.format||(n=>n),this.init(e)}init(e={}){e.interpolation||(e.interpolation={escapeValue:!0});const{escape:n,escapeValue:s,useRawValueToEscape:i,prefix:r,prefixEscaped:c,suffix:p,suffixEscaped:g,formatSeparator:_,unescapeSuffix:f,unescapePrefix:h,nestingPrefix:v,nestingPrefixEscaped:b,nestingSuffix:S,nestingSuffixEscaped:x,nestingOptionsSeparator:w,maxReplaces:A,alwaysFormat:E}=e.interpolation;this.escape=n!==void 0?n:rI,this.escapeValue=s!==void 0?s:!0,this.useRawValueToEscape=i!==void 0?i:!1,this.prefix=r?wi(r):c||"{{",this.suffix=p?wi(p):g||"}}",this.formatSeparator=_||",",this.unescapePrefix=f?"":h||"-",this.unescapeSuffix=this.unescapePrefix?"":f||"",this.nestingPrefix=v?wi(v):b||wi("$t("),this.nestingSuffix=S?wi(S):x||wi(")"),this.nestingOptionsSeparator=w||",",this.maxReplaces=A||1e3,this.alwaysFormat=E!==void 0?E:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(n,s)=>n?.source===s?(n.lastIndex=0,n):new RegExp(s,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(e,n,s,i){let r,c,p;const g=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},_=b=>{if(b.indexOf(this.formatSeparator)<0){const A=Ry(n,g,b,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(A,void 0,s,{...i,...n,interpolationkey:b}):A}const S=b.split(this.formatSeparator),x=S.shift().trim(),w=S.join(this.formatSeparator).trim();return this.format(Ry(n,g,x,this.options.keySeparator,this.options.ignoreJSONStructure),w,s,{...i,...n,interpolationkey:x})};this.resetRegExp();const f=i?.missingInterpolationHandler||this.options.missingInterpolationHandler,h=i?.interpolation?.skipOnVariables!==void 0?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:b=>H_(b)},{regex:this.regexp,safeValue:b=>this.escapeValue?H_(this.escape(b)):H_(b)}].forEach(b=>{for(p=0;r=b.regex.exec(e);){const S=r[1].trim();if(c=_(S),c===void 0)if(typeof f=="function"){const w=f(e,r,i);c=te(w)?w:""}else if(i&&Object.prototype.hasOwnProperty.call(i,S))c="";else if(h){c=r[0];continue}else this.logger.warn(`missed to pass in variable ${S} for interpolating ${e}`),c="";else!te(c)&&!this.useRawValueToEscape&&(c=by(c));const x=b.safeValue(c);if(e=e.replace(r[0],x),h?(b.regex.lastIndex+=c.length,b.regex.lastIndex-=r[0].length):b.regex.lastIndex=0,p++,p>=this.maxReplaces)break}}),e}nest(e,n,s={}){let i,r,c;const p=(g,_)=>{const f=this.nestingOptionsSeparator;if(g.indexOf(f)<0)return g;const h=g.split(new RegExp(`${wi(f)}[ ]*{`));let v=`{${h[1]}`;g=h[0],v=this.interpolate(v,c);const b=v.match(/'/g),S=v.match(/"/g);((b?.length??0)%2===0&&!S||(S?.length??0)%2!==0)&&(v=v.replace(/'/g,'"'));try{c=JSON.parse(v),_&&(c={..._,...c})}catch(x){return this.logger.warn(`failed parsing options string in nesting for key ${g}`,x),`${g}${f}${v}`}return c.defaultValue&&c.defaultValue.indexOf(this.prefix)>-1&&delete c.defaultValue,g};for(;i=this.nestingRegexp.exec(e);){let g=[];c={...s},c=c.replace&&!te(c.replace)?c.replace:c,c.applyPostProcessor=!1,delete c.defaultValue;const _=/{.*}/.test(i[1])?i[1].lastIndexOf("}")+1:i[1].indexOf(this.formatSeparator);if(_!==-1&&(g=i[1].slice(_).split(this.formatSeparator).map(f=>
vendor: 4,172 bytes, line 11
11f.trim()).filter(Boolean),i[1]=i[1].slice(0,_)),r=n(p.call(this,i[1].trim(),c),c),r&&i[0]===e&&!te(r))return r;te(r)||(r=by(r)),r||(this.logger.warn(`missed to resolve ${i[1]} for nesting ${e}`),r=""),g.length&&(r=g.reduce((f,h)=>this.format(f,h,s.lng,{...s,interpolationkey:i[1].trim()}),r.trim())),e=e.replace(i[0],r),this.regexp.lastIndex=0}return e}}const hI=t=>{let e=t.toLowerCase().trim();const n={};if(t.indexOf("(")>-1){const s=t.split("(");e=s[0].toLowerCase().trim();const i=s[1].substring(0,s[1].length-1);e==="currency"&&i.indexOf(":")<0?n.currency||(n.currency=i.trim()):e==="relativetime"&&i.indexOf(":")<0?n.range||(n.range=i.trim()):i.split(";").forEach(c=>{if(c){const[p,...g]=c.split(":"),_=g.join(":").trim().replace(/^'+|'+$/g,""),f=p.trim();n[f]||(n[f]=_),_==="false"&&(n[f]=!1),_==="true"&&(n[f]=!0),isNaN(_)||(n[f]=parseInt(_,10))}})}return{formatName:e,formatOptions:n}},jy=t=>{const e={};return(n,s,i)=>{let r=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(r={...r,[i.interpolationkey]:void 0});const c=s+JSON.stringify(r);let p=e[c];return p||(p=t(uc(s),i),e[c]=p),p(n)}},_I=t=>(e,n,s)=>t(uc(n),s)(e);class fI{constructor(e={}){this.logger=Ws.create("formatter"),this.options=e,this.init(e)}init(e,n={interpolation:{}}){this.formatSeparator=n.interpolation.formatSeparator||",";const s=n.cacheInBuiltFormats?jy:_I;this.formats={number:s((i,r)=>{const c=new Intl.NumberFormat(i,{...r});return p=>c.format(p)}),currency:s((i,r)=>{const c=new Intl.NumberFormat(i,{...r,style:"currency"});return p=>c.format(p)}),datetime:s((i,r)=>{const c=new Intl.DateTimeFormat(i,{...r});return p=>c.format(p)}),relativetime:s((i,r)=>{const c=new Intl.RelativeTimeFormat(i,{...r});return p=>c.format(p,r.range||"day")}),list:s((i,r)=>{const c=new Intl.ListFormat(i,{...r});return p=>c.format(p)})}}add(e,n){this.formats[e.toLowerCase().trim()]=n}addCached(e,n){this.formats[e.toLowerCase().trim()]=jy(n)}format(e,n,s,i={}){const r=n.split(this.formatSeparator);if(r.length>1&&r[0].indexOf("(")>1&&r[0].indexOf(")")<0&&r.find(p=>p.indexOf(")")>-1)){const p=r.findIndex(g=>g.indexOf(")")>-1);r[0]=[r[0],...r.splice(1,p)].join(this.formatSeparator)}return r.reduce((p,g)=>{const{formatName:_,formatOptions:f}=hI(g);if(this.formats[_]){let h=p;try{const v=i?.formatParams?.[i.interpolationkey]||{},b=v.locale||v.lng||i.locale||i.lng||s;h=this.formats[_](p,b,{...f,...i,...v})}catch(v){this.logger.warn(v)}return h}else this.logger.warn(`there was no format function for ${_}`);return p},e)}}const kI=(t,e)=>{t.pending[e]!==void 0&&(delete t.pending[e],t.pendingCount--)};class vI extends Rg{constructor(e,n,s,i={}){super(),this.backend=e,this.store=n,this.services=s,this.languageUtils=s.languageUtils,this.options=i,this.logger=Ws.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=i.maxParallelReads||10,this.readingCalls=0,this.maxRetries=i.maxRetries>=0?i.maxRetries:5,this.retryTimeout=i.retryTimeout>=1?i.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(s,i.backend,i)}queueLoad(e,n,s,i){const r={},c={},p={},g={};return e.forEach(_=>{let f=!0;n.forEach(h=>{const v=`${_}|${h}`;!s.reload&&this.store.hasResourceBundle(_,h)?this.state[v]=2:this.state[v]<0||(this.state[v]===1?c[v]===void 0&&(c[v]=!0):(this.state[v]=1,f=!1,c[v]===void 0&&(c[v]=!0),r[v]===void 0&&(r[v]=!0),g[h]===void 0&&(g[h]=!0)))}),f||(p[_]=!0)}),(Object.keys(r).length||Object.keys(c).length)&&this.queue.push({pending:c,pendingCount:Object.keys(c).length,loaded:{},errors:[],callback:i}),{toLoad:Object.keys(r),pending:Object.keys(c),toLoadLanguages:Object.keys(p),toLoadNamespaces:Object.keys(g)}}loaded(e,n,s){const i=e.split("|"),r=i[0],c=i[1];n&&this.emit("failedLoading",r,c,n),!n&&s&&this.store.addResourceBundle(r,c,s,void 0,void 0,{skipCopy:!0}),this.state[e]=n?-1:2,n&&s&&(this.state[e]=0);const p={};this.queue.forEach(g=>{sI(g.loaded,[r],c),kI(g,e),n&&g.errors.push(n),g.pendingCount===0&&!g.done&&(Object.keys(g.loaded).forEach(_=>{p[_]||(p[_]={});const f=g.loaded[_];f.length&&f.forEach(h=>{p[_][h]===void 0&&(p[_][h]=!0)})}),g.done=!0,g.errors.length?g.callback(g.errors):g.callback())}
11),this.emit("loaded",p),this.queue=this.queue.filter(g=>!g.done)}read(e,n,s,i=0,r=this.retryTimeout,c){if(!e.length)return c(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:n,fcName:s,tried:i,wait:r,callback:c});return}this.readingCalls++;const p=(_,f)=>{if(this.readingCalls--,this.waitingReads.length>0){const h=this.waitingReads.shift();this.read(h.lng,h.ns,h.fcName,h.tried,h.wait,h.callback)}if(_&&f&&i<this.maxRetries){setTimeout(()=>{this.read.call(this,e,n,s,i+1,r*2,c)},r);return}c(_,f)},g=this.backend[s].bind(this.backend);if(g.length===2){try{const _=g(e,n);_&&typeof _.then=="function"?_.then(f=>p(null,f)).catch(p):p(null,_)}catch(_){p(_)}return}return g(e,n,p)}prepareLoading(e,n,s={},i){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),i&&i();te(e)&&(e=this.languageUtils.toResolveHierarchy(e)),te(n)&&(n=[n]);const r=this.queueLoad(e,n,s,i);if(!r.toLoad.length)return r.pending.length||i(),null;r.toLoad.forEach(c=>{this.loadOne(c)})}load(e,n,s){this.prepareLoading(e,n,{},s)}reload(e,n,s){this.prepareLoading(e,n,{reload:!0},s)}loadOne(e,n=""){const s=e.split("|"),i=s[0],r=s[1];this.read(i,r,"read",void 0,void 0,(c,p)=>{c&&this.logger.warn(`${n}loading namespace ${r} for language ${i} failed`,c),!c&&p&&this.logger.log(`${n}loaded namespace ${r} for language ${i}`,p),this.loaded(e,c,p)})}saveMissing(e,n,s,i,r,c={},p=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(n)){this.logger.warn(`did not save key "${s}" as the namespace "${n}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(s==null||s==="")){if(this.backend?.create){const g={...c,isUpdate:r},_=this.backend.create.bind(this.backend);if(_.length<6)try{let f;_.length===5?f=_(e,n,s,i,g):f=_(e,n,s,i),f&&typeof f.then=="function"?f.then(h=>p(null,h)).catch(p):p(null,f)}catch(f){p(f)}else _(e,n,s,i,p,g)}!e||!e[0]||this.store.addResource(e[0],n,s,i)}}}const F_=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:t=>{let e={};if(typeof t[1]=="object"&&(e=t[1]),te(t[1])&&(e.defaultValue=t[1]),te(t[2])&&(e.tDescription=t[2]),typeof t[2]=="object"||typeof t[3]=="object"){const n=t[3]||t[2];Object.keys(n).forEach(s=>{e[s]=n[s]})}return e},interpolation:{escapeValue:!0,format:t=>t,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),Py=t=>(te(t.ns)&&(t.ns=[t.ns]),te(t.fallbackLng)&&(t.fallbackLng=[t.fallbackLng]),te(t.fallbackNS)&&(t.fallbackNS=[t.fallbackNS]),t.supportedLngs?.indexOf?.("cimode")<0&&(t.supportedLngs=t.supportedLngs.concat(["cimode"])),typeof t.initImmediate=="boolean"&&(t.initAsync=t.initImmediate),t),mp=()=>{},yI=t=>{Object.getOwnPropertyNames(Object.getPrototypeOf(t)).forEach(n=>{typeof t[n]=="function"&&(t[n]=t[n].bind(t))})},E7="__i18next_supportNoticeShown",bI=()=>!!(typeof globalThis<"u"&&globalThis[E7]||typeof process<"u"&&$_&&$_.I18NEXT_NO_SUPPORT_NOTICE||typeof process<"u"&&$_),xI=()=>{typeof globalThis<"u"&&(globalThis[E7]=!0)},AI=t=>!!(t?.modules?.backend?.name?.indexOf("Locize")>0||t?.modules?.backend?.constructor?.name?.indexOf("Locize")>0||t?.options?.backend?.backends&&t.options.backend.backends.some(e=>e?.name?.indexOf("Locize")>0||e?.constructor?.name?.indexOf("Locize")>0)||t?.options?.backend?.projectId||t?.options?.backend?.backendOptions&&t.options.backend.backendOptions.some(e=>e?.projectId));class Jl extends Rg{constructor(e={}
11,n){if(super(),this.options=Py(e),this.services={},this.logger=Ws,this.modules={external:[]},yI(this),n&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,n),this;setTimeout(()=>{this.init(e,n)},0)}}init(e={},n){this.isInitializing=!0,typeof e=="function"&&(n=e,e={}),e.defaultNS==null&&e.ns&&(te(e.ns)?e.defaultNS=e.ns:e.ns.indexOf("translation")<0&&(e.defaultNS=e.ns[0]));const s=F_();this.options={...s,...this.options,...Py(e)},this.options.interpolation={...s.interpolation,...this.options.interpolation},e.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=e.keySeparator),e.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=e.nsSeparator),typeof this.options.overloadTranslationOptionHandler!="function"&&(this.options.overloadTranslationOptionHandler=s.overloadTranslationOptionHandler),this.options.showSupportNotice!==!1&&!AI(this)&&!bI()&&(typeof console<"u"&&typeof console.info<"u"&&console.info("🌐 i18next is made possible by our own product, Locize — consider powering your project with managed localization (AI, CDN, integrations): https://locize.com 💙"),xI());const i=_=>_?typeof _=="function"?new _:_:null;if(!this.options.isClone){this.modules.logger?Ws.init(i(this.modules.logger),this.options):Ws.init(null,this.options);let _;this.modules.formatter?_=this.modules.formatter:_=fI;const f=new Ey(this.options);this.store=new Sy(this.options.resources,this.options);const h=this.services;h.logger=Ws,h.resourceStore=this.store,h.languageUtils=f,h.pluralResolver=new mI(f,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==s.interpolation.format&&this.logger.deprecate("init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting"),_&&(!this.options.interpolation.format||this.options.interpolation.format===s.interpolation.format)&&(h.formatter=i(_),h.formatter.init&&h.formatter.init(h,this.options),this.options.interpolation.format=h.formatter.format.bind(h.formatter)),h.interpolator=new Ty(this.options),h.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},h.backendConnector=new vI(i(this.modules.backend),h.resourceStore,h,this.options),h.backendConnector.on("*",(b,...S)=>{this.emit(b,...S)}),this.modules.languageDetector&&(h.languageDetector=i(this.modules.languageDetector),h.languageDetector.init&&h.languageDetector.init(h,this.options.detection,this.options)),this.modules.i18nFormat&&(h.i18nFormat=i(this.modules.i18nFormat),h.i18nFormat.init&&h.i18nFormat.init(this)),this.translator=new ng(this.services,this.options),this.translator.on("*",(b,...S)=>{this.emit(b,...S)}),this.modules.external.forEach(b=>{b.init&&b.init(this)})}if(this.format=this.options.interpolation.format,n||(n=mp),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const _=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);_.length>0&&_[0]!=="dev"&&(this.options.lng=_[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(_=>{this[_]=(...f)=>this.store[_](...f)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(_=>{this[_]=(...f)=>(this.store[_](...f),this)});const p=wl(),g=()=>{const _=(f,h)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),p.resolve(h),n(f,h)};if(this.languages&&!this.isInitialized)return _(null,this.t.bind(this));this.changeLanguage(this.options.lng,_)};return this.options.resources||!this.options.initAsync?g():setTimeout(g,0),p}loadResources(e,n=mp){let s=n;const i=te(e)?e:this.language;if(typeof e=="function"&&(s=e),!this.options.resources||this.options.partialBundledLanguages){if(i?.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return s();const r=[],c=p=>{if(!p||p==="cimode")return;
11this.services.languageUtils.toResolveHierarchy(p).forEach(_=>{_!=="cimode"&&r.indexOf(_)<0&&r.push(_)})};i?c(i):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(g=>c(g)),this.options.preload?.forEach?.(p=>c(p)),this.services.backendConnector.load(r,this.options.ns,p=>{!p&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),s(p)})}else s(null)}reloadResources(e,n,s){const i=wl();return typeof e=="function"&&(s=e,e=void 0),typeof n=="function"&&(s=n,n=void 0),e||(e=this.languages),n||(n=this.options.ns),s||(s=mp),this.services.backendConnector.reload(e,n,r=>{i.resolve(),s(r)}),i}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return e.type==="backend"&&(this.modules.backend=e),(e.type==="logger"||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type==="languageDetector"&&(this.modules.languageDetector=e),e.type==="i18nFormat"&&(this.modules.i18nFormat=e),e.type==="postProcessor"&&S7.addPostProcessor(e),e.type==="formatter"&&(this.modules.formatter=e),e.type==="3rdParty"&&this.modules.external.push(e),this}setResolvedLanguage(e){if(!(!e||!this.languages)&&!(["cimode","dev"].indexOf(e)>-1)){for(let n=0;n<this.languages.length;n++){const s=this.languages[n];if(!(["cimode","dev"].indexOf(s)>-1)&&this.store.hasLanguageSomeTranslations(s)){this.resolvedLanguage=s;break}}!this.resolvedLanguage&&this.languages.indexOf(e)<0&&this.store.hasLanguageSomeTranslations(e)&&(this.resolvedLanguage=e,this.languages.unshift(e))}}changeLanguage(e,n){this.isLanguageChangingTo=e;const s=wl();this.emit("languageChanging",e);const i=p=>{this.language=p,this.languages=this.services.languageUtils.toResolveHierarchy(p),this.resolvedLanguage=void 0,this.setResolvedLanguage(p)},r=(p,g)=>{g?this.isLanguageChangingTo===e&&(i(g),this.translator.changeLanguage(g),this.isLanguageChangingTo=void 0,this.emit("languageChanged",g),this.logger.log("languageChanged",g)):this.isLanguageChangingTo=void 0,s.resolve((..._)=>this.t(..._)),n&&n(p,(..._)=>this.t(..._))},c=p=>{!e&&!p&&this.services.languageDetector&&(p=[]);const g=te(p)?p:p&&p[0],_=this.store.hasLanguageSomeTranslations(g)?g:this.services.languageUtils.getBestMatchFromCodes(te(p)?[p]:p);_&&(this.language||i(_),this.translator.language||this.translator.changeLanguage(_),this.services.languageDetector?.cacheUserLanguage?.(_)),this.loadResources(_,f=>{r(f,_)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?c(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(c):this.services.languageDetector.detect(c):c(e),s}getFixedT(e,n,s){const i=(r,c,...p)=>{let g;typeof c!="object"?g=this.options.overloadTranslationOptionHandler([r,c].concat(p)):g={...c},g.lng=g.lng||i.lng,g.lngs=g.lngs||i.lngs,g.ns=g.ns||i.ns,g.keyPrefix!==""&&(g.keyPrefix=g.keyPrefix||s||i.keyPrefix);const _={...this.options,...g};typeof g.keyPrefix=="function"&&(g.keyPrefix=iu(g.keyPrefix,_));const f=this.options.keySeparator||".";let h;return g.keyPrefix&&Array.isArray(r)?h=r.map(v=>(typeof v=="function"&&(v=iu(v,_)),`${g.keyPrefix}${f}${v}`)):(typeof r=="function"&&(r=iu(r,_)),h=g.keyPrefix?`${g.keyPrefix}${f}${r}`:r),this.t(h,g)};return te(e)?i.lng=e:i.lngs=e,i.ns=n,i.keyPrefix=s,i}t(...e){return this.translator?.translate(...e)}exists(...e){return this.translator?.exists(...e)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e,n={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;
11if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const s=n.lng||this.resolvedLanguage||this.languages[0],i=this.options?this.options.fallbackLng:!1,r=this.languages[this.languages.length-1];if(s.toLowerCase()==="cimode")return!0;const c=(p,g)=>{const _=this.services.backendConnector.state[`${p}|${g}`];return _===-1||_===0||_===2};if(n.precheck){const p=n.precheck(this,c);if(p!==void 0)return p}return!!(this.hasResourceBundle(s,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||c(s,e)&&(!i||c(r,e)))}loadNamespaces(e,n){const s=wl();return this.options.ns?(te(e)&&(e=[e]),e.forEach(i=>{this.options.ns.indexOf(i)<0&&this.options.ns.push(i)}),this.loadResources(i=>{s.resolve(),n&&n(i)}),s):(n&&n(),Promise.resolve())}loadLanguages(e,n){const s=wl();te(e)&&(e=[e]);const i=this.options.preload||[],r=e.filter(c=>i.indexOf(c)<0&&this.services.languageUtils.isSupportedCode(c));return r.length?(this.options.preload=i.concat(r),this.loadResources(c=>{s.resolve(),n&&n(c)}),s):(n&&n(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!e)return"rtl";try{const i=new Intl.Locale(e);if(i&&i.getTextInfo){const r=i.getTextInfo();if(r&&r.direction)return r.direction}}catch{}const n=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],s=this.services?.languageUtils||new Ey(F_());return e.toLowerCase().indexOf("-latn")>1?"ltr":n.indexOf(s.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(e={},n){const s=new Jl(e,n);return s.createInstance=Jl.createInstance,s}cloneInstance(e={},n=mp){const s=e.forkResourceStore;s&&delete e.forkResourceStore;const i={...this.options,...e,isClone:!0},r=new Jl(i);if((e.debug!==void 0||e.prefix!==void 0)&&(r.logger=r.logger.clone(e)),["store","services","language"].forEach(p=>{r[p]=this[p]}),r.services={...this.services},r.services.utils={hasLoadedNamespace:r.hasLoadedNamespace.bind(r)},s){const p=Object.keys(this.store.data).reduce((g,_)=>(g[_]={...this.store.data[_]},g[_]=Object.keys(g[_]).reduce((f,h)=>(f[h]={...g[_][h]},f),g[_]),g),{});r.store=new Sy(p,i),r.services.resourceStore=r.store}if(e.interpolation){const g={...F_().interpolation,...this.options.interpolation,...e.interpolation},_={...i,interpolation:g};r.services.interpolator=new Ty(_)}return r.translator=new ng(r.services,i),r.translator.on("*",(p,...g)=>{r.emit(p,...g)}),r.init(i,n),r.translator.options=i,r.translator.backendConnector.services.utils={hasLoadedNamespace:r.hasLoadedNamespace.bind(r)},r}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const on=Jl.createInstance();on.createInstance;on.dir;on.init;on.loadResources;on.reloadResources;on.use;on.changeLanguage;on.getFixedT;on.t;on.exists;on.setDefaultNamespace;on.hasLoadedNamespace;on.loadNamespaces;on.loadLanguages;const CI=(t,e,n,s)=>{const i=[n,{code:e,...s||{}}];if(t?.services?.logger?.forward)return t.services.logger.forward(i,"warn","react-i18next::",!0);Vi(i[0])&&(i[0]=`react-i18next:: ${i[0]}`),t?.services?.logger?.warn?t.services.logger.warn(...i):console?.warn&&console.warn(...i)},My={},Wf=(t,e,n,s)=>{Vi(n)&&My[n]||(Vi(n)&&(My[n]=new Date),CI(t,e,n,s))},I7=(t,e)=>()=>{if(t.isInitialized)e();else{const n=()=>{setTimeout(()=>{t.off("initialized",n)},0),e()};t.on("initialized",n)}},Xf=(t,e,n)=>{t.loadNamespaces(e,I7(t,n))},Ly=(t,e,n,s)=>{if(Vi(n)&&(n=[n]),t.options.preload&&t.options.preload.indexOf(e)>-1)return Xf(t,n,s);n.forEach(i=>{t.options.ns.indexOf(i)<0&&t.options.ns.push(i)}),t.loadLanguages(e,I7(t,s))},SI=(t,e,n={})=>
11!e.languages||!e.languages.length?(Wf(e,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:e.languages}),!0):e.hasLoadedNamespace(t,{lng:n.lng,precheck:(s,i)=>{if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&s.services.backendConnector.backend&&s.isLanguageChangingTo&&!i(s.isLanguageChangingTo,t))return!1}}),Vi=t=>typeof t=="string",wI=t=>typeof t=="object"&&t!==null,EI=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,II={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&apos;":"'","&#39;":"'","&quot;":'"',"&#34;":'"',"&nbsp;":" ","&#160;":" ","&copy;":"©","&#169;":"©","&reg;":"®","&#174;":"®","&hellip;":"…","&#8230;":"…","&#x2F;":"/","&#47;":"/"},NI=t=>II[t],RI=t=>t.replace(EI,NI);let Yf={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:RI,transDefaultProps:void 0};const TI=(t={})=>{Yf={...Yf,...t}},jI=()=>Yf;let N7;const PI=t=>{N7=t},MI=()=>N7,LI={type:"3rdParty",init(t){TI(t.options.react),PI(t)}},OI=y.createContext();class DI{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(n=>{this.usedNamespaces[n]||(this.usedNamespaces[n]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}var U_={exports:{}},V_={};var Oy;function zI(){if(Oy)return V_;Oy=1;var t=Sg();function e(h,v){return h===v&&(h!==0||1/h===1/v)||h!==h&&v!==v}var n=typeof Object.is=="function"?Object.is:e,s=t.useState,i=t.useEffect,r=t.useLayoutEffect,c=t.useDebugValue;function p(h,v){var b=v(),S=s({inst:{value:b,getSnapshot:v}}),x=S[0].inst,w=S[1];return r(function(){x.value=b,x.getSnapshot=v,g(x)&&w({inst:x})},[h,b,v]),i(function(){return g(x)&&w({inst:x}),h(function(){g(x)&&w({inst:x})})},[h]),c(b),b}function g(h){var v=h.getSnapshot;h=h.value;try{var b=v();return!n(h,b)}catch{return!0}}function _(h,v){return v()}var f=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?_:p;return V_.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:f,V_}var Dy;function BI(){return Dy||(Dy=1,U_.exports=zI()),U_.exports}var $I=BI();const GI=(t,e)=>{if(Vi(e))return e;if(wI(e)&&Vi(e.defaultValue))return e.defaultValue;if(typeof t=="function")return"";if(Array.isArray(t)){const n=t[t.length-1];return typeof n=="function"?"":n}return t},HI={t:GI,ready:!1},FI=()=>()=>{},De=(t,e={})=>{const{i18n:n}=e,{i18n:s,defaultNS:i}=y.useContext(OI)||{},r=n||s||MI();r&&!r.reportNamespaces&&(r.reportNamespaces=new DI),r||Wf(r,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const c=y.useMemo(()=>({...jI(),...r?.options?.react,...e}),[r,e]),{useSuspense:p,keyPrefix:g}=c,_=i||r?.options?.defaultNS,f=Vi(_)?[_]:_||["translation"],h=y.useMemo(()=>f,f);r?.reportNamespaces?.addUsedNamespaces?.(h);const v=y.useRef(0),b=y.useCallback(F=>{if(!r)return FI;const{bindI18n:B,bindI18nStore:L}=c,$=()=>{v.current+=1,F()};return B&&r.on(B,$),L&&r.store.on(L,$),()=>{B&&B.split(" ").forEach(q=>r.off(q,$)),L&&L.split(" ").forEach(q=>r.store.off(q,$))}},[r,c]),S=y.useRef(),x=y.useCallback(()=>{if(!r)return HI;const F=!!(r.isInitialized||r.initializedStoreOnce)&&h.every(V=>SI(V,r,c)),B=e.lng||r.language,L=v.current,$=S.current;if($&&$.ready===F&&$.lng===B&&$.keyPrefix===g&&$.revision===L)return $;const Q={t:r.getFixedT(B,c.nsMode==="fallback"?h:h[0],g),ready:F,lng:B,keyPrefix:g,revision:L};return S.current=Q,Q},[r,h,g,c,e.lng]),[w,A]=y.useState(0),{t:E,ready:I}=$I.useSyncExternalStore(b,x,x);y.useEffect(()=>{if(r&&!I&&!p){const F=()=>A(B=>B+1);e.lng?Ly(r,e.lng,h,F):Xf(r,h,F)}},[r,e.lng,h,I,p,w]);const j=r||{},T=y.useRef(null),P=y.useRef(),N=F=>{const B=Object.getOwnPropertyDescriptors(F);B.__original&&delete B.__original;const L=Object.create(Object.getPrototypeOf(F),B);if(!Object.prototype.hasOwnProperty.call(L,"__original"))try{Object.defineProperty(L,"__original",{value:F,writable:!1,enumerable:!1,configurable:!1})}catch{}return L},D=y.useMemo(()=>{const F=j,B=F?.language;let L=F;F&&(T.current&&T.current.__original===F?P.current!==B?(L=N(F),T.current=L,P.current=B):L=T.current:(L=N(F),T.current=L,P.current=B));const $=!I&&!p?(...Q)=>(Wf(r,"USE_T_BEFORE_READY","useTranslation: t was called before ready. When using useSuspense: false, make sure to check the ready flag before using t."),E(...Q)):E,q=[$,L,I];
11return q.t=$,q.i18n=L,q.ready=I,q},[E,j,I,j.resolvedLanguage,j.language,j.languages]);if(r&&p&&!I)throw new Promise(F=>{const B=()=>F();e.lng?Ly(r,e.lng,h,B):Xf(r,h,B)});return D};function UI({onToggleSidebar:t}={}){const{i18n:e,t:n}=De(),[s,i]=y.useState(!1),[r,c]=y.useState(!1),[p,g]=y.useState(!1),_=y.useRef(null),f=y.useRef(null),h=y.useRef(null);return y.useEffect(()=>{function v(b){_.current&&!_.current.contains(b.target)&&i(!1)}return document.addEventListener("click",v),()=>document.removeEventListener("click",v)},[]),y.useEffect(()=>{function v(b){f.current&&(f.current.contains(b.target)||c(!1))}return document.addEventListener("click",v),()=>document.removeEventListener("click",v)},[]),y.useEffect(()=>{function v(b){h.current&&(h.current.contains(b.target)||g(!1))}return document.addEventListener("click",v),()=>document.removeEventListener("click",v)},[]),l.jsxs("header",{className:"header",children:[l.jsxs("div",{className:"header-left",children:[l.jsx("button",{className:"mobile-sidebar-toggle","aria-label":"Toggle sidebar",onClick:t,children:l.jsx("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:l.jsx("path",{d:"M3 12H21M3 6H21M3 18H21",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}),l.jsxs("nav",{className:"header-menu",children:[l.jsx(Wt,{className:"menu-link",to:"/news",children:n("header.news")}),l.jsx(Wt,{className:"menu-link",to:"/ai-blog",children:n("header.aiBlog",{defaultValue:"Kiến thức AI"})}),l.jsx(Wt,{className:"menu-link",to:"/recruit",children:n("header.recruit",{defaultValue:"Recruit"})}),l.jsxs("div",{className:"menu-item",ref:h,children:[l.jsxs("button",{className:`menu-button ${p?"open":""}`,onClick:()=>g(v=>!v),"aria-expanded":p,"aria-haspopup":"menu",children:[l.jsx("span",{children:n("header.coreValues")}),l.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",className:"caret",children:l.jsx("path",{d:"M6 9l6 6 6-6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})]}),p&&l.jsx("div",{className:"dropdown-panel",role:"menu",children:l.jsx("div",{className:"dropdown-group",children:l.jsxs("div",{className:"dropdown-group-items",children:[l.jsx(Wt,{className:"dropdown-item",to:"/core-values/ai-capabilities",role:"menuitem",onClick:()=>g(!1),children:l.jsxs("div",{className:"dropdown-info",children:[l.jsx("span",{className:"dropdown-name",children:n("header.coreValueTechnology")}),l.jsx("span",{className:"dropdown-desc",children:n("header.coreValueTechnologyDesc")})]})}),l.jsx(Wt,{className:"dropdown-item",to:"/core-values/ai-solutions",role:"menuitem",onClick:()=>g(!1),children:l.jsxs("div",{className:"dropdown-info",children:[l.jsx("span",{className:"dropdown-name",children:n("header.coreValueSolutions")}),l.jsx("span",{className:"dropdown-desc",children:n("header.coreValueSolutionsDesc")})]})}),l.jsx(Wt,{className:"dropdown-item",to:"/core-values/fintech",role:"menuitem",onClick:()=>g(!1),children:l.jsxs("div",{className:"dropdown-info",children:[l.jsx("span",{className:"dropdown-name",children:n("header.coreValueServices")}),l.jsx("span",{className:"dropdown-desc",children:n("header.coreValueServicesDesc")})]})}),l.jsx(Wt,{className:"dropdown-item",to:"/core-values/ai-driven-development",role:"menuitem",onClick:()=>g(!1),children:l.jsxs("div",{className:"dropdown-info",children:[l.jsx("span",{className:"dropdown-name",children:n("header.coreValueAiEnhanced")}),l.jsx("span",{className:"dropdown-desc",children:n("header.coreValueAiEnhancedDesc")})]})})]})})})]}),l.jsxs("div",{className:"menu-item",ref:_,children:[l.jsxs("button",{className:`menu-button ${s?"open":""}`,onClick:()=>i(v=>!v),"aria-expanded":s,"aria-haspopup":"menu",children:[l.jsx("span",{children:n("header.subsidiaries")}),l.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",className:"caret",children:l.jsx("path",{d:"M6 9l6 6 6-6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})]}),s&&l.jsxs("div",{className:"dropdown-panel subsidiaries-dropdown",role:"menu",children:[l.jsxs("div",{className:"dropdown-group",children:[l.jsx("div",{className:"dropdown-group-title",children:n("header.strategicPartners")}),l.jsx("div",{className:"dropdown-group-items",children:l.jsxs(Wt,{className:"dropdown-item",to:"https://milize.co.jp/",target:"_blank",role:"menuitem",onClick:()=>i(!1),children:[l.jsxs("svg",{className:"dropdown-logo w-[130px] md:w-auto",xmlns:"http://www.w3.org/2000/svg",width:"180",height:"40",viewBox:"0 0 180 40",fill:"none",children:[l.jsx("path",{className:"group-[.active]/header:fill-white transition-[fill]",fill:"#0B1F65",d:"M27.08 4.16c.08.608.164 1.216.23 1.828.111.969.098.96.887.4 1.142-.796 2.29-1.589 3.446-2.372.23-.159.341-.27.2-.595a2.73 2.73 0 0 1 0-2.25 1.825 1.825 0 0 1 2.595-.938c1.298.6 1.971 2.567 1.303 3.8a1.88 1.88 0 0 1-2.49.916 1.894 1.894 0 0 1-.611-.445c-.297-.3-.465-.339-.802-.048a75.313 75.313 0 0 0-3.907 3.61.468.468 0 0 0-.124.49c1.027 4.424 2.76 8.537 5.
116 12.147a25.618 25.618 0 0 0 7.53 6.442 42.07 42.07 0 0 0 2.92 1.484 3.462 3.462 0 0 1-.998.339c-1.993.585-4.062.88-6.144.88-2.565-.052-4.913-.708-6.822-2.51a10.994 10.994 0 0 1-2.915-5.014c-.943-3.131-1.098-6.35-.966-9.59.04-.951.102-1.902.156-2.91a9.321 9.321 0 0 0-1.134 1.074 170.144 170.144 0 0 0-11.62 12.588 55.261 55.261 0 0 0-5.954 8.538 15.922 15.922 0 0 0-1.772 4.618 5.546 5.546 0 0 0 .208 3.153c.022.066.036.136.045.207-1.843-.264-3.598-.634-4.918-2.034C.031 36.924-.08 35.634.04 34.3c.19-2.202 1.147-4.117 2.334-5.935a42.38 42.38 0 0 1 6.902-7.785 109.412 109.412 0 0 1 9.276-7.538 203.388 203.388 0 0 1 7.585-5.31.677.677 0 0 0 .336-.529c.146-1.012.324-2.02.488-3.029l.12-.013Z"}),l.jsx("path",{className:"group-[.active]/header:fill-white transition-[fill]",fill:"#0B1F65",d:"M23.253 15.46c-.31 1.11-.683 2.201-.988 3.297a17.37 17.37 0 0 0-.718 5.068c.062 2.316.762 4.364 2.658 5.848a10.25 10.25 0 0 0 4.59 1.867c.753.14 1.519.229 2.285.268-.279.18-.584.308-.912.374a35.106 35.106 0 0 1-6.645 1.594c-1.582.185-3.159.247-4.674-.374-1.515-.62-2.215-1.761-2.374-3.316-.226-2.113.416-4.055 1.267-5.94a40.661 40.661 0 0 1 4.775-7.718c.248-.321.492-.647.736-.969Z"}),l.jsx("path",{className:"group-[.active]/header:fill-white transition-[fill]",fill:"#212121",d:"M73.48 7.604h4.106a.42.42 0 0 1 .297.123.4.4 0 0 1 .124.3v23.587a.415.415 0 0 1-.39.44h-4.16a.407.407 0 0 1-.443-.365V16.225c0-.092-.026-.14-.07-.14-.045 0-.094.035-.142.105l-3.695 5.794a.546.546 0 0 1-.492.278h-2.073c-.2 0-.39-.101-.487-.277l-3.726-5.795c-.044-.07-.093-.097-.137-.088-.044.009-.071.066-.071.159v15.353a.415.415 0 0 1-.39.44h-4.16a.416.416 0 0 1-.443-.387V8.027c0-.242.2-.44.443-.44h4.107c.204 0 .39.105.492.281l5.267 8.133c.066.136.137.136.208 0l5.316-8.133a.548.548 0 0 1 .518-.264ZM87.513 31.913a.4.4 0 0 1-.124-.299V8.027a.42.42 0 0 1 .42-.423h4.107c.244 0 .443.198.443.44v23.57a.415.415 0 0 1-.39.44H87.81a.39.39 0 0 1-.297-.14ZM101.844 31.913a.405.405 0 0 1-.12-.299V8.027a.416.416 0 0 1 .39-.44h4.16c.111 0 .217.043.297.123.079.079.128.185.124.3v19.628a.153.153 0 0 0 .133.172h11.522a.43.43 0 0 1 .301.123c.08.08.12.185.12.295v3.386a.41.41 0 0 1-.372.44H102.145a.399.399 0 0 1-.301-.14ZM124.481 31.913a.398.398 0 0 1-.124-.299V8.027c0-.234.186-.427.421-.44h4.106c.23 0 .421.18.421.409V31.614a.409.409 0 0 1-.372.44h-4.155a.389.389 0 0 1-.297-.14ZM137.793 31.913a.425.425 0 0 1-.124-.299v-3.769c0-.19.066-.37.177-.524l11.34-15.283a.098.098 0 0 0 0-.141.186.186 0 0 0-.159-.07h-10.933a.42.42 0 0 1-.443-.388V8.027c0-.242.199-.44.443-.44h16.253c.111 0 .217.043.297.123.08.079.129.185.124.3v3.768a.849.849 0 0 1-.164.56l-11.349 15.265a.125.125 0 0 0 0 .136c.026.049.079.08.137.07h10.955a.42.42 0 0 1 .421.42v3.385a.418.418 0 0 1-.39.44h-16.284a.399.399 0 0 1-.301-.14ZM179.855 11.708a.417.417 0 0 1-.297.119H168.04a.155.155 0 0 0-.177.127v5.46a.154.154 0 0 0 .133.172H175.571a.447.447 0 0 1 .421.418v3.386c0 .11-.04.22-.124.295a.397.397 0 0 1-.297.123h-7.531a.155.155 0 0 0-.177.128v5.702a.154.154 0 0 0 .133.172H179.558c.244 0 .443.198.443.44v3.386a.417.417 0 0 1-.421.418h-16.24a.416.416 0 0 1-.443-.387V8.027a.421.421 0 0 1 .421-.423h16.222c.244 0 .443.198.443.44v3.382a.452.452 0 0 1-.128.282Z"})]}),l.jsxs("div",{className:"dropdown-info",children:[l.jsx("span",{className:"dropdown-name",children:"MILIZE"}),l.jsx("span",{className:"dropdown-desc",children:"AI & Fintech Solutions"})]})]})})]}),l.jsx("div",{className:"dropdown-divider"}),l.jsxs("div",{className:"dropdown-group",children:[l.jsx("div",{className:"dropdown-group-title",children:n("header.subsidiaryCompanies")}),l.jsxs("div",{className:"dropdown-group-items",children:[l.jsxs(Wt,{className:"dropdown-item",to:"https://www.haibazo.com",target:"_blank",role:"menuitem",onClick:()=>i(!1),children:[l.jsx("img",{className:"dropdown-logo",src:"/3 2.png",alt:"Haibazo Danang"}),l.jsxs("div",{className:"dropdown-info",children:[l.jsx("span",{className:"dropdown-name",children:"Haibazo Danang"}),l.jsx("span",{className:"dropdown-desc",children:"Software Development & Services"})]})]}),l.jsxs(Wt,{className:"dropdown-item",to:"https://mirai-plus.co.jp/",target:"_blank",role:"menuitem",onClick:()=>i(!1),children:[l.jsx("img",{className:"dropdown-logo",src:"/Full black.png",alt:"Mirai Plus Japan"}),l.jsxs("div",{className:"dropdown-info",children:[l.jsx("span",{className:"dropdown-name",children:e.resolvedLanguage==="ja"?"みらいプラス":"Mirai Plus Japan"}),l.jsx("span",{className:"dropdown-desc",children:"Japan Headquarters & Consulting"})]})]}),l.jsxs(Wt,{className:"dropdown-item",to:"https://tfascoring.com/",target:"_blank",role:"menuitem",onClick:()=>i(!1),children:[l.jsx("img",{className:"dropdown-logo",src:"/Logo TFA - Final-08.png",alt:"TFA AI Scoring"}),l.jsxs("div",{className:"dropdown-info",children:[l.jsx("span",{className:"dropdown-name",children:"TFA AI Scoring"}),l.jsx("span",{className:"dropdown-desc",children:"Alternative Data AI Scoring"})]})]})]})]}),l.jsx("div",{className:"dropdown-divider"}),l.jsxs("div",{className:"dropdown-group",children:[l.jsx("div",{className:"dropdown-group-title",children:n("header.associatedCompanies")}),l.jsxs("div",{className:"dropdown-group-items",children:[l.jsxs(Wt,{className:"dropdown-item",to:"https://exchain.jp/",target:"_blank",role:"menuitem",onClick:()=>i(!1),children:[l.jsx("img",{className:"dropdown-logo",src:"/Exchain-02.png",alt:"Exchain Japan"}),l.jsxs("div",{className:"dropdown-info",children:[l.jsx("span",{className:"dropdown-name",children:"Exchain Japan"}),l.jsx("span",{className:"dropdown-desc",children:"Advanced Blockchain/AI Solutions"})]})]}),l.jsxs(Wt,{className:"dropdown-item",to:"",target:"_blank",role:"menuitem",onClick:()=>i(!1),children:[l.jsx("img",{className:"dropdown-logo",src:"/Mirai-bg.png",alt:""}),l.jsxs("div",{className:"dropdown-info",children:[l.jsx("span",{className:"dropdown-name",children:"MiR.AI"}),l.jsx("span",{className:"dropdown-desc",children:"AI Solutions for Fintech"})]})]})]})]})]})]}),l.jsx(Wt,{className:"menu-link",to:"/contact",children:n("header.contact")})]})]}),l.jsx("div",{className:"header-right",children:l.jsxs("div",{className:"menu-item language-selector",ref:f,children:[l.jsxs("button",{className:`menu-button ${r?"open":""}`,onClick:()=>c(v=>!v),"aria-expanded":r,"aria-haspopup":"menu",children:[l.jsx("span",{children:e.resolvedLanguage==="ja"?"Ja":"Vi"}),l.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",className:"caret",children:l.jsx("path",{d:"M6 9l6 6 6-6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})]}),r&&l.jsxs("div",{className:"dropdown-panel",role:"menu",style:{animation:"dropdownFadeIn 260ms cubic-bezier(0.22, 0.61, 0.36, 1)",willChange:"opacity, transform",transformOrigin:"top center"},children:[l.jsxs("button",{className:"dropdown-item",role:"menuitem",onClick:()=>{e.changeLanguage("en"),c(!1)},style:{background:(e.resolvedLanguage||e.language)==="en"?"#f8fafc":"transparent"},children:[l.jsx("span",{children:"Vietnamese"}),(e.resolvedLanguage||e.language)==="en"&&l.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",style:{marginLeft:"auto"},children:l.jsx("path",{d:"M20 6L9 17l-5-5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})]}),l.jsxs("button",{className:"dropdown-item",role:"menuitem",onClick:()=>{e.changeLanguage("ja"),c(!1)},style:{background:(e.resolvedLanguage||e.language)==="ja"?"#f8fafc":"transparent"},children:[l.jsx("span",{children:"日本語"}),(e.resolvedLanguage||e.language)==="ja"&&l.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",style:{marginLeft:"auto"},children:l.jsx("path",{d:"M20 6L9 17l-5-5",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})]})]})]})})]})}const au=()=>{const t=()=>{try{window.scrollTo({top:0,left:0,behavior:"smooth"})}catch{window.scrollTo(0,0)}document.documentElement&&(document.documentElement.scrollTop=0),document.body&&(document.body.scrollTop=0);const e=document.querySelector(".main"),n=document.querySelector(".page"),s=document.querySelector(".content-shell");if(e&&e.scrollTop>0&&(e.scrollTop=0),n&&n.scrollTop>0&&(n.scrollTop=0),s&&s.scrollTop>0&&(s.scrollTop=0),document.documentElement)try{document.documentElement.scrollIntoView({behavior:"smooth",block:"start"})}catch{document.documentElement.scrollIntoView(!0)}};t(),setTimeout(t,0),setTimeout(t,100),requestAnimationFrame(t)};function VI({isOpen:t,onToggle:e}){const{t:n}=De(),[s,i]=y.useState([]),[r,c]=y.useState(!1),[p,g]=y.useState(!1),_=B=>{i(L=>L.includes(B)?L.filter($=>$!==B):[...L,B])},f=[{title:n("sidebar.aboutUs"),items:[{label:n("sidebar.companyInformation"),to:"/about/company-information"},{label:n("sidebar.ourExpert"),to:"/about/our-expert"},{label:n("sidebar.companyCulture"),to:"/about/company-culture"},{label:n("sidebar.forTheCommunity"),to:"/about/for-the-community"}]},{title:n("sidebar.coreValues"),items:[{label:n("sidebar.coreValueTechnology",{defaultValue:"Technology"}),to:"/core-values/ai-capabilities"},{label:n("sidebar.coreValueSolutions",{defaultValue:"AI Solutions"}),to:"/core-values/ai-solutions"},{label:n("sidebar.coreValueServices",{defaultValue:"Financial Services"}),to:"/core-values/fintech"}
11,{label:n("sidebar.aiEnhanced"),to:"/core-values/ai-driven-development"}]},{title:n("sidebar.products"),items:[{label:"Alternative Data AI Scoring",subItems:[{label:"Atobar AI",to:"/products/atobar-ai"},{label:"AD Housing",to:"/products/ad-housing"},{label:"AD Passport",to:"/products/ad-passport"},{label:"Live now, Pay later",to:"/products/live-now-pay-later"}]},{label:"AppOS",to:"/products/appos"},{label:"CVAgent",to:"/products/cv-agent"},{label:"BrSE.ai",href:"https://brse.ai/"},{label:"GenSlide.jp",href:"https://genslide.jp/"}]}],{pathname:h}=qa(),v=si(),[b,S]=y.useState(!1),[x,w]=y.useState(null),[A,E]=y.useState(!1);y.useEffect(()=>{(()=>{if(h==="/"){x!==null?(E(!0),setTimeout(()=>{w(null),E(!1)},300)):w(null);return}for(let L=0;L<f.length;L++){if(L===3)continue;if(f[L].items.some(q=>!!(q.to===h||q.subItems&&q.subItems.some(Q=>Q.to===h)))){x!==L&&(x!==null?(E(!0),setTimeout(()=>{w(L),E(!1)},300)):w(L));return}}x!==null?(E(!0),setTimeout(()=>{w(null),E(!1)},300)):w(null)})()},[h]),y.useEffect(()=>{const B=()=>{S(window.innerWidth<=1024)};return B(),window.addEventListener("resize",B),()=>window.removeEventListener("resize",B)},[]),y.useEffect(()=>(b&&t?(document.body.style.overflow="hidden",document.body.style.touchAction="none"):(document.body.style.overflow="",document.body.style.touchAction=""),()=>{document.body.style.overflow="",document.body.style.touchAction=""}),[b,t]);const I=(B,L,$)=>{$!==void 0&&($===3?x!==null&&(E(!0),setTimeout(()=>{w(null),E(!1)},300)):w($)),L&&h===L&&B.preventDefault(),au(),b&&t&&e()},j=()=>{x!==null&&(E(!0),setTimeout(()=>{w(null),E(!1)},300)),au(),v("/"),b&&t&&e()},T=B=>{w(B)},P=()=>{E(!0),setTimeout(()=>{w(null),E(!1)},300)},N=()=>l.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:l.jsx("path",{d:"M9 18l6-6-6-6"})}),D=()=>{if(r&&!p){const B=[{label:"MILIZE",href:"https://milize.co.jp/"},{label:"Haibazo Danang",href:"https://www.haibazo.com"},{label:"Mirai Plus Japan",href:"https://mirai-plus.co.jp/"},{label:"TFA AI Scoring",href:"https://tfascoring.com/"},{label:"Exchain Japan",href:"https://exchain.jp/"},{label:"MiR.AI",href:""}];return l.jsxs("div",{className:"mobile-sidebar-panel sidebar-focused-content",children:[l.jsxs("button",{className:"mobile-sidebar-back",onClick:()=>{g(!0),setTimeout(()=>{c(!1),g(!1)},300)},children:[l.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:l.jsx("path",{d:"M19 12H5M12 19l-7-7 7-7"})}),l.jsx("span",{children:n("sidebar.back",{defaultValue:"Back"})})]}),l.jsx("div",{className:"mobile-sidebar-section-title",children:n("header.subsidiaries")}),l.jsx("div",{className:"mobile-sidebar-items",children:B.map(L=>l.jsxs("a",{href:L.href,target:"_blank",rel:"noopener noreferrer",className:"mobile-sidebar-item sidebar-focused-item",children:[l.jsx("span",{children:L.label}),l.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"#94a3b8",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:l.jsx("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6M15 3h6v6M10 14L21 3"})})]},L.label))})]})}if(x!==null&&!A){const B=f[x];return l.jsxs("div",{className:"mobile-sidebar-panel sidebar-focused-content",children:[l.jsxs("button",{className:"mobile-sidebar-back",onClick:P,children:[l.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:l.jsx("path",{d:"M19 12H5M12 19l-7-7 7-7"})}),l.jsx("span",{children:n("sidebar.backToHome")})]}),l.jsx("div",{className:"mobile-sidebar-section-title",children:B.title}),l.jsx("div",{className:"mobile-sidebar-items",children:B.items.map(L=>l.jsxs("div",{children:[L.href?l.jsx("a",{href:L.href,target:"_blank",rel:"noopener noreferrer",className:"mobile-sidebar-item sidebar-focused-item",onClick:()=>{b&&t&&e()},children:l.jsx("span",{children:L.label})}):L.to?l.jsx(Wt,{to:L.to,className:"mobile-sidebar-item sidebar-focused-item","aria-current":h===L.to?"page":void 0,onClick:$=>I($,L.to,x),children:l.jsx("span",{children:L.label})}):l.jsxs("div",{className:`mobile-sidebar-item has-sub-items ${s.includes(L.label)?"expanded":""}`,onClick:()=>L.subItems&&_(L.label),children:[l.jsx("span",{children:L.label}),L.subItems&&l.jsx("svg",{className:`sub-items-caret ${s.includes(L.label)?"expanded":""}`,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:l.jsx("path",{d:"M6 9l6 6 6-6"})})]}),L.subItems&&s.includes(L.label)&&l.jsx("div",{className:"sub-items-container expanded",children:L.subItems.map($=>l.jsx(Wt,{to:$.to,className:"mobile-sidebar-item sub-item-link sidebar-focused-item","aria-current":h===$.to?"page":void 0,onClick:q=>I(q,$.to,x),children:$.label},$.label))})]},L.label))})]})}if(x!==null&&A){const B=f[x];return l.jsxs("div",{className:"mobile-sidebar-panel sidebar-focused-content slide-out",style:{position:"absolute",width:"100%"},children:[l.jsxs("button",{className:"mobile-sidebar-back",children:[l.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:l.jsx("path",{d:"M19 12H5M12 19l-7-7 7-7"})}),l.jsx("span",{children:n("sidebar.backToHome")})]}),l.jsx("div",{className:"mobile-sidebar-section-title",children:B.title}),l.jsx("div",{className:"mobile-sidebar-items",children:B.items.map(L=>l.jsx("div",{children:l.jsx("div",{className:"mobile-sidebar-item sidebar-focused-item slide-out",children:l.jsx("span",{children:L.label})})},L.label))})]})}return l.jsxs("div",{className:"mobile-sidebar-panel",children:[f.map(({title:B},L)=>l.jsxs("button",{className:"mobile-sidebar-row",onClick:()=>T(L),children:[l.jsx("span",{className:"mobile-sidebar-row-label",children:B}),l.jsx(N,{})]},B)),l.jsx("div",{className:"mobile-sidebar-divider"}),l.jsx(Wt,{to:"/news",className:"mobile-sidebar-link",onClick:B=>I(B,"/news"),children:n("header.news")}),l.jsx(Wt,{to:"/ai-blog",className:"mobile-sidebar-link",onClick:B=>I(B,"/ai-blog"),children:n("header.aiBlog",{defaultValue:"Kiến thức AI"})}),l.jsx(Wt,{to:"/recruit",className:"mobile-sidebar-link",onClick:B=>I(B,"/recruit"),children:n("header.recruit",{defaultValue:"Recruit"})}),l.jsxs("button",{className:"mobile-sidebar-row",onClick:()=>c(!0),children:[l.jsx("span",{className:"mobile-sidebar-row-label",children:n("header.subsidiaries")}),l.jsx(N,{})]}),l.jsx(Wt,{to:"/contact",className:"mobile-sidebar-link",onClick:B=>I(B,"/contact"),children:n("header.contact")}),l.jsx("div",{className:"mobile-sidebar-divider"})]})},F=()=>x!==null&&!A?l.jsxs("div",{className:"sidebar-focused-content",children:[l.jsxs(Wt,{to:"/",className:"side-link side-link-home",onClick:j,style:{display:"flex",alignItems:"center",gap:"0.5rem",marginBottom:"1rem",paddingLeft:"0"},children:[l.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:l.jsx("path",{d:"M19 12H5M12 19l-7-7 7-7"})}),n("sidebar.backToHome")]}),f[x]&&x!==3&&l.jsxs("div",{className:"side-section",children:[l.jsx("div",{className:"side-title",children:f[x].title}),l.jsx("div",{children:f[x].items.map(B=>l.jsxs("div",{children:[B.href?l.jsx("a",{href:B.href,target:"_blank",rel:"noopener noreferrer",className:"side-link sidebar-focused-item",children:B.label}):B.to?l.jsx(Wt,{to:B.to,className:"side-link sidebar-focused-item","aria-current":h===B.to?"page":void 0,onClick:L=>I(L,B.to,x),children:B.label}):l.jsx("div",{className:"side-label-only",style:{cursor:"default"},children:B.label}),B.subItems&&l.jsx("div",{className:"sub-items-container expanded",style:{maxHeight:"none",opacity:1},children:B.subItems.map(L=>l.jsx(Wt,{to:L.to,className:"side-link sub-item-link sidebar-focused-item","aria-current":h===L.to?"page":void 0,onClick:$=>I($,L.to,x),children:L.label},L.label))})]},B.label))})]}),b&&f[3]&&l.jsxs("div",{className:"side-section side-section-global",children:[l.jsx("div",{className:"side-title",children:f[3].title}),l.jsx("div",{children:f[3].items.map(B=>l.jsx(Wt,{to:B.to||"#",className:"side-link sidebar-focused-item","aria-current":h===B.to?"page":void 0,onClick:L=>I(L,B.to,3),children:B.label},B.label))})]})]}):l.jsxs(l.Fragment,{children:[x!==null&&A&&l.jsxs("div",{className:"sidebar-focused-content slide-out",style:{position:"absolute",width:"100%"},children:[l.jsxs(Wt,{to:"/",className:"side-link side-link-home slide-out",onClick:j,style:{display:"flex",alignItems:"center",gap:"0.5rem",marginBottom:"1rem",paddingLeft:"0"},children:[l.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:l.jsx("path",{d:"M19 12H5M12 19l-7-7 7-7"})}),n("sidebar.backToHome")]}),f[x]&&l.jsxs("div",{className:"side-section",children:[l.jsx("div",{className:"side-title",children:f[x].title}),l.jsx("div",{children:f[x].items.map(B=>l.jsxs("div",{children:[B.href?l.jsx("a",{href:B.href,target:"_blank",rel:"noopener noreferrer",className:"side-link sidebar-focused-item slide-out",children:B.label}):B.to?l.jsx(Wt,{to:B.to,className:"side-link sidebar-focused-item slide-out","aria-current":h===B.to?"page":void 0,onClick:L=>I(L,B.to,x),children:B.label}):l.jsx("div",{className:"side-label-only slide-out",style:{cursor:"default"},children:B.label}),B.subItems&&l.jsx("div",{className:"sub-items-container expanded slide-out",style:{maxHeight:"none",opacity:1},children:B.subItems.map(L=>l.jsx(Wt,{to:L.to,className:"side-link sub-item-link sidebar-focused-item slide-out","aria-current":h===L.to?"page":void 0,onClick:$=>I($,L.to,x),children:L.label},L.label))})]},B.label))})]})]}),f.map(({title:B,items:L},$)=>l.jsxs("div",{className:"side-section",children:[l.jsx("div",{className:"side-title",children:B}),l.jsx("div",{children:L.map(q=>l.jsxs("div",{children:[q.href?l.jsx("a",{href:q.href,target:"_blank",rel:"noopener noreferrer",className:"side-link",children:q.label}):q.to?l.jsx(Wt,{to:q.to,className:"side-link","aria-current":h===q.to?"page":void 0,onClick:Q=>I(Q,q.to,$),children:q.label}):l.jsxs("div",{className:`side-label-only ${q.subItems?"has-sub-items":""}`,onClick:()=>q.subItems&&_(q.label),children:[l.jsx("span",{className:"side-link",children:q.label}),q.subItems&&l.jsx("svg",{className:`sub-items-caret ${s.includes(q.label)?"expanded":""}`,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:l.jsx("path",{d:"M6 9l6 6 6-6"})})]}),q.subItems&&s.includes(q.label)&&l.jsx("div",{className:"sub-items-container expanded",children:q.subItems.map(Q=>l.jsx(Wt,{to:Q.to,className:"side-link sub-item-link","aria-current":h===Q.to?"page":void 0,onClick:V=>I(V,Q.to,$),children:Q.label},Q.label))})]},q.label))})]},B))]});return l.jsxs("aside",{className:`sidebar ${t?"sidebar-open":"sidebar-closed"}`,style:{overflow:t?"auto":"hidden",overscrollBehavior:"contain",WebkitOverflowScrolling:"touch"},children:[l.jsxs("div",{className:"sidebar-header",children:[l.jsx(Wt,{to:"/",className:"logo",onClick:()=>{au(),b&&t&&e()},children:l.jsx("img",{src:"/LOGO_NGANG(2).svg",alt:"Logo",style:{height:"40px",width:"auto"}})}),l.jsxs("button",{className:"sidebar-toggle ease-curve-sidebar","aria-label":"Toggle sidebar",onClick:e,children:[l.jsx("svg",{className:"sidebar-toggle-icon-desktop",width:"20",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:l.jsx("path",{d:"M9.35719 3H14.6428C15.7266 2.99999 16.6007 2.99998 17.3086 3.05782C18.0375 3.11737 18.6777 3.24318 19.27 3.54497C20.2108 4.02433 20.9757 4.78924 21.45
115 5.73005C21.7568 6.32234 21.8826 6.96253 21.9422 7.69138C22 8.39925 22 9.27339 22 10.3572V13.6428C22 14.7266 22 15.6008 21.9422 16.3086C21.8826 17.0375 21.7568 17.6777 21.455 18.27C20.9757 19.2108 20.2108 19.9757 19.27 20.455C18.6777 20.7568 18.0375 20.8826 17.3086 20.9422C16.6008 21 15.7266 21 14.6428 21H9.35717C8.27339 21 7.39925 21 6.69138 20.9422C5.96253 20.8826 5.32234 20.7568 4.73005 20.455C3.78924 19.9757 3.02433 19.2108 2.54497 18.27C2.24318 17.6777 2.11737 17.0375 2.05782 16.3086C1.99998 15.6007 1.99999 14.7266 2 13.6428V10.3572C1.99999 9.27341 1.99998 8.39926 2.05782 7.69138C2.11737 6.96253 2.24318 6.32234 2.54497 5.73005C3.02433 4.78924 3.78924 4.02433 4.73005 3.54497C5.32234 3.24318 5.96253 3.11737 6.69138 3.05782C7.39926 2.99998 8.27341 2.99999 9.35719 3ZM6.85424 5.05118C6.24907 5.10062 5.90138 5.19279 5.63803 5.32698C5.07354 5.6146 4.6146 6.07354 4.32698 6.63803C4.19279 6.90138 4.10062 7.24907 4.05118 7.85424C4.00078 8.47108 4 9.26339 4 10.4V13.6C4 14.7366 4.00078 15.5289 4.05118 16.1458C4.10062 16.7509 4.19279 17.0986 4.32698 17.362C4.6146 17.9265 5.07354 18.3854 5.63803 18.673C5.90138 18.8072 6.24907 18.8994 6.85424 18.9488C7.47108 18.9992 8.26339 19 9.4 19H14.6C15.7366 19 16.5289 18.9992 17.1458 18.9488C17.7509 18.8994 18.0986 18.8072 18.362 18.673C18.9265 18.3854 19.3854 17.9265 19.673 17.362C19.8072 17.0986 19.8994 16.7509 19.9488 16.1458C19.9992 15.5289 20 14.7366 20 13.6V10.4C20 9.26339 19.9992 8.47108 19.9488 7.85424C19.8994 7.24907 19.8072 6.90138 19.673 6.63803C19.3854 6.07354 18.9265 5.6146 18.362 5.32698C18.0986 5.19279 17.7509 5.10062 17.1458 5.05118C16.5289 5.00078 15.7366 5 14.6 5H9.4C8.26339 5 7.47108 5.00078 6.85424 5.05118ZM7 7C7.55229 7 8 7.44772 8 8V16C8 16.5523 7.55229 17 7 17C6.44772 17 6 16.5523 6 16V8C6 7.44772 6.44772 7 7 7Z",fill:"currentColor"})}),l.jsx("svg",{className:"sidebar-toggle-icon-mobile",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:l.jsx("path",{d:"M18 6L6 18M6 6L18 18",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})]})]}),l.jsx("div",{className:"sidebar-content",children:b?D():F()})]})}const V0=y.createContext({});function R7(t){var e,n,s="";if(typeof t=="string"||typeof t=="number")s+=t;else if(typeof t=="object")if(Array.isArray(t)){var i=t.length;for(e=0;e<i;e++)t[e]&&(n=R7(t[e]))&&(s&&(s+=" "),s+=n)}else for(n in t)t[n]&&(s&&(s+=" "),s+=n);return s}function At(){for(var t,e,n=0,s="",i=arguments.length;n<i;n++)(t=arguments[n])&&(e=R7(t))&&(s&&(s+=" "),s+=e);return s}const zy="data-rc-order",By="data-rc-priority",qI="rc-util-key",Qf=new Map;function T7(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}function KI(t,e){if(!t||!e)return!1;if(t.contains)return t.contains(e);let n=e;for(;n;){if(n===t)return!0;n=n.parentNode}return!1}function j7({mark:t}={}){return t?t.startsWith("data-")?t:`data-${t}`:qI}function q0(t){return t.attachTo?t.attachTo:document.querySelector("head")||document.body}function WI(t){return t==="queue"?"prependQueue":t?"prepend":"append"}function K0(t){return Array.from((Qf.get(t)||t).children).filter(e=>e.tagName==="STYLE")}function P7(t,e={}){if(!T7())return null;const{csp:n,prepend:s,priority:i=0}=e,r=WI(s),c=r==="prependQueue",p=document.createElement("style");p.setAttribute(zy,r),c&&i&&p.setAttribute(By,`${i}`),n?.nonce&&(p.nonce=n.nonce),p.innerHTML=t;const g=q0(e),{firstChild:_}=g;if(s){if(c){const f=(e.styles||K0(g)).filter(h=>{if(!["prepend","prependQueue"].includes(h.getAttribute(zy)))return!1;const v=Number(h.getAttribute(By)||0);return i>=v});if(f.length)return g.insertBefore(p,f[f.length-1].nextSibling),p}g.insertBefore(p,_)}else g.appendChild(p);return p}function XI(t,e={}){let{styles:n}=e;return n||=K0(q0(e)),n.find(s=>s.getAttribute(j7(e))===t)}function YI(t,e){const n=Qf.get(t);if(!n||!KI(document,n)){const s=P7("",e);if(!s)return;const{parentNode:i}=s;Qf.set(t,i),t.removeChild(s)}}function QI(t,e,n={}){if(!T7())return null;const s=q0(n),i=K0(s),r={...n,styles:i};YI(s,r);const c=XI(e,r);if(c)return r.csp?.nonce&&c.nonce!==r.csp.nonce&&(c.nonce=r.csp.nonce),c.innerHTML!==t&&(c.innerHTML=t),c;const p=P7(t,r);return p?.setAttribute(j7(r),e),p}function JI(t){return t?.getRootNode?.()}function ZI(t){const e=JI(t);return typeof ShadowRoot<"u"&&e instanceof ShadowRoot?e:null}const $y={};function tN(t,e){t||$y[e]||($y[e]=!0)}function eN(t){return t.replace(/-(.)/g,(e,n)=>n.toUpperCase())}function M7(t,e){tN(t,`[@ant-design/icons] ${e}`)}function ag(t){return t!==null&&typeof t=="object"&&typeof t.name=="string"&&typeof t.theme=="string"&&(typeof t.icon=="object"||typeof t.icon=="function")}function Gy(t={}){return Object.keys(t).reduce((e,n)=>{const s=t[n];return n==="class"?(e.className=s,delete e.class):(delete e[n],e[eN(n)]=s),e},{})}function Jf(t,e,n){return n?Gt.createElement(t.tag,{key:e,...Gy(t.attrs),...n},(t.children||[]).map((s,i)=>Jf(s,`${e}-${t.tag}-${i}`))):Gt.createElement(t.tag,{key:e,...Gy(t.attrs)},(t.children||[]).map((s,i)=>Jf(s,`${e}-${t.tag}-${i}`)))}const nN=`
12.anticon {
13  display: inline-flex;
14  align-items: center;
15  color: inherit;
16  font-style: normal;
17  line-height: 0;
18  text-align: center;
19  text-transform: none;
20  vertical-align: -0.125em;
21  text-rendering: optimizeLegibility;
22  -webkit-font-smoothing: antialiased;
23  -moz-osx-font-smoothing: grayscale;
24}
25
26.anticon > * {
27  line-height: 1;
28}
29
30.anticon svg {
31  display: inline-block;
32  vertical-align: inherit;
33}
34
35.anticon::before {
36  display: none;
37}
38
39.anticon .anticon-icon {
40  display: block;
41}
42
43.anticon[tabindex] {
44  cursor: pointer;
45}
46
47.anticon-spin {
48  -webkit-animation: loadingCircle 1s infinite linear;
49  animation: loadingCircle 1s infinite linear;
50}
51
52@-webkit-keyframes loadingCircle {
53  100% {
54    -webkit-transform: rotate(360deg);
55    transform: rotate(360deg);
56  }
57}
58
59@keyframes loadingCircle {
60  100% {
61    -webkit-transform: rotate(360deg);
62    transform: rotate(360deg);
63  }
64}
65`,aN=t=>{const{csp:e,prefixCls:n,layer:s,zeroRuntime:i}=y.useContext(V0);let r=nN;n&&(r=r.replace(/anticon/g,n)),s&&(r=`@layer ${s} {
66${r}
67}`),y.useEffect(()=>{if(i)return;const c=t.current,p=ZI(c);QI(r,"@ant-design-icons",{prepend:!s,csp:e,attachTo:p})},[])},L7=t=>{const{icon:e,className:n,onClick:s,style:i,primaryColor:r,secondaryColor:c,...p}=t,g=y.useRef(null);if(aN(g),M7(ag(e),`icon should be icon definiton, but got ${typeof e}`),!ag(e))return null;const _=e;return Jf(_.icon,`svg-${_.name}`,{className:n,onClick:s,style:i,"data-icon":_.name,width:"1em",height:"1em",fill:"
67currentColor","aria-hidden":"true",...p,ref:g})};L7.displayName="IconReact";function Zf(){return Zf=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},Zf.apply(this,arguments)}const ga=y.forwardRef((t,e)=>{const{className:n,icon:s,spin:i,rotate:r,tabIndex:c,onClick:p,twoToneColor:g,..._}=t,{prefixCls:f="anticon",rootClassName:h}=y.useContext(V0);if(M7(ag(s),`icon should be icon definiton, but got ${typeof s}`),!ag(s))return null;const v=At(h,f,{[`${f}-${s.name}`]:!!s.name,[`${f}-spin`]:!!i||s.name==="loading"},n);let b=c;b===void 0&&p&&(b=-1);const S=r?{msTransform:`rotate(${r}deg)`,transform:`rotate(${r}deg)`}:void 0;return y.createElement("span",Zf({role:"img","aria-label":s.name},_,{ref:e,tabIndex:b,onClick:p,className:v}),y.createElement(L7,{icon:s,style:S}))}),sN={aliceblue:"9ehhb",antiquewhite:"9sgk7",aqua:"1ekf",aquamarine:"4zsno",azure:"9eiv3",beige:"9lhp8",bisque:"9zg04",black:"0",blanchedalmond:"9zhe5",blue:"73",blueviolet:"5e31e",brown:"6g016",burlywood:"8ouiv",cadetblue:"3qba8",chartreuse:"4zshs",chocolate:"87k0u",coral:"9yvyo",cornflowerblue:"3xael",cornsilk:"9zjz0",crimson:"8l4xo",cyan:"1ekf",darkblue:"3v",darkcyan:"rkb",darkgoldenrod:"776yz",darkgray:"6mbhl",darkgreen:"jr4",darkgrey:"6mbhl",darkkhaki:"7ehkb",darkmagenta:"5f91n",darkolivegreen:"3bzfz",darkorange:"9yygw",darkorchid:"5z6x8",darkred:"5f8xs",darksalmon:"9441m",darkseagreen:"5lwgf",darkslateblue:"2th1n",darkslategray:"1ugcv",darkslategrey:"1ugcv",darkturquoise:"14up",darkviolet:"5rw7n",deeppink:"9yavn",deepskyblue:"11xb",dimgray:"442g9",dimgrey:"442g9",dodgerblue:"16xof",firebrick:"6y7tu",floralwhite:"9zkds",forestgreen:"1cisi",fuchsia:"9y70f",gainsboro:"8m8kc",ghostwhite:"9pq0v",goldenrod:"8j4f4",gold:"9zda8",gray:"50i2o",green:"pa8",greenyellow:"6senj",grey:"50i2o",honeydew:"9eiuo",hotpink:"9yrp0",indianred:"80gnw",indigo:"2xcoy",ivory:"9zldc",khaki:"9edu4",lavenderblush:"9ziet",lavender:"90c8q",lawngreen:"4vk74",lemonchiffon:"9zkct",lightblue:"6s73a",lightcoral:"9dtog",lightcyan:"8s1rz",lightgoldenrodyellow:"9sjiq",lightgray:"89jo3",lightgreen:"5nkwg",lightgrey:"89jo3",lightpink:"9z6wx",lightsalmon:"9z2ii",lightseagreen:"19xgq",lightskyblue:"5arju",lightslategray:"4nwk9",lightslategrey:"4nwk9",lightsteelblue:"6wau6",lightyellow:"9zlcw",lime:"1edc",limegreen:"1zcxe",linen:"9shk6",magenta:"9y70f",maroon:"4zsow",mediumaquamarine:"40eju",mediumblue:"5p",mediumorchid:"79qkz",mediumpurple:"5r3rv",mediumseagreen:"2d9ip",mediumslateblue:"4tcku",mediumspringgreen:"1di2",mediumturquoise:"2uabw",mediumvioletred:"7rn9h",midnightblue:"z980",mintcream:"9ljp6",mistyrose:"9zg0x",moccasin:"9zfzp",navajowhite:"9zest",navy:"3k",oldlace:"9wq92",olive:"50hz4",olivedrab:"472ub",orange:"9z3eo",orangered:"9ykg0",orchid:"8iu3a",palegoldenrod:"9bl4a",palegreen:"5yw0o",paleturquoise:"6v4ku",palevioletred:"8k8lv",papayawhip:"9zi6t",peachpuff:"9ze0p",peru:"80oqn",pink:"9z8wb",plum:"8nba5",powderblue:"6wgdi",purple:"4zssg",rebeccapurple:"3zk49",red:"9y6tc",rosybrown:"7cv4f",royalblue:"2jvtt",saddlebrown:"5fmkz",salmon:"9rvci",sandybrown:"9jn1c",seagreen:"1tdnb",seashell:"9zje6",sienna:"6973h",silver:"7ir40",skyblue:"5arjf",slateblue:"45e4t",slategray:"4e100",slategrey:"4e100",snow:"9zke2",springgreen:"1egv",steelblue:"2r1kk",tan:"87yx8",teal:"pds",thistle:"8ggk8",tomato:"9yqfb",turquoise:"2j4r4",violet:"9b10u",wheat:"9ld4j",white:"9zldr",whitesmoke:"9lhpx",yellow:"9zl6o",yellowgreen:"61fzm"},Bn=Math.round;function q_(t,e){const n=t.replace(/^[^(]*\((.*)/,"$1").replace(/\).*/,"").match(/\d*\.?\d+%?/g)||[],s=n.map(i=>parseFloat(i));for(let i=0;i<3;i+=1)s[i]=e(s[i]||0,n[i]||"",i);return n[3]?s[3]=n[3].includes("%")?s[3]/100:s[3]:s[3]=1,s}const Hy=(t,e,n)=>n===0?t:t/100;function El(t,e){const n=e||255;return t>n?n:t<0?0:t}class oa{isValid=!0;r=0;g=0;b=0;a=1;_h;_hsl_s;_hsv_s;_l;_v;_max;_min;_brightness;constructor(e){function n(i){return i[0]in e&&i[1]in e&&i[2]in e}if(e)if(typeof e=="string"){let r=function(c){return i.startsWith(c)};var s=r;const i=e.trim();if(/^#?[A-F\d]{3,8}$/i.test(i))this.fromHexString(i);else if(r("rgb"))this.fromRgbString(i);else if(r("hsl"))this.fromHslString(i);else if(r("hsv")||r("hsb"))this.fromHsvString(i);else{const c=sN[i.toLowerCase()];c&&this.fromHexString(parseInt(c,36).toString(16).padStart(6,"0"))}}else if(e instanceof oa)this.r=e.r,this.g=e.g,this.b=e.b,this.a=e.a,this._h=e._h,this._hsl_s=e._hsl_s,this._hsv_s=e._hsv_s,this._l=e._l,this._v=e._v;else if(n("rgb"))this.r=El(e.r),this.g=El(e.g),this.b=El(e.b),this.a=typeof e.a=="number"?El(e.a,1):1;else if(n("hsl"))this.fromHsl(e);else if(n("hsv"))this.fromHsv(e);else throw new Error("@ant-design/fast-color: unsupported input "+JSON.stringify(e))}setR(e){return this._sc("r",e)}setG(e){return this._sc("g",e)}setB(e){return this._sc("b",e)}setA(e){return this._sc("a",e,1)}setHue(e){const n=this.toHsv();return n.h=e,this._c(n)}getLuminance(){function e(r){const c=r/255;return c<=.03928?c/12.92:Math.pow((c+.055)/1.055,2.4)}const n=e(this.r),s=e(this.g),i=e(this.b);return .2126*n+.7152*s+.0722*i}getHue(){if(typeof this._h>"u"){const e=this.getMax()-this.getMin();e===0?this._h=0:this._h=Bn(60*(this.r===this.getMax()?(this.g-this.b)/e+(this.g<this.b?6:0):this.g===this.getMax()?(this.b-this.r)/e+2:(this.r-this.g)/e+4))}return this._h}getSaturation(){return this.getHSVSaturation()}getHSVSaturation(){if(typeof this._hsv_s>"u"){const e=this.getMax()-this.getMin();e===0?this._hsv_s=0:this._hsv_s=e/this.getMax()}return this._hsv_s}getHSLSaturation(){if(typeof this._hsl_s>"u"){const e=this.getMax()-this.getMin();if(e===0)this._hsl_s=0;else{const n=this.getLightness();this._hsl_s=e/255/(1-Math.abs(2*n-1))}}return this._hsl_s}getLightness(){return typeof this._l>"u"&&(this._l=(this.getMax()+this.getMin())/510),this._l}getValue(){return typeof this._v>"u"&&(this._v=this.getMax()/255),this._v}getBrightness(){return typeof this._brightness>"u"&&(this._brightness=(this.r*299+this.g*587+this.b*114)/1e3),this._brightness}darken(e=10){const n=this.getHue(),s=this.getSaturation();let i=this.getLightness()-e/100;return i<0&&(i=0),this._c({h:n,s,l:i,a:this.a})}lighten(e=10){const n=this.getHue(),s=this.getSaturation();let i=this.getLightness()+e/100;return i>1&&(i=1),this._c({h:n,s,l:i,a:this.a})}mix(e,n=50){const s=this._c(e),i=n/100,r=p=>(s[p]-this[p])*i+this[p],c={r:Bn(r("r")),g:Bn(r("g")),b:Bn(r("b")),a:Bn(r("a")*100)/100};return this._c(c)}tint(e=10){return this.mix({r:255,g:255,b:255,a:1},e)}shade(e=10){return this.mix({r:0,g:0,b:0,a:1},e)}
67onBackground(e){const n=this._c(e),s=this.a+n.a*(1-this.a),i=r=>Bn((this[r]*this.a+n[r]*n.a*(1-this.a))/s);return this._c({r:i("r"),g:i("g"),b:i("b"),a:s})}isDark(){return this.getBrightness()<128}isLight(){return this.getBrightness()>=128}equals(e){return this.r===e.r&&this.g===e.g&&this.b===e.b&&this.a===e.a}clone(){return this._c(this)}toHexString(){let e="#";const n=(this.r||0).toString(16);e+=n.length===2?n:"0"+n;const s=(this.g||0).toString(16);e+=s.length===2?s:"0"+s;const i=(this.b||0).toString(16);if(e+=i.length===2?i:"0"+i,typeof this.a=="number"&&this.a>=0&&this.a<1){const r=Bn(this.a*255).toString(16);e+=r.length===2?r:"0"+r}return e}toHsl(){return{h:this.getHue(),s:this.getHSLSaturation(),l:this.getLightness(),a:this.a}}toHslString(){const e=this.getHue(),n=Bn(this.getHSLSaturation()*100),s=Bn(this.getLightness()*100);return this.a!==1?`hsla(${e},${n}%,${s}%,${this.a})`:`hsl(${e},${n}%,${s}%)`}toHsv(){return{h:this.getHue(),s:this.getHSVSaturation(),v:this.getValue(),a:this.a}}toRgb(){return{r:this.r,g:this.g,b:this.b,a:this.a}}toRgbString(){return this.a!==1?`rgba(${this.r},${this.g},${this.b},${this.a})`:`rgb(${this.r},${this.g},${this.b})`}toString(){return this.toRgbString()}_sc(e,n,s){const i=this.clone();return i[e]=El(n,s),i}_c(e){return new this.constructor(e)}getMax(){return typeof this._max>"u"&&(this._max=Math.max(this.r,this.g,this.b)),this._max}getMin(){return typeof this._min>"u"&&(this._min=Math.min(this.r,this.g,this.b)),this._min}fromHexString(e){const n=e.replace("#","");function s(i,r){return parseInt(n[i]+n[r||i],16)}n.length<6?(this.r=s(0),this.g=s(1),this.b=s(2),this.a=n[3]?s(3)/255:1):(this.r=s(0,1),this.g=s(2,3),this.b=s(4,5),this.a=n[6]?s(6,7)/255:1)}fromHsl({h:e,s:n,l:s,a:i}){const r=(e%360+360)%360;if(this._h=r,this._hsl_s=n,this._l=s,this.a=typeof i=="number"?i:1,n<=0){const b=Bn(s*255);this.r=b,this.g=b,this.b=b;return}let c=0,p=0,g=0;const _=r/60,f=(1-Math.abs(2*s-1))*n,h=f*(1-Math.abs(_%2-1));_>=0&&_<1?(c=f,p=h):_>=1&&_<2?(c=h,p=f):_>=2&&_<3?(p=f,g=h):_>=3&&_<4?(p=h,g=f):_>=4&&_<5?(c=h,g=f):_>=5&&_<6&&(c=f,g=h);const v=s-f/2;this.r=Bn((c+v)*255),this.g=Bn((p+v)*255),this.b=Bn((g+v)*255)}fromHsv({h:e,s:n,v:s,a:i}){const r=(e%360+360)%360;this._h=r,this._hsv_s=n,this._v=s,this.a=typeof i=="number"?i:1;const c=Bn(s*255);if(this.r=c,this.g=c,this.b=c,n<=0)return;const p=r/60,g=Math.floor(p),_=p-g,f=Bn(s*(1-n)*255),h=Bn(s*(1-n*_)*255),v=Bn(s*(1-n*(1-_))*255);switch(g){case 0:this.g=v,this.b=f;break;case 1:this.r=h,this.b=f;break;case 2:this.r=f,this.b=v;break;case 3:this.r=f,this.g=h;break;case 4:this.r=v,this.g=f;break;default:this.g=f,this.b=h;break}}fromHsvString(e){const n=q_(e,Hy);this.fromHsv({h:n[0],s:n[1],v:n[2],a:n[3]})}fromHslString(e){const n=q_(e,Hy);this.fromHsl({h:n[0],s:n[1],l:n[2],a:n[3]})}fromRgbString(e){const n=q_(e,(s,i)=>i.includes("%")?Bn(s/100*255):s);this.r=n[0],this.g=n[1],this.b=n[2],this.a=n[3]}}const hp=2,Fy=.16,oN=.05,iN=.05,rN=.15,O7=5,D7=4,uN=[{index:7,amount:15},{index:6,amount:25},{index:5,amount:30},{index:5,amount:45},{index:5,amount:65},{index:5,amount:85},{index:4,amount:90},{index:3,amount:95},{index:2,amount:97},{index:1,amount:98}];function Uy(t,e,n){let s;return Math.round(t.h)>=60&&Math.round(t.h)<=240?s=n?Math.round(t.h)-hp*e:Math.round(t.h)+hp*e:s=n?Math.round(t.h)+hp*e:Math.round(t.h)-hp*e,s<0?s+=360:s>=360&&(s-=360),s}function Vy(t,e,n){if(t.h===0&&t.s===0)return t.s;let s;return n?s=t.s-Fy*e:e===D7?s=t.s+Fy:s=t.s+oN*e,s>1&&(s=1),n&&e===O7&&s>.1&&(s=.1),s<.06&&(s=.06),Math.round(s*100)/100}function qy(t,e,n){let s;return n?s=t.v+iN*e:s=t.v-rN*e,s=Math.max(0,Math.min(1,s)),Math.round(s*100)/100}function z7(t,e={}){const n=[],s=new oa(t),i=s.toHsv();for(let r=O7;r>0;r-=1){const c=new oa({h:Uy(i,r,!0),s:Vy(i,r,!0),v:qy(i,r,!0)});n.push(c)}n.push(s);for(let r=1;r<=D7;r+=1){const c=new oa({h:Uy(i,r),s:Vy(i,r),v:qy(i,r)});n.push(c)}return e.theme==="dark"?uN.map(({index:r,amount:c})=>new oa(e.backgroundColor||"#141414").mix(n[r],c).toHexString()):n.map(r=>r.toHexString())}const K_={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1677FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"},tk=["#fff1f0","#ffccc7","#ffa39e","#ff7875","#ff4d4f","#f5222d","#cf1322","#a8071a","#820014","#5c0011"];tk.primary=tk[5];const ek=["#fff2e8","#ffd8bf","#ffbb96","#ff9c6e","#ff7a45","#fa541c","#d4380d","#ad2102","#871400","#610b00"];ek.primary=ek[5];const nk=["#fff7e6","#ffe7ba","#ffd591","#ffc069","#ffa940","#fa8c16","#d46b08","#ad4e00","#873800","#612500"];nk.primary=nk[5];const ak=["#fffbe6","#fff1b8","#ffe58f","#ffd666","#ffc53d","#faad14","#d48806","#ad6800","#874d00","#613400"];ak.primary=ak[5];
67const sk=["#feffe6","#ffffb8","#fffb8f","#fff566","#ffec3d","#fadb14","#d4b106","#ad8b00","#876800","#614700"];sk.primary=sk[5];const ok=["#fcffe6","#f4ffb8","#eaff8f","#d3f261","#bae637","#a0d911","#7cb305","#5b8c00","#3f6600","#254000"];ok.primary=ok[5];const ik=["#f6ffed","#d9f7be","#b7eb8f","#95de64","#73d13d","#52c41a","#389e0d","#237804","#135200","#092b00"];ik.primary=ik[5];const rk=["#e6fffb","#b5f5ec","#87e8de","#5cdbd3","#36cfc9","#13c2c2","#08979c","#006d75","#00474f","#002329"];rk.primary=rk[5];const uk=["#e6f4ff","#bae0ff","#91caff","#69b1ff","#4096ff","#1677ff","#0958d9","#003eb3","#002c8c","#001d66"];uk.primary=uk[5];const lk=["#f0f5ff","#d6e4ff","#adc6ff","#85a5ff","#597ef7","#2f54eb","#1d39c4","#10239e","#061178","#030852"];lk.primary=lk[5];const ck=["#f9f0ff","#efdbff","#d3adf7","#b37feb","#9254de","#722ed1","#531dab","#391085","#22075e","#120338"];ck.primary=ck[5];const dk=["#fff0f6","#ffd6e7","#ffadd2","#ff85c0","#f759ab","#eb2f96","#c41d7f","#9e1068","#780650","#520339"];dk.primary=dk[5];const pk=["#a6a6a6","#999999","#8c8c8c","#808080","#737373","#666666","#404040","#1a1a1a","#000000","#000000"];pk.primary=pk[5];const W_={red:tk,volcano:ek,orange:nk,gold:ak,yellow:sk,lime:ok,green:ik,cyan:rk,blue:uk,geekblue:lk,purple:ck,magenta:dk,grey:pk};var lN={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 000 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"}}]},name:"arrow-left",theme:"outlined"};function gk(){return gk=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},gk.apply(this,arguments)}const cN=(t,e)=>y.createElement(ga,gk({},t,{ref:e,icon:lN})),dN=y.forwardRef(cN);var pN={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M869 487.8L491.2 159.9c-2.9-2.5-6.6-3.9-10.5-3.9h-88.5c-7.4 0-10.8 9.2-5.2 14l350.2 304H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h585.1L386.9 854c-5.6 4.9-2.2 14 5.2 14h91.5c1.9 0 3.8-.7 5.2-2L869 536.2a32.07 32.07 0 000-48.4z"}}]},name:"arrow-right",theme:"outlined"};function mk(){return mk=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},mk.apply(this,arguments)}const gN=(t,e)=>y.createElement(ga,mk({},t,{ref:e,icon:pN})),mN=y.forwardRef(gN);var hN={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M868 545.5L536.1 163a31.96 31.96 0 00-48.3 0L156 545.5a7.97 7.97 0 006 13.2h81c4.6 0 9-2 12.1-5.5L474 300.9V864c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V300.9l218.9 252.3c3 3.5 7.4 5.5 12.1 5.5h81c6.8 0 10.5-8 6-13.2z"}}]},name:"arrow-up",theme:"outlined"};function hk(){return hk=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},hk.apply(this,arguments)}const _N=(t,e)=>y.createElement(ga,hk({},t,{ref:e,icon:hN})),Ky=y.forwardRef(_N);var fN={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M632 888H392c-4.4 0-8 3.6-8 8v32c0 17.7 14.3 32 32 32h192c17.7 0 32-14.3 32-32v-32c0-4.4-3.6-8-8-8zM512 64c-181.1 0-328 146.9-328 328 0 121.4 66 227.4 164 284.1V792c0 17.7 14.3 32 32 32h264c17.7 0 32-14.3 32-32V676.1c98-56.7 164-162.7 164-284.1 0-181.1-146.9-328-328-328zm127.9 549.8L604 634.6V752H420V634.6l-35.9-20.8C305.4 568.3 256 484.5 256 392c0-141.4 114.6-256 256-256s256 114.6 256 256c0 92.5-49.4 176.3-128.1 221.8z"}}]},name:"bulb",theme:"outlined"};function _k(){return _k=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},_k.apply(this,arguments)}const kN=(t,e)=>y.createElement(ga,_k({},t,{ref:e,icon:fN})),vN=y.forwardRef(kN);var yN={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z"}}]},name:"clock-circle",theme:"outlined"};function fk(){return fk=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},fk.apply(this,arguments)}const bN=(t,e)=>y.createElement(ga,fk({},t,{ref:e,icon:yN})),Wy=y.forwardRef(bN);var xN={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"}
67,children:[{tag:"path",attrs:{d:"M799.86 166.31c.02 0 .04.02.08.06l57.69 57.7c.04.03.05.05.06.08a.12.12 0 010 .06c0 .03-.02.05-.06.09L569.93 512l287.7 287.7c.04.04.05.06.06.09a.12.12 0 010 .07c0 .02-.02.04-.06.08l-57.7 57.69c-.03.04-.05.05-.07.06a.12.12 0 01-.07 0c-.03 0-.05-.02-.09-.06L512 569.93l-287.7 287.7c-.04.04-.06.05-.09.06a.12.12 0 01-.07 0c-.02 0-.04-.02-.08-.06l-57.69-57.7c-.04-.03-.05-.05-.06-.07a.12.12 0 010-.07c0-.03.02-.05.06-.09L454.07 512l-287.7-287.7c-.04-.04-.05-.06-.06-.09a.12.12 0 010-.07c0-.02.02-.04.06-.08l57.7-57.69c.03-.04.05-.05.07-.06a.12.12 0 01.07 0c.03 0 .05.02.09.06L512 454.07l287.7-287.7c.04-.04.06-.05.09-.06a.12.12 0 01.07 0z"}}]},name:"close",theme:"outlined"};function kk(){return kk=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},kk.apply(this,arguments)}const AN=(t,e)=>y.createElement(ga,kk({},t,{ref:e,icon:xN})),CN=y.forwardRef(AN);var SN={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M885.9 490.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 00-26.5-5.4H273v428h.3l85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zM112 132v364c0 17.7 14.3 32 32 32h65V100h-65c-17.7 0-32 14.3-32 32z"}}]},name:"dislike",theme:"filled"};function vk(){return vk=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},vk.apply(this,arguments)}const wN=(t,e)=>y.createElement(ga,vk({},t,{ref:e,icon:SN})),EN=y.forwardRef(wN);var IN={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M885.9 490.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 00-26.5-5.4H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h129.3l85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zM184 456V172h81v284h-81zm627.2 160.4H496.8l9.6 198.4c.6 11.9-4.7 23.1-14.6 30.5-6.1 4.5-13.6 6.8-21.1 6.7a44.28 44.28 0 01-42.2-32.3L329 459.2V172h415.4a56.85 56.85 0 0133.6 51.8c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0119.6 43c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0119.6 43c0 9.7-2.3 18.9-6.9 27.3l-14 25.5 21.9 19a56.76 56.76 0 0119.6 43c0 19.1-11 37.5-28.8 48.4z"}}]},name:"dislike",theme:"outlined"};function yk(){return yk=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},yk.apply(this,arguments)}const NN=(t,e)=>y.createElement(ga,yk({},t,{ref:e,icon:IN})),RN=y.forwardRef(NN);var TN={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"ellipsis",theme:"outlined"};function bk(){return bk=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},bk.apply(this,arguments)}const jN=(t,e)=>y.createElement(ga,bk({},t,{ref:e,icon:TN})),PN=y.forwardRef(jN);var MN={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.6 289.1a362.49 362.49 0 00-79.9-115.7 370.83 370.83 0 00-118.2-77.8C610.7 76.6 562.1 67 512 67c-50.1 0-98.7 9.6-144.5 28.5-44.3 18.3-84 44.5-118.2 77.8A363.6 363.6 0 00169.4 289c-19.5 45-29.4 92.8-29.4 142 0 70.6 16.9 140.9 50.1 208.7 26.7 54.5 64 107.6 111 158.1 80.3 86.2 164.5 138.9 188.4 153a43.9 43.9 0 0022.4 6.1c7.8 0 15.5-2 22.4-6.1 23.9-14.1 108.1-66.8 188.4-153 47-50.4 84.3-103.6 111-158.1C867.1 572 884 501.8 884 431.1c0-49.2-9.9-97-29.4-142zM512 880.2c-65.9-41.9-300-207.8-300-449.1 0-77.9 31.1-151.1 87.6-206.3C356.3 169.5 431.7 139 512 139s155.7 30.5 212.4 85.9C780.9 280 812 353.2 812 431.1c0 241.3-234.1 407.2-300 449.1zm0-617.2c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 551c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 439c0-29.9 11.7-58 32.8-79.2C454 338.6 482.1 327 512 327c29.9 0 58 11.6 79.2 32.8C612.4 381 624 409.1 624 439c0 29.9-11.6 58-32.8 79.2z"}}]},name:"environment",theme:"outlined"};function xk(){return xk=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},xk.apply(this,arguments)}const LN=(t,e)=>y.createElement(ga,xk({},t,{ref:e,icon:MN})),Xy=y.forwardRef(LN);var ON={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.4-65.5-111.1a67.67 67.67 0 00-34.3-9.3H572.4l6-122.9c1.4-29.7-9.1-57.9-29.5-79.4A106.62 106.62 0 00471 99.9c-52 0-98 35-111.8 85.
671l-85.9 311h-.3v428h472.3c9.2 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7-.2-12.6-2-25.1-5.6-37.1zM112 528v364c0 17.7 14.3 32 32 32h65V496h-65c-17.7 0-32 14.3-32 32z"}}]},name:"like",theme:"filled"};function Ak(){return Ak=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},Ak.apply(this,arguments)}const DN=(t,e)=>y.createElement(ga,Ak({},t,{ref:e,icon:ON})),zN=y.forwardRef(DN);var BN={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.4-65.5-111.1a67.67 67.67 0 00-34.3-9.3H572.4l6-122.9c1.4-29.7-9.1-57.9-29.5-79.4A106.62 106.62 0 00471 99.9c-52 0-98 35-111.8 85.1l-85.9 311H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h601.3c9.2 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7-.2-12.6-2-25.1-5.6-37.1zM184 852V568h81v284h-81zm636.4-353l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 22.4-13.2 42.6-33.6 51.8H329V564.8l99.5-360.5a44.1 44.1 0 0142.2-32.3c7.6 0 15.1 2.2 21.1 6.7 9.9 7.4 15.2 18.6 14.6 30.5l-9.6 198.4h314.4C829 418.5 840 436.9 840 456c0 16.5-7.2 32.1-19.6 43z"}}]},name:"like",theme:"outlined"};function Ck(){return Ck=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},Ck.apply(this,arguments)}const $N=(t,e)=>y.createElement(ga,Ck({},t,{ref:e,icon:BN})),GN=y.forwardRef($N);var HN={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"}}]},name:"link",theme:"outlined"};function Sk(){return Sk=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},Sk.apply(this,arguments)}const FN=(t,e)=>y.createElement(ga,Sk({},t,{ref:e,icon:HN})),UN=y.forwardRef(FN);var VN={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"};function wk(){return wk=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},wk.apply(this,arguments)}const qN=(t,e)=>y.createElement(ga,wk({},t,{ref:e,icon:VN})),KN=y.forwardRef(qN);var WN={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43
67c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z"}}]},name:"reload",theme:"outlined"};function Ek(){return Ek=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},Ek.apply(this,arguments)}const XN=(t,e)=>y.createElement(ga,Ek({},t,{ref:e,icon:WN})),YN=y.forwardRef(XN);function QN(t,e){const n={};return(t[t.length-1]===""?[...t,""]:t).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const JN=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,ZN=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,tR={};function Yy(t,e){return(tR.jsx?ZN:JN).test(t)}const eR=/[ \t\n\f\r]/g;function nR(t){return typeof t=="object"?t.type==="text"?Qy(t.value):!1:Qy(t)}function Qy(t){return t.replace(eR,"")===""}let Ec=class{constructor(e,n,s){this.normal=n,this.property=e,s&&(this.space=s)}};Ec.prototype.normal={};Ec.prototype.property={};Ec.prototype.space=void 0;function B7(t,e){const n={},s={};for(const i of t)Object.assign(n,i.property),Object.assign(s,i.normal);return new Ec(n,s,e)}function Ik(t){return t.toLowerCase()}class Na{constructor(e,n){this.attribute=n,this.property=e}}Na.prototype.attribute="";Na.prototype.booleanish=!1;Na.prototype.boolean=!1;Na.prototype.commaOrSpaceSeparated=!1;Na.prototype.commaSeparated=!1;Na.prototype.defined=!1;Na.prototype.mustUseProperty=!1;Na.prototype.number=!1;Na.prototype.overloadedBoolean=!1;Na.prototype.property="";Na.prototype.spaceSeparated=!1;Na.prototype.space=void 0;let aR=0;const ee=Ji(),xn=Ji(),Nk=Ji(),vt=Ji(),Ve=Ji(),Di=Ji(),Ga=Ji();function Ji(){return 2**++aR}const Rk=Object.freeze(Object.defineProperty({__proto__:null,boolean:ee,booleanish:xn,commaOrSpaceSeparated:Ga,commaSeparated:Di,number:vt,overloadedBoolean:Nk,spaceSeparated:Ve},Symbol.toStringTag,{value:"Module"})),X_=Object.keys(Rk);class W0 extends Na{constructor(e,n,s,i){let r=-1;if(super(e,n),Jy(this,"space",i),typeof s=="number")for(;++r<X_.length;){const c=X_[r];Jy(this,X_[r],(s&Rk[c])===Rk[c])}}}W0.prototype.defined=!0;function Jy(t,e,n){n&&(t[e]=n)}function xu(t){const e={},n={};for(const[s,i]of Object.entries(t.properties)){const r=new W0(s,t.transform(t.attributes||{},s),i,t.space);t.mustUseProperty&&t.mustUseProperty.includes(s)&&(r.mustUseProperty=!0),e[s]=r,n[Ik(s)]=s,n[Ik(r.attribute)]=s}return new Ec(e,n,t.space)}const $7=xu({properties:{ariaActiveDescendant:null,ariaAtomic:xn,ariaAutoComplete:null,ariaBusy:xn,ariaChecked:xn,ariaColCount:vt,ariaColIndex:vt,ariaColSpan:vt,ariaControls:Ve,ariaCurrent:null,ariaDescribedBy:Ve,ariaDetails:null,ariaDisabled:xn,ariaDropEffect:Ve,ariaErrorMessage:null,ariaExpanded:xn,ariaFlowTo:Ve,ariaGrabbed:xn,ariaHasPopup:null,ariaHidden:xn,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Ve,ariaLevel:vt,ariaLive:null,ariaModal:xn,ariaMultiLine:xn,ariaMultiSelectable:xn,ariaOrientation:null,ariaOwns:Ve,ariaPlaceholder:null,ariaPosInSet:vt,ariaPressed:xn,ariaReadOnly:xn,ariaRelevant:null,ariaRequired:xn,ariaRoleDescription:Ve,ariaRowCount:vt,ariaRowIndex:vt,ariaRowSpan:vt,ariaSelected:xn,ariaSetSize:vt,ariaSort:null,ariaValueMax:vt,ariaValueMin:vt,ariaValueNow:vt,ariaValueText:null,role:null},transform(t,e){return e==="role"?e:"aria-"+e.slice(4).toLowerCase()}});function G7(t,e){return e in t?t[e]:e}function H7(t,e){return G7(t,e.toLowerCase())}const sR=xu({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Di,acceptCharset:Ve,accessKey:Ve,action:null,allow:null,allowFullScreen:ee,allowPaymentRequest:ee,allowUserMedia:ee,alpha:ee,alt:null,as:null,async:ee,autoCapitalize:null,autoComplete:Ve,autoFocus:ee,autoPlay:ee,blocking:Ve,capture:null,charSet:null,checked:ee,cite:null,className:Ve,closedBy:null,colorSpace:null,cols:vt,colSpan:vt,command:null,commandFor:null,content:null,contentEditable:xn,controls:ee,controlsList:Ve,coords:vt|Di,crossOrigin:null,data:null,dateTime:null,decoding:null,default:ee,defer:ee,dir:null,dirName:null,disabled:ee,download:Nk,draggable:xn,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:ee,formTarget:null,headers:Ve,height:vt,hidden:Nk,high:vt,href:null,hrefLang:null,htmlFor:Ve,httpEquiv:Ve,id:null,imageSizes:null,imageSrcSet:null,inert:ee,inputMode:null,integrity:null,is:null,isMap:ee,itemId:null,itemProp:Ve,itemRef:Ve,itemScope:ee,itemType:Ve,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:ee,low:vt,manifest:null,max:null,maxLength:vt,media:null,method:null,min:null,minLength:vt,multiple:ee,muted:ee,name:null,nonce:null,noModule:ee,noValidate:ee,onAbort:null,onAfterPrint:null,onAuxCl
67ick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:ee,optimum:vt,pattern:null,ping:Ve,placeholder:null,playsInline:ee,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:ee,referrerPolicy:null,rel:Ve,required:ee,reversed:ee,rows:vt,rowSpan:vt,sandbox:Ve,scope:null,scoped:ee,seamless:ee,selected:ee,shadowRootClonable:ee,shadowRootCustomElementRegistry:ee,shadowRootDelegatesFocus:ee,shadowRootMode:null,shadowRootSerializable:ee,shape:null,size:vt,sizes:null,slot:null,span:vt,spellCheck:xn,src:null,srcDoc:null,srcLang:null,srcSet:null,start:vt,step:null,style:null,tabIndex:vt,target:null,title:null,translate:null,type:null,typeMustMatch:ee,useMap:null,value:xn,width:vt,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:Ve,axis:null,background:null,bgColor:null,border:vt,borderColor:null,bottomMargin:vt,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:ee,declare:ee,event:null,face:null,frame:null,frameBorder:null,hSpace:vt,leftMargin:vt,link:null,longDesc:null,lowSrc:null,marginHeight:vt,marginWidth:vt,noResize:ee,noHref:ee,noShade:ee,noWrap:ee,object:null,profile:null,prompt:null,rev:null,rightMargin:vt,rules:null,scheme:null,scrolling:xn,standby:null,summary:null,text:null,topMargin:vt,valueType:null,version:null,vAlign:null,vLink:null,vSpace:vt,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:ee,disablePictureInPicture:ee,disableRemotePlayback:ee,exportParts:Di,part:Ve,prefix:null,property:null,results:vt,security:null,unselectable:null},space:"html",transform:H7}),oR=xu({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",maskType:"mask-type",navDown:"nav-down",navDownLeft:"nav
67-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:Ga,accentHeight:vt,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:vt,amplitude:vt,arabicForm:null,ascent:vt,attributeName:null,attributeType:null,azimuth:vt,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:vt,by:null,calcMode:null,capHeight:vt,className:Ve,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:vt,diffuseConstant:vt,direction:null,display:null,dur:null,divisor:vt,dominantBaseline:null,download:ee,dx:null,dy:null,edgeMode:null,editable:null,elevation:vt,enableBackground:null,end:null,event:null,exponent:vt,externalResourcesRequired:null,fill:null,fillOpacity:vt,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:Di,g2:Di,glyphName:Di,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:vt,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:vt,horizOriginX:vt,horizOriginY:vt,id:null,ideographic:vt,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:vt,k:vt,k1:vt,k2:vt,k3:vt,k4:vt,kernelMatrix:Ga,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:vt,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:vt,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,on
vendor: 7,316 bytes, lines 67-68
67Zoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:vt,overlineThickness:vt,paintOrder:null,panose1:null,path:null,pathLength:vt,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Ve,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:vt,pointsAtY:vt,pointsAtZ:vt,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:Ga,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:Ga,rev:Ga,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:Ga,requiredFeatures:Ga,requiredFonts:Ga,requiredFormats:Ga,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:vt,specularExponent:vt,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:vt,strikethroughThickness:vt,string:null,stroke:null,strokeDashArray:Ga,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:vt,strokeOpacity:vt,strokeWidth:null,style:null,surfaceScale:vt,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:Ga,tabIndex:vt,tableValues:null,target:null,targetX:vt,targetY:vt,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:Ga,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:vt,underlineThickness:vt,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:vt,values:null,vAlphabetic:vt,vMathematical:vt,vectorEffect:null,vHanging:vt,vIdeographic:vt,version:null,vertAdvY:vt,vertOriginX:vt,vertOriginY:vt,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:vt,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:G7}),F7=xu({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(t,e){return"xlink:"+e.slice(5).toLowerCase()}}),U7=xu({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:H7}),V7=xu({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(t,e){return"xml:"+e.slice(3).toLowerCase()}}),iR={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},rR=/[A-Z]/g,Zy=/-[a-z]/g,uR=/^data[-\w.:]+$/i;function lR(t,e){const n=Ik(e);let s=e,i=Na;if(n in t.normal)return t.property[t.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&uR.test(e)){if(e.charAt(4)==="-"){const r=e.slice(5).replace(Zy,dR);s="data"+r.charAt(0).toUpperCase()+r.slice(1)}else{const r=e.slice(4);if(!Zy.test(r)){let c=r.replace(rR,cR);c.charAt(0)!=="-"&&(c="-"+c),e="data"+c}}i=W0}return new i(s,e)}function cR(t){return"-"+t.toLowerCase()}function dR(t){return t.charAt(1).toUpperCase()}const pR=B7([$7,sR,F7,U7,V7],"html"),X0=B7([$7,oR,F7,U7,V7],"svg");function gR(t){return t.join(" ").trim()}var Gr={},Y_,t5;function mR(){if(t5)return Y_;t5=1;var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,e=/\n/g,n=/^\s*/,s=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,r=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,c=/^[;\s]*/,p=/^\s+|\s+$/g,g=`
68`,_="/",f="*",h="",v="comment",b="declaration";function S(w,A){if(typeof w!="string")throw new TypeError("First argument must be a string");if(!w)return[];A=A||{};var E=1,I=1;function j(Q){var V=Q.match(e);V&&(E+=V.length);var U=Q.lastIndexOf(g);I=~U?Q.length-U:I+Q.length}function T(){var Q={line:E,column:I};return function(V){return V.position=new P(Q),F(),V}}function P(Q){this.start=Q,this.end={line:E,column:I},this.source=A.source}P.prototype.content=w;function N(Q){var V=new Error(A.source+":"+E+":"+I+": "+Q);if(V.reason=Q,V.filename=A.source,V.line=E,V.column=I,V.source=w,!A.silent)throw V}function D(Q){var V=Q.exec(w);if(V){var U=V[0];return j(U),w=w.slice(U.length),V}}function F(){D(n)}function B(Q){var V;for(Q=Q||[];V=L();)V!==!1&&Q.push(V);return Q}function L(){var Q=T();if(!(_!=w.charAt(0)||f!=w.charAt(1))){for(var V=2;h!=w.charAt(V)&&(f!=w.charAt(V)||_!=w.charAt(V+1));)++V;if(V+=2,h===w.charAt(V-1))return N("End of comment missing");var U=w.slice(2,V-2);return I+=2,j(U),w=w.slice(V),I+=2,Q({type:v,comment:U})}}function $(){var Q=T(),V=D(s);if(V){if(L(),!D(i))return N("property missing ':'");var U=D(r),H=Q({type:b,property:x(V[0].replace(t,h)),value:U?x(U[0].replace(t,h)):h});return D(c),H}}function q(){var Q=[];B(Q);for(var V;V=$();)V!==!1&&(Q.push(V),B(Q));return Q}return F(),q()}function x(w){return w?w.replace(p,h):h}return Y_=S,Y_}var e5;function hR(){if(e5)return Gr;e5=1;var t=Gr&&Gr.__importDefault||function(s){return s&&s.__esModule?s:{default:s}};Object.defineProperty(Gr,"__esModule",{value:!0}),Gr.default=n;const e=t(mR());function n(s,i){let r=null;if(!s||typeof s!="string")return r;const c=(0,e.default)(s),p=typeof i=="function";return c.forEach(g=>{if(g.type!=="declaration")return;const{property:_,value:f}=g;p?i(_,f,g):f&&(r=r||{},r[_]=f)}),r}return Gr}var Il={},n5;function _R(){if(n5)return Il;n5=1,Object.defineProperty(Il,"__esModule",{value:!0}),Il.camelCase=void 0;var t=/^--[a-zA-Z0-9_-]+$/,e=/-([a-z])/g,n=/^[^-]+$/,s=/^-(webkit|moz|ms|o|khtml)-/,i=/^-(ms)-/,r=function(_){return!_||n.test(_)||t.test(_)},c=function(_,f){return f.toUpperCase()},p=function(_,f){return"".concat(f,"-")},g=function(_,f){return f===void 0&&(f={}),r(_)?_:(_=_.toLowerCase(),f.reactCompat?_=_.replace(i,p):_=_.replace(s,p),_.replace(e,c))};return Il.camelCase=g,Il}var Nl,a5;function fR(){if(a5)return Nl;a5=1;var t=Nl&&Nl.__importDefault||function(i){return i&&i.__esModule?i:{default:i}},e=t(hR()),n=_R();function s(i,r){var c={};return!i||typeof i!="string"||(0,e.default)(i,function(p,g){p&&g&&(c[(0,n.camelCase)(p,r)]=g)}),c}return s.default=s,Nl=s,Nl}var kR=fR();const vR=Cg(kR),q7=K7("end"),Y0=K7("start");function K7(t){return e;function e(n){const s=n&&n.position&&n.position[t]||{};if(typeof s.line=="number"&&s.line>0&&typeof s.column=="number"&&s.column>0)return{line:s.line,column:s.column,offset:typeof s.offset=="number"&&s.offset>-1?s.offset:void 0}}}function yR(t){const e=Y0(t),n=q7(t);if(e&&n)return{start:e,end:n}}function Zl(t){return!t||typeof t!="object"?"":"position"in t||"type"in t?s5(t.position):"start"in t||"end"in t?s5(t):"line"in t||"column"in t?Tk(t):""}function Tk(t){return o5(t&&t.line)+":"+o5(t&&t.column)}function s5(t){return Tk(t&&t.start)+"-"+Tk(t&&t.end)}function o5(t){return t&&typeof t=="number"?t:1}class ra extends Error{constructor(e,n,s){super(),typeof n=="string"&&(s=n,n=void 0);let i="",r={},c=!1;if(n&&("line"in n&&"column"in n?r={place:n}
vendor: 1,774 bytes, line 68
68:"start"in n&&"end"in n?r={place:n}:"type"in n?r={ancestors:[n],place:n.position}:r={...n}),typeof e=="string"?i=e:!r.cause&&e&&(c=!0,i=e.message,r.cause=e),!r.ruleId&&!r.source&&typeof s=="string"){const g=s.indexOf(":");g===-1?r.ruleId=s:(r.source=s.slice(0,g),r.ruleId=s.slice(g+1))}if(!r.place&&r.ancestors&&r.ancestors){const g=r.ancestors[r.ancestors.length-1];g&&(r.place=g.position)}const p=r.place&&"start"in r.place?r.place.start:r.place;this.ancestors=r.ancestors||void 0,this.cause=r.cause||void 0,this.column=p?p.column:void 0,this.fatal=void 0,this.file="",this.message=i,this.line=p?p.line:void 0,this.name=Zl(r.place)||"1:1",this.place=r.place||void 0,this.reason=this.message,this.ruleId=r.ruleId||void 0,this.source=r.source||void 0,this.stack=c&&r.cause&&typeof r.cause.stack=="string"?r.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}ra.prototype.file="";ra.prototype.name="";ra.prototype.reason="";ra.prototype.message="";ra.prototype.stack="";ra.prototype.column=void 0;ra.prototype.line=void 0;ra.prototype.ancestors=void 0;ra.prototype.cause=void 0;ra.prototype.fatal=void 0;ra.prototype.place=void 0;ra.prototype.ruleId=void 0;ra.prototype.source=void 0;const Q0={}.hasOwnProperty,bR=new Map,xR=/[A-Z]/g,AR=new Set(["table","tbody","thead","tfoot","tr"]),CR=new Set(["td","th"]),W7="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function SR(t,e){if(!e||e.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=e.filePath||void 0;let s;if(e.development){if(typeof e.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");s=PR(n,e.jsxDEV)}else{if(typeof e.jsx!="function")throw new TypeError("Expected `jsx` in production options");
vendor: 10,014 bytes, line 68
68if(typeof e.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");s=jR(n,e.jsx,e.jsxs)}const i={Fragment:e.Fragment,ancestors:[],components:e.components||{},create:s,elementAttributeNameCase:e.elementAttributeNameCase||"react",evaluater:e.createEvaluater?e.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:e.ignoreInvalidStyle||!1,passKeys:e.passKeys!==!1,passNode:e.passNode||!1,schema:e.space==="svg"?X0:pR,stylePropertyNameCase:e.stylePropertyNameCase||"dom",tableCellAlignToStyle:e.tableCellAlignToStyle!==!1},r=X7(i,t,void 0);return r&&typeof r!="string"?r:i.create(t,i.Fragment,{children:r||void 0},void 0)}function X7(t,e,n){if(e.type==="element")return wR(t,e,n);if(e.type==="mdxFlowExpression"||e.type==="mdxTextExpression")return ER(t,e);if(e.type==="mdxJsxFlowElement"||e.type==="mdxJsxTextElement")return NR(t,e,n);if(e.type==="mdxjsEsm")return IR(t,e);if(e.type==="root")return RR(t,e,n);if(e.type==="text")return TR(t,e)}function wR(t,e,n){const s=t.schema;let i=s;e.tagName.toLowerCase()==="svg"&&s.space==="html"&&(i=X0,t.schema=i),t.ancestors.push(e);const r=Q7(t,e.tagName,!1),c=MR(t,e);let p=Z0(t,e);return AR.has(e.tagName)&&(p=p.filter(function(g){return typeof g=="string"?!nR(g):!0})),Y7(t,c,r,e),J0(c,p),t.ancestors.pop(),t.schema=s,t.create(e,r,c,n)}function ER(t,e){if(e.data&&e.data.estree&&t.evaluater){const s=e.data.estree.body[0];return s.type,t.evaluater.evaluateExpression(s.expression)}lc(t,e.position)}function IR(t,e){if(e.data&&e.data.estree&&t.evaluater)return t.evaluater.evaluateProgram(e.data.estree);lc(t,e.position)}function NR(t,e,n){const s=t.schema;let i=s;e.name==="svg"&&s.space==="html"&&(i=X0,t.schema=i),t.ancestors.push(e);const r=e.name===null?t.Fragment:Q7(t,e.name,!0),c=LR(t,e),p=Z0(t,e);return Y7(t,c,r,e),J0(c,p),t.ancestors.pop(),t.schema=s,t.create(e,r,c,n)}function RR(t,e,n){const s={};return J0(s,Z0(t,e)),t.create(e,t.Fragment,s,n)}function TR(t,e){return e.value}function Y7(t,e,n,s){typeof n!="string"&&n!==t.Fragment&&t.passNode&&(e.node=s)}function J0(t,e){if(e.length>0){const n=e.length>1?e:e[0];n&&(t.children=n)}}function jR(t,e,n){return s;function s(i,r,c,p){const _=Array.isArray(c.children)?n:e;return p?_(r,c,p):_(r,c)}}function PR(t,e){return n;function n(s,i,r,c){const p=Array.isArray(r.children),g=Y0(s);return e(i,r,c,p,{columnNumber:g?g.column-1:void 0,fileName:t,lineNumber:g?g.line:void 0},void 0)}}function MR(t,e){const n={};let s,i;for(i in e.properties)if(i!=="children"&&Q0.call(e.properties,i)){const r=OR(t,i,e.properties[i]);if(r){const[c,p]=r;t.tableCellAlignToStyle&&c==="align"&&typeof p=="string"&&CR.has(e.tagName)?s=p:n[c]=p}}if(s){const r=n.style||(n.style={});r[t.stylePropertyNameCase==="css"?"text-align":"textAlign"]=s}return n}function LR(t,e){const n={};for(const s of e.attributes)if(s.type==="mdxJsxExpressionAttribute")if(s.data&&s.data.estree&&t.evaluater){const r=s.data.estree.body[0];r.type;const c=r.expression;c.type;const p=c.properties[0];p.type,Object.assign(n,t.evaluater.evaluateExpression(p.argument))}else lc(t,e.position);else{const i=s.name;let r;if(s.value&&typeof s.value=="object")if(s.value.data&&s.value.data.estree&&t.evaluater){const p=s.value.data.estree.body[0];p.type,r=t.evaluater.evaluateExpression(p.expression)}else lc(t,e.position);else r=s.value===null?!0:s.value;n[i]=r}return n}function Z0(t,e){const n=[];let s=-1;const i=t.passKeys?new Map:bR;for(;++s<e.children.length;){const r=e.children[s];let c;if(t.passKeys){const g=r.type==="element"?r.tagName:r.type==="mdxJsxFlowElement"||r.type==="mdxJsxTextElement"?r.name:void 0;if(g){const _=i.get(g)||0;c=g+"-"+_,i.set(g,_+1)}}const p=X7(t,r,c);p!==void 0&&n.push(p)}return n}function OR(t,e,n){const s=lR(t.schema,e);if(!(n==null||typeof n=="number"&&Number.isNaN(n))){if(Array.isArray(n)&&(n=s.commaSeparated?QN(n):gR(n)),s.property==="style"){let i=typeof n=="object"?n:DR(t,String(n));return t.stylePropertyNameCase==="css"&&(i=zR(i)),["style",i]}return[t.elementAttributeNameCase==="react"&&s.space?iR[s.property]||s.property:s.attribute,n]}}function DR(t,e){try{return vR(e,{reactCompat:!0})}catch(n){if(t.ignoreInvalidStyle)return{};const s=n,i=new ra("Cannot parse `style` attribute",{ancestors:t.ancestors,cause:s,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw i.file=t.filePath||void 0,i.url=W7+"#cannot-parse-style-attribute",i}}function Q7(t,e,n){let s;if(!n)s={type:"Literal",value:e};else if(e.includes(".")){const i=e.split(".");let r=-1,c;for(;++r<i.length;){const p=Yy(i[r])?{type:"Identifier",name:i[r]}:{type:"Literal",value:i[r]};c=c?{type:"MemberExpression",object:c,property:p,computed:!!(r&&p.type==="Literal"),optional:!1}:p}s=c}else s=Yy(e)&&!/^[a-z]/.test(e)?{type:"Identifier",name:e}:{type:"Literal",value:e};if(s.type==="Literal"){const i=s.value;return Q0.call(t.components,i)?t.components[i]:i}if(t.evaluater)return t.evaluater.evaluateExpression(s);lc(t)}function lc(t,e){const n=new ra("Cannot handle MDX estrees without `createEvaluater`",{ancestors:t.ancestors,place:e,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw n.file=t.filePath||void 0,n.url=W7+"#cannot-handle-mdx-estrees-without-createevaluater",n}function zR(t){const e={};let n;for(n in t)Q0.call(t,n)&&(e[BR(n)]=t[n]);return e}function BR(t){let e=t.replace(xR,$R);return e.slice(0,3)==="ms-"&&(e="-"+e),e}function $R(t){return"-"+t.toLowerCase()}const Q_={action:["form"],cite:["blockquote","del","ins","q"],data:["object"],formAction:["button","input"],href:["a","area","base","link"],icon:["menuitem"],itemId:null,manifest:["html"],ping:["a","area"],poster:["video"],src:["audio","embed","iframe","img","input","script","source","track","video"]},GR={};function HR(t,e){const n=GR,s=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,i=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return J7(t,s,i)}function J7(t,e,n){if(FR(t)){if("value"in t)return t.type==="html"&&!n?"":t.value;if(e&&"alt"in t&&t.alt)return t.alt;if("children"in t)return i5(t.children,e,n)}return Array.isArray(t)?i5(t,e,n):""}function i5(t,e,n){const s=[];let i=-1;for(;++i<t.length;)s[i]=J7(t[i],e,n);return s.join("")}function FR(t){return!!(t&&typeof t=="object")}const r5=document.createElement("i");function t1(t){const e="&"+t+";";r5.innerHTML=e;const n=r5.textContent;return n.charCodeAt(n.length-1)===59&&t!=="semi"||n===e?!1:n}function Ys(t,e,n,s){const i=t.length;let r=0,c;if(e<0?e=-e>i?0:i+e:e=e>i?i:e,n=n>0?n:0,s.length<1e4)c=Array.from(s),c.unshift(e,n),t.splice(...c);else for(n&&t.splice(e,n);r<s.length;)c=s.slice(r,r+1e4),c.unshift(e,0),t.splice(...c),r+=1e4,e+=1e4}function os(t,e){return t.length>0?(Ys(t,t.length,0,e),t):e}const u5={}.hasOwnProperty;function UR(t){const e={};let n=-1;for(;++n<t.length;)VR(e,t[n]);return e}function VR(t,e){let n;for(n in e){const i=(u5.call(t,n)?t[n]:void 0)||(t[n]={}),r=e[n];let c;if(r)for(c in r){u5.call(i,c)||(i[c]=[]);const p=r[c];qR(i[c],Array.isArray(p)?p:p?[p]:[])}}}function qR(t,e){let n=-1;const s=[];for(;++n<e.length;)(e[n].add==="after"?t:s).push(e[n]);Ys(t,0,0,s)}function Z7(t,e){const n=Number.parseInt(t,e);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function ru(t){return t.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Vs=oi(/[A-Za-z]/),Fa=oi(/[\dA-Za-z]/),KR=oi(/[#-'*+\--9=?A-Z^-~]/);function jk(t){return t!==null&&(t<32||t===127)}const Pk=oi(/\d/),WR=oi(/[\dA-Fa-f]/),XR=oi(/[!-/:-@[-`{-~]/);function Jt(t){return t!==null&&t<-2}function wa(t){return t!==null&&(t<0||t===32)}function Re(t){return t===-2||t===-1||t===32}const YR=oi(new RegExp("\\p{P}|\\p{S}","u")),QR=oi(/\s/);function oi(t){return e;function e(n){return n!==null&&n>-1&&t.test(String.fromCharCode(n))}}function Au(t){const e=[];let n=-1,s=0,i=0;for(;++n<t.length;){const r=t.charCodeAt(n);let c="";if(r===37&&Fa(t.charCodeAt(n+1))&&Fa(t.charCodeAt(n+2)))i=2;else if(r<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(r))||(c=String.fromCharCode(r));else if(r>55295&&r<57344){const p=t.charCodeAt(n+1);r<56320&&p>56319&&p<57344?(c=String.fromCharCode(r,p),i=1):c="�"}else c=String.fromCharCode(r);c&&(e.push(t.slice(s,n),encodeURIComponent(c)),s=n+i+1,c=""),i&&(n+=i,i=0)}return e.join("")+t.slice(s)}function Xe(t,e,n,s){const i=s?s-1:Number.POSITIVE_INFINITY;let r=0;return c;function c(g){return Re(g)?(t.enter(n),p(g)):e(g)}function p(g){return Re(g)&&r++<i?(t.consume(g),p):(t.exit(n),e(g))}}const JR={tokenize:ZR};function ZR(t){const e=t.attempt(this.parser.constructs.contentInitial,s,i);let n;return e;function s(p){if(p===null){t.consume(p);return}return t.enter("lineEnding"),t.consume(p),t.exit("lineEnding"),Xe(t,e,"linePrefix")}function i(p){return t.enter("paragraph"),r(p)}function r(p){const g=t.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=g),n=g,c(p)}function c(p){if(p===null){t.exit("chunkText"),t.exit("paragraph"),t.consume(p);return}return Jt(p)?(t.consume(p),t.exit("chunkText"),r):(t.consume(p),c)}}const tT={tokenize:eT},l5={tokenize:nT};function eT(t){const e=this,n=[];let s=0,i,r,c;return p;function p(I){if(s<n.length){const j=n[s];return e.containerState=j[1],t.attempt(j[0].continuation,g,_)(I)}return _(I)}function g(I){if(s++,e.containerState._closeFlow){e.containerState._closeFlow=void 0,i&&E();const j=e.events.length;let T=j,P;for(;T--;)if(e.events[T][0]==="exit"&&e.events[T][1].type==="chunkFlow"){P=e.events[T][1].end;break}A(s);let N=j;for(;N<e.events.length;)e.events[N][1].end={...P},N++;return Ys(e.events,T+1,0,e.events.slice(j)),e.events.length=N,_(I)}return p(I)}function _(I){if(s===n.length){if(!i)return v(I);if(i.currentConstruct&&i.currentConstruct.concrete)return S(I);e.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return e.containerState={},t.check(l5,f,h)(I)}function f(I){return i&&E(),A(s),v(I)}function h(I){return e.parser.lazy[e.now().line]=s!==n.length,c=e.now().offset,S(I)}
vendor: 11,142 bytes, line 68
68function v(I){return e.containerState={},t.attempt(l5,b,S)(I)}function b(I){return s++,n.push([e.currentConstruct,e.containerState]),v(I)}function S(I){if(I===null){i&&E(),A(0),t.consume(I);return}return i=i||e.parser.flow(e.now()),t.enter("chunkFlow",{_tokenizer:i,contentType:"flow",previous:r}),x(I)}function x(I){if(I===null){w(t.exit("chunkFlow"),!0),A(0),t.consume(I);return}return Jt(I)?(t.consume(I),w(t.exit("chunkFlow")),s=0,e.interrupt=void 0,p):(t.consume(I),x)}function w(I,j){const T=e.sliceStream(I);if(j&&T.push(null),I.previous=r,r&&(r.next=I),r=I,i.defineSkip(I.start),i.write(T),e.parser.lazy[I.start.line]){let P=i.events.length;for(;P--;)if(i.events[P][1].start.offset<c&&(!i.events[P][1].end||i.events[P][1].end.offset>c))return;const N=e.events.length;let D=N,F,B;for(;D--;)if(e.events[D][0]==="exit"&&e.events[D][1].type==="chunkFlow"){if(F){B=e.events[D][1].end;break}F=!0}for(A(s),P=N;P<e.events.length;)e.events[P][1].end={...B},P++;Ys(e.events,D+1,0,e.events.slice(N)),e.events.length=P}}function A(I){let j=n.length;for(;j-- >I;){const T=n[j];e.containerState=T[1],T[0].exit.call(e,t)}n.length=I}function E(){i.write([null]),r=void 0,i=void 0,e.containerState._closeFlow=void 0}}function nT(t,e,n){return Xe(t,t.attempt(this.parser.constructs.document,e,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function c5(t){if(t===null||wa(t)||QR(t))return 1;if(YR(t))return 2}function e1(t,e,n){const s=[];let i=-1;for(;++i<t.length;){const r=t[i].resolveAll;r&&!s.includes(r)&&(e=r(e,n),s.push(r))}return e}const Mk={name:"attention",resolveAll:aT,tokenize:sT};function aT(t,e){let n=-1,s,i,r,c,p,g,_,f;for(;++n<t.length;)if(t[n][0]==="enter"&&t[n][1].type==="attentionSequence"&&t[n][1]._close){for(s=n;s--;)if(t[s][0]==="exit"&&t[s][1].type==="attentionSequence"&&t[s][1]._open&&e.sliceSerialize(t[s][1]).charCodeAt(0)===e.sliceSerialize(t[n][1]).charCodeAt(0)){if((t[s][1]._close||t[n][1]._open)&&(t[n][1].end.offset-t[n][1].start.offset)%3&&!((t[s][1].end.offset-t[s][1].start.offset+t[n][1].end.offset-t[n][1].start.offset)%3))continue;g=t[s][1].end.offset-t[s][1].start.offset>1&&t[n][1].end.offset-t[n][1].start.offset>1?2:1;const h={...t[s][1].end},v={...t[n][1].start};d5(h,-g),d5(v,g),c={type:g>1?"strongSequence":"emphasisSequence",start:h,end:{...t[s][1].end}},p={type:g>1?"strongSequence":"emphasisSequence",start:{...t[n][1].start},end:v},r={type:g>1?"strongText":"emphasisText",start:{...t[s][1].end},end:{...t[n][1].start}},i={type:g>1?"strong":"emphasis",start:{...c.start},end:{...p.end}},t[s][1].end={...c.start},t[n][1].start={...p.end},_=[],t[s][1].end.offset-t[s][1].start.offset&&(_=os(_,[["enter",t[s][1],e],["exit",t[s][1],e]])),_=os(_,[["enter",i,e],["enter",c,e],["exit",c,e],["enter",r,e]]),_=os(_,e1(e.parser.constructs.insideSpan.null,t.slice(s+1,n),e)),_=os(_,[["exit",r,e],["enter",p,e],["exit",p,e],["exit",i,e]]),t[n][1].end.offset-t[n][1].start.offset?(f=2,_=os(_,[["enter",t[n][1],e],["exit",t[n][1],e]])):f=0,Ys(t,s-1,n-s+3,_),n=s+_.length-f-2;break}}for(n=-1;++n<t.length;)t[n][1].type==="attentionSequence"&&(t[n][1].type="data");return t}function sT(t,e){const n=this.parser.constructs.attentionMarkers.null,s=this.previous,i=c5(s);let r;return c;function c(g){return r=g,t.enter("attentionSequence"),p(g)}function p(g){if(g===r)return t.consume(g),p;const _=t.exit("attentionSequence"),f=c5(g),h=!f||f===2&&i||n.includes(g),v=!i||i===2&&f||n.includes(s);return _._open=!!(r===42?h:h&&(i||!v)),_._close=!!(r===42?v:v&&(f||!h)),e(g)}}function d5(t,e){t.column+=e,t.offset+=e,t._bufferIndex+=e}const oT={name:"autolink",tokenize:iT};function iT(t,e,n){let s=0;return i;function i(b){return t.enter("autolink"),t.enter("autolinkMarker"),t.consume(b),t.exit("autolinkMarker"),t.enter("autolinkProtocol"),r}function r(b){return Vs(b)?(t.consume(b),c):b===64?n(b):_(b)}function c(b){return b===43||b===45||b===46||Fa(b)?(s=1,p(b)):_(b)}function p(b){return b===58?(t.consume(b),s=0,g):(b===43||b===45||b===46||Fa(b))&&s++<32?(t.consume(b),p):(s=0,_(b))}function g(b){return b===62?(t.exit("autolinkProtocol"),t.enter("autolinkMarker"),t.consume(b),t.exit("autolinkMarker"),t.exit("autolink"),e):b===null||b===32||b===60||jk(b)?n(b):(t.consume(b),g)}function _(b){return b===64?(t.consume(b),f):KR(b)?(t.consume(b),_):n(b)}function f(b){return Fa(b)?h(b):n(b)}function h(b){return b===46?(t.consume(b),s=0,f):b===62?(t.exit("autolinkProtocol").type="autolinkEmail",t.enter("autolinkMarker"),t.consume(b),t.exit("autolinkMarker"),t.exit("autolink"),e):v(b)}function v(b){if((b===45||Fa(b))&&s++<63){const S=b===45?v:h;return t.consume(b),S}return n(b)}}const Tg={partial:!0,tokenize:rT};function rT(t,e,n){return s;function s(r){return Re(r)?Xe(t,i,"linePrefix")(r):i(r)}function i(r){return r===null||Jt(r)?e(r):n(r)}}const t6={continuation:{tokenize:lT},exit:cT,name:"blockQuote",tokenize:uT};function uT(t,e,n){const s=this;return i;function i(c){if(c===62){const p=s.containerState;return p.open||(t.enter("blockQuote",{_container:!0}),p.open=!0),t.enter("blockQuotePrefix"),t.enter("blockQuoteMarker"),t.consume(c),t.exit("blockQuoteMarker"),r}return n(c)}function r(c){return Re(c)?(t.enter("blockQuotePrefixWhitespace"),t.consume(c),t.exit("blockQuotePrefixWhitespace"),t.exit("blockQuotePrefix"),e):(t.exit("blockQuotePrefix"),e(c))}}function lT(t,e,n){const s=this;return i;function i(c){return Re(c)?Xe(t,r,"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(c):r(c)}function r(c){return t.attempt(t6,e,n)(c)}}function cT(t){t.exit("blockQuote")}const e6={name:"characterEscape",tokenize:dT};function dT(t,e,n){return s;function s(r){return t.enter("characterEscape"),t.enter("escapeMarker"),t.consume(r),t.exit("escapeMarker"),i}function i(r){return XR(r)?(t.enter("characterEscapeValue"),t.consume(r),t.exit("characterEscapeValue"),t.exit("characterEscape"),e):n(r)}}const n6={name:"characterReference",tokenize:pT};function pT(t,e,n){const s=this;let i=0,r,c;return p;function p(h){return t.enter("characterReference"),t.enter("characterReferenceMarker"),t.consume(h),t.exit("characterReferenceMarker"),g}function g(h){return h===35?(t.enter("characterReferenceMarkerNumeric"),t.consume(h),t.exit("characterReferenceMarkerNumeric"),_):(t.enter("characterReferenceValue"),r=31,c=Fa,f(h))}function _(h){return h===88||h===120?(t.enter("characterReferenceMarkerHexadecimal"),t.consume(h),t.exit("characterReferenceMarkerHexadecimal"),t.enter("characterReferenceValue"),r=6,c=WR,f):(t.enter("characterReferenceValue"),r=7,c=Pk,f(h))}function f(h){if(h===59&&i){const v=t.exit("characterReferenceValue");return c===Fa&&!t1(s.sliceSerialize(v))?n(h):(t.enter("characterReferenceMarker"),t.consume(h),t.exit("characterReferenceMarker"),t.exit("characterReference"),e)}return c(h)&&i++<r?(t.consume(h),f):n(h)}}const p5={partial:!0,tokenize:mT},g5={concrete:!0,name:"codeFenced",tokenize:gT};function gT(t,e,n){const s=this,i={partial:!0,tokenize:T};let r=0,c=0,p;return g;function g(P){return _(P)}function _(P){const N=s.events[s.events.length-1];return r=N&&N[1].type==="linePrefix"?N[2].sliceSerialize(N[1],!0).length:0,p=P,t.enter("codeFenced"),t.enter("codeFencedFence"),t.enter("codeFencedFenceSequence"),f(P)}function f(P){return P===p?(c++,t.consume(P),f):c<3?n(P):(t.exit("codeFencedFenceSequence"),Re(P)?Xe(t,h,"whitespace")(P):h(P))}function h(P){return P===null||Jt(P)?(t.exit("codeFencedFence"),s.interrupt?e(P):t.check(p5,x,j)(P)):(t.enter("codeFencedFenceInfo"),t.enter("chunkString",{contentType:"string"}),v(P))}function v(P){return P===null||Jt(P)?(t.exit("chunkString"),t.exit("codeFencedFenceInfo"),h(P)):Re(P)?(t.exit("chunkString"),t.exit("codeFencedFenceInfo"),Xe(t,b,"whitespace")(P)):P===96&&P===p?n(P):(t.consume(P),v)}function b(P){return P===null||Jt(P)?h(P):(t.enter("codeFencedFenceMeta"),t.enter("chunkString",{contentType:"string"}),S(P))}function S(P){return P===null||Jt(P)?(t.exit("chunkString"),t.exit("codeFencedFenceMeta"),h(P)):P===96&&P===p?n(P):(t.consume(P),S)}function x(P){return t.attempt(i,j,w)(P)}function w(P){return t.enter("lineEnding"),t.consume(P),t.exit("lineEnding"),A}function A(P){return r>0&&Re(P)?Xe(t,E,"linePrefix",r+1)(P):E(P)}function E(P){return P===null||Jt(P)?t.check(p5,x,j)(P):(t.enter("codeFlowValue"),I(P))}function I(P){return P===null||Jt(P)?(t.exit("codeFlowValue"),E(P)):(t.consume(P),I)}function j(P){return t.exit("codeFenced"),e(P)}function T(P,N,D){let F=0;return B;function B(V){return P.enter("lineEnding"),P.consume(V),P.exit("lineEnding"),L}function L(V){return P.enter("codeFencedFence"),Re(V)?Xe(P,$,"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(V):$(V)}function $(V){return V===p?(P.enter("codeFencedFenceSequence"),q(V)):D(V)}function q(V){return V===p?(F++,P.consume(V),q):F>=c?(P.exit("codeFencedFenceSequence"),Re(V)?Xe(P,Q,"whitespace")(V):Q(V)):D(V)}function Q(V){return V===null||Jt(V)?(P.exit("codeFencedFence"),N(V)):D(V)}}}function mT(t,e,n){const s=this;return i;function i(c){return c===null?n(c):(t.enter("lineEnding"),t.consume(c),t.exit("lineEnding"),r)}function r(c){return s.parser.lazy[s.now().line]?n(c):e(c)}}const J_={name:"codeIndented",tokenize:_T},hT={partial:!0,tokenize:fT};function _T(t,e,n){const s=this;return i;function i(_){return t.enter("codeIndented"),Xe(t,r,"linePrefix",5)(_)}function r(_){const f=s.events[s.events.length-1];return f&&f[1].type==="linePrefix"&&f[2].sliceSerialize(f[1],!0).length>=4?c(_):n(_)}function c(_){return _===null?g(_):Jt(_)?t.attempt(hT,c,g)(_):(t.enter("codeFlowValue"),p(_))}function p(_){return _===null||Jt(_)?(t.exit("codeFlowValue"),c(_)):(t.consume(_),p)}function g(_){return t.exit("codeIndented"),e(_)}}function fT(t,e,n){const s=this;return i;function i(c){return s.parser.lazy[s.now().line]?n(c):Jt(c)?(t.enter("lineEnding"),t.consume(c),t.exit("lineEnding"),i):Xe(t,r,"linePrefix",5)(c)}function r(c){const p=s.events[s.events.length-1];return p&&p[1].type==="linePrefix"&&p[2].sliceSerialize(p[1],!0).length>=4?e(c):Jt(c)?i(c):n(c)}}const kT={name:"codeText",previous:yT,resolve:vT,tokenize:bT};function vT(t){let e=t.length-4,n=3,s,i;if((t[n][1].type==="lineEnding"||t[n][1].type==="space")&&(t[e][1].type==="lineEnding"||t[e][1].type==="space")){for(s=n;++s<e;)if(t[s][1].type==="codeTextData"){t[n][1].type="codeTextPadding",t[e][1].type="codeTextPadding",n+=2,e-=2;break}}for(s=n-1,e++;++s<=e;)i===void 0?s!==e&&t[s][1].type!=="lineEnding"&&(i=s):(s===e||t[s][1].type==="lineEnding")&&(t[i][1].type="codeTextData",s!==i+2&&(t[i][1].end=t[s-1][1].end,t.splice(i+2,s-i-2),e-=s-i-2,s=i+2),i=void 0);return t}function yT(t){return t!==96||this.events[this.events.length-1][1].type==="characterEscape"}function bT(t,e,n){let s=0,i,r;return c;function c(h){return t.enter("codeText"),t.enter("codeTextSequence"),p(h)}function p(h){return h===96?(t.consume(h),s++,p):(t.exit("codeTextSequence"),g(h))}function g(h){return h===null?n(h):h===32?(t.enter("space"),t.consume(h),t.exit("space"),g):h===96?(r=t.enter("codeTextSequence"),i=0,f(h)):Jt(h)?(t.enter("lineEnding"),t.consume(h),t.exit("lineEnding"),g):(t.enter("co
68deTextData"),_(h))}function _(h){return h===null||h===32||h===96||Jt(h)?(t.exit("codeTextData"),g(h)):(t.consume(h),_)}function f(h){return h===96?(t.consume(h),i++,f):i===s?(t.exit("codeTextSequence"),t.exit("codeText"),e(h)):(r.type="codeTextData",_(h))}}class xT{constructor(e){this.left=e?[...e]:[],this.right=[]}get(e){if(e<0||e>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return e<this.left.length?this.left[e]:this.right[this.right.length-e+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(e,n){const s=n??Number.POSITIVE_INFINITY;return s<this.left.length?this.left.slice(e,s):e>this.left.length?this.right.slice(this.right.length-s+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-s+this.left.length).reverse())}splice(e,n,s){const i=n||0;this.setCursor(Math.trunc(e));const r=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return s&&Rl(this.left,s),r.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(e){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(e)}pushMany(e){this.setCursor(Number.POSITIVE_INFINITY),Rl(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),Rl(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&this.right.length===0||e<0&&this.left.length===0))if(e<this.left.length){const n=this.left.splice(e,Number.POSITIVE_INFINITY);Rl(this.right,n.reverse())}else{const n=this.right.splice(this.left.length+this.right.length-e,Number.POSITIVE_INFINITY);Rl(this.left,n.reverse())}}}function Rl(t,e){let n=0;if(e.length<1e4)t.push(...e);else for(;n<e.length;)t.push(...e.slice(n,n+1e4)),n+=1e4}function a6(t){const e={};let n=-1,s,i,r,c,p,g,_;const f=new xT(t);for(;++n<f.length;){for(;n in e;)n=e[n];if(s=f.get(n),n&&s[1].type==="chunkFlow"&&f.get(n-1)[1].type==="listItemPrefix"&&(g=s[1]._tokenizer.events,r=0,r<g.length&&g[r][1].type==="lineEndingBlank"&&(r+=2),r<g.length&&g[r][1].type==="content"))for(;++r<g.length&&g[r][1].type!=="content";)g[r][1].type==="chunkText"&&(g[r][1]._isInFirstContentOfListItem=!0,r++);if(s[0]==="enter")s[1].contentType&&(Object.assign(e,AT(f,n)),n=e[n],_=!0);else if(s[1]._container){for(r=n,i=void 0;r--;)if(c=f.get(r),c[1].type==="lineEnding"||c[1].type==="lineEndingBlank")c[0]==="enter"&&(i&&(f.get(i)[1].type="lineEndingBlank"),c[1].type="lineEnding",i=r);else if(!(c[1].type==="linePrefix"||c[1].type==="listItemIndent"))break;i&&(s[1].end={...f.get(i)[1].start},p=f.slice(i,n),p.unshift(s),f.splice(i,n-i+1,p))}}return Ys(t,0,Number.POSITIVE_INFINITY,f.slice(0)),!_}function AT(t,e){const n=t.get(e)[1],s=t.get(e)[2];let i=e-1;const r=[];let c=n._tokenizer;c||(c=s.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(c._contentTypeTextTrailing=!0));const p=c.events,g=[],_={};let f,h,v=-1,b=n,S=0,x=0;const w=[x];for(;b;){for(;t.get(++i)[1]!==b;);r.push(i),b._tokenizer||(f=s.sliceStream(b),b.next||f.push(null),h&&c.defineSkip(b.start),b._isInFirstContentOfListItem&&(c._gfmTasklistFirstContentOfListItem=!0),c.write(f),b._isInFirstContentOfListItem&&(c._gfmTasklistFirstContentOfListItem=void 0)),h=b,b=b.next}for(b=n;++v<p.length;)p[v][0]==="exit"&&p[v-1][0]==="enter"&&p[v][1].type===p[v-1][1].type&&p[v][1].start.line!==p[v][1].end.line&&(x=v+1,w.push(x),b._tokenizer=void 0,b.previous=void 0,b=b.next);for(c.events=[],b?(b._tokenizer=void 0,b.previous=void 0):w.pop(),v=w.length;v--;){const A=p.slice(w[v],w[v+1]),E=r.pop();g.push([E,E+A.length-1]),t.splice(E,2,A)}for(g.reverse(),v=-1;++v<g.length;)_[S+g[v][0]]=S+g[v][1],S+=g[v][1]-g[v][0]-1;return _}const CT={resolve:wT,tokenize:ET},ST={partial:!0,tokenize:IT};function wT(t){return a6(t),t}function ET(t,e){let n;return s;function s(p){return t.enter("content"),n=t.enter("chunkContent",{contentType:"content"}),i(p)}function i(p){return p===null?r(p):Jt(p)?t.check(ST,c,r)(p):(t.consume(p),i)}function r(p){return t.exit("chunkContent"),t.exit("content"),e(p)}function c(p){return t.consume(p),t.exit("chunkContent"),n.next=t.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,i}}function IT(t,e,n){const s=this;return i;function i(c){return t.exit("chunkContent"),t.enter("lineEnding"),t.consume(c),t.exit("lineEnding"),Xe(t,r,"linePrefix")}function r(c){if(c===null||Jt(c))return n(c);const p=s.events[s.events.length-1];return!s.parser.constructs.disable.null.includes("codeIndented")&&p&&p[1].type==="linePrefix"&&p[2].sliceSerialize(p[1],!0).length>=4?e(c):t.interrupt(s.parser.constructs.flow,n,e)(c)}}function s6(t,e,n,s,i,r,c,p,g){const _=g||Number.POSITIVE_INFINITY;let f=0;return h;function h(A){return A===60?(t.enter(s),t.enter(i),t.enter(r),t.consume(A),t.exit(r),v):A===null||A===32||A===41||jk(A)?n(A):(t.enter(s),t.enter(c),t.enter(p),t.enter("chunkString",{contentType:"string"}),x(A))}function v(A){return A===62?(t.enter(r),t.consume(A),t.exit(r),t.exit(i),t.exit(s),e):(t.enter(p),t.enter("chunkString",{contentType:"string"}),b(A))}function b(A){return A===62?(t.exit("chunkString"),t.exit(p),v(A)):A===null||A===60||Jt(A)?n(A):(t.consume(A),A===92?S:b)}function S(A){return A===60||A===62||A===92?(t.consume(A),b):b(A)}function x(A){return!f&&(A===null||A===41||wa(A))?(t.exit("chunkString"),t.exit(p),t.exit(c),t.exit(s),e(A)):f<_&&A===40?(t.consume(A),f++,x):A===41?(t.consume(A),f--,x):A===null||A===32||A===40||jk(A)?n(A):(t.consume(A),A===92?w:x)}function w(A){return A===40||A===41||A===92?(t.consume(A),x):x(A)}}function o6(t,e,n,s,i,r){const c=this;let p=0,g;return _;function _(b){return t.enter(s),t.enter(i),t.consume(b),t.exit(i),t.enter(r),f}function f(b){return p>999||b===null||b===91||b===93&&!g||b===94&&!p&&"_hiddenFootnoteSupport"in c.parser.constructs?n(b):b===93?(t.exit(r),t.enter(i),t.consume(b),t.exit(i),t.exit(s),e):Jt(b)?(t.enter("lineEnding"),t.consume(b),t.exit("lineEnding"),f):(t.enter("chunkString",{contentType:"string"}),h(b))}function h(b){return b===null||b===91||b===93||Jt(b)||p++>999?(t.exit("chunkString"),f(b)):(t.consume(b),g||(g=!Re(b)),b===92?v:h)}function v(b){return b===91||b===92||b===93?(t.consume(b),p++,h):h(b)}}function i6(t,e,n,s,i,r){let c;return p;function p(v){return v===34||v===39||v===40?(t.enter(s),t.enter(i),t.consume(v),t.exit(i),c=v===40?41:v,g):n(v)}function g(v){return v===c?(t.enter(i),t.consume(v),t.exit(i),t.exit(s),e):(t.enter(r),_(v))}function _(v){return v===c?(t.exit(r),g(c)):v===null?n(v):Jt(v)?(t.enter("lineEnding"),t.consume(v),t.exit("lineEnding"),Xe(t,_,"linePrefix")):(t.enter("chunkString",{contentType:"string"}),f(v))}function f(v){return v===c||v===null||Jt(v)?(t.exit("chunkString"),_(v)):(t.consume(v),v===92?h:f)}function h(v){return v===c||v===92?(t.consume(v),f):f(v)}}function tc(t,e){let n;return s;function s(i){return Jt(i)?(t.enter("lineEnding"),t.consume(i),t.exit("lineEnding"),n=!0,s):Re(i)?Xe(t,s,n?"linePrefix":"lineSuffix")(i):e(i)}}const NT={name:"definition",tokenize:TT},RT={partial:!0,tokenize:jT};function TT(t,e,n){const s=this;let i;return r;function r(b){return t.enter("definition"),c(b)}function c(b){return o6.call(s,t,p,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(b)}function p(b){return i=ru(s.sliceSerialize(s.events[s.events.length-1][1]).slice(1,-1)),b===58?(t.enter("definitionMarker"),t.consume(b),t.exit("definitionMarker"),g):n(b)}function g(b){return wa(b)?tc(t,_)(b):_(b)}function _(b){return s6(t,f,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(b)}function f(b){return t.attempt(RT,h,h)(b)}function h(b){return Re(b)?Xe(t,v,"whitespace")(b):v(b)}function v(b){return b===null||Jt(b)?(t.exit("definition"),s.parser.defined.push(i),e(b)):n(b)}}function jT(t,e,n){return s;function s(p){return wa(p)?tc(t,i)(p):n(p)}function i(p){return i6(t,r,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(p)}function r(p){return Re(p)?Xe(t,c,"whitespace")(p):c(p)}function c(p){return p===null||Jt(p)?e(p):n(p)}}const PT={name:"hardBreakEscape",tokenize:MT};function MT(t,e,n){return s;function s(r){return t.enter("hardBreakEscape"),t.consume(r),i}function i(r){return Jt(r)?(t.exit("hardBreakEscape"),e(r)):n(r)}}const LT={name:"headingAtx",resolve:OT,tokenize:DT};function OT(t,e){let n=t.length-2,s=3,i,r;return t[s][1].type==="whitespace"&&(s+=2),n-2>s&&t[n][1].type==="whitespace"&&(n-=2),t[n][1].type==="atxHeadingSequence"&&(s===n-1||n-4>s&&t[n-2][1].type==="whitespace")&&(n-=s+1===n?2:4),n>s&&(i={type:"atxHeadingText",start:t[s][1].start,end:t[n][1].end},r={type:"chunkText",start:t[s][1].start,end:t[n][1].end,contentType:"text"},Ys(t,s,n-s+1,[["enter",i,e],["enter",r,e],["exit",r,e],["exit",i,e]])),t}function DT(t,e,n){let s=0;return i;function i(f){return t.enter("atxHeading"),r(f)}function r(f){return t.enter("atxHeadingSequence"),c(f)}function c(f){return f===35&&s++<6?(t.consume(f),c):f===null||wa(f)?(t.exit("atxHeadingSequence"),p(f)):n(f)}function p(f){return f===35?(t.enter("atxHeadingSequence"),g(f)):f===null||Jt(f)?(t.exit("atxHeading"),e(f)):Re(f)?Xe(t,p,"whitespace")(f):(t.enter("atxHeadingText"),_(f))}function g(f){return f===35?(t.consume(f),g):(t.exit("atxHeadingSequence"),p(f))}function _(f){return f===null||f===35||wa(f)?(t.exit("atxHeadingText"),p(f)):(t.consume(f),_)}}const zT=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],m5=["pre","script","style","textarea"],BT={concrete:!0,name:"htmlFlow",resolveTo:HT,tokenize:FT},$T={partial:!0,tokenize:VT},GT={partial:!0,tokenize:UT};function HT(t){let e=t.length;for(;e--&&!(t[e][0]==="enter"&&t[e][1].type==="htmlFlow"););return e>1&&t[e-2][1].type==="linePrefix"&&(t[e][1].start=t[e-2][1].start,t[e+1][1].start=t[e-2][1].start,t.splice(e-2,2)),t}function FT(t,e,n){const s=this;let i,r,c,p,g;return _;function _(O){return f(O)}function f(O){return t.enter("htmlFlow"),t.enter("htmlFlowData"),t.consume(O),h}function h(O){return O===33?(t.consume(O),v):O===47?(t.consume(O),r=!0,x):O===63?(t.consume(O),i=3,s.interrupt?e:M):Vs(O)?(t.consume(O),c=String.fromCharCode(O),w):n(O)}function v(O){return O===45?(t.consume(O),i=2,b):O===91?(t.consume(O),i=5,p=0,S):Vs(O)?(t.consume(O),i=4,s.interrupt?e:M):n(O)}function b(O){return O===45?(t.consume(O),s.interrupt?e:M):n(O)}function S(O){const z="CDATA[";return O===z.charCodeAt(p++)?(t.consume(O),p===z.length?s.interrupt?e:$:S):n(O)}function x(O){return Vs(O)?(t.consume(O),c=String.fromCharCode(O),w):n(O)}function w(O){if(O===null||O===47||O===62||wa(O)){const z=O===47,Y=c.toLowerCase();return!z&&!r&&m5.includes(Y)?(i=1,s.interrupt?e(O):$(O)):zT.includes(c.toLowerCase())?(i=6,z?(t.consume(O),A):s.interrupt?e(O):$(O)):(i=7,s.interrupt&&!s.parser.lazy[s.now().line]?n(O):r?E(O):I(O))}return O===45||Fa(O)?(t.consume(O),c+=String.fromCharCode(O),w):n(O)}function A(O){return O===62?(t.consume(O),s.interrupt?e:$):n(O)}function E(O){return Re(O)?(t.consume(O),E):B(O)}function I(O){return O===47?(t.consume(O),B):O===58||O===95||Vs(O)?(t.consume(O),j):Re(O)?(t.consume(O),I):B(O)}function j(O){return O===45||O===46||O===58||O===95||Fa(O)?(t.consume(O),j):T(O)}function T(O){return O===61?(t.consume(O),P):Re(O)?(t.consume(O),T):I(O)}function P(O){return O===null||O===60||O===61||O===62||O===96?n(O):O===34||O===39?(t.consume(O),g=O,N):Re(O)?(t.consume(O),P):D(O)}function N(O){return O===g?(t.consume(O),g=null,F):O===null||Jt(O)?n(O):(t.consume(O),N)}function D(O){return O===null||O===34||O===39||O===47||O===60||O===61||O===62||O===96||wa(O)?T(O):(t.consume(O),D)}function F(O){return O===47||O===62||Re(O)?I(O):n(O)}function B(O){return O===62?(t.consume(O),L):n(O)}function L(O){return O===null||Jt(O)?$(O):Re(O)?(t.consume(O),L):n(O)}function $(O){return O===45&&i===2?(t.consume(O),U):O===60&&i===1?(t.consume(O),H):O===62&&i===4?(t.consume(O),gt):O===63&&i===3?(t.consume(O),M):O===93&&i===5?(t.consume(O),lt):Jt(O)&&(i===6||i===7)?(t.exit("htmlFlowData"),t.check($T,rt,q)(O)):O===null||Jt(O)?(t.exit("htmlFlowData"),q(O)):(t.consume(O),$)}function q(O){return t.check(GT,Q,rt)(O)}
vendor: 9,074 bytes, line 68
68function Q(O){return t.enter("lineEnding"),t.consume(O),t.exit("lineEnding"),V}function V(O){return O===null||Jt(O)?q(O):(t.enter("htmlFlowData"),$(O))}function U(O){return O===45?(t.consume(O),M):$(O)}function H(O){return O===47?(t.consume(O),c="",st):$(O)}function st(O){if(O===62){const z=c.toLowerCase();return m5.includes(z)?(t.consume(O),gt):$(O)}return Vs(O)&&c.length<8?(t.consume(O),c+=String.fromCharCode(O),st):$(O)}function lt(O){return O===93?(t.consume(O),M):$(O)}function M(O){return O===62?(t.consume(O),gt):O===45&&i===2?(t.consume(O),M):$(O)}function gt(O){return O===null||Jt(O)?(t.exit("htmlFlowData"),rt(O)):(t.consume(O),gt)}function rt(O){return t.exit("htmlFlow"),e(O)}}function UT(t,e,n){const s=this;return i;function i(c){return Jt(c)?(t.enter("lineEnding"),t.consume(c),t.exit("lineEnding"),r):n(c)}function r(c){return s.parser.lazy[s.now().line]?n(c):e(c)}}function VT(t,e,n){return s;function s(i){return t.enter("lineEnding"),t.consume(i),t.exit("lineEnding"),t.attempt(Tg,e,n)}}const qT={name:"htmlText",tokenize:KT};function KT(t,e,n){const s=this;let i,r,c;return p;function p(M){return t.enter("htmlText"),t.enter("htmlTextData"),t.consume(M),g}function g(M){return M===33?(t.consume(M),_):M===47?(t.consume(M),T):M===63?(t.consume(M),I):Vs(M)?(t.consume(M),D):n(M)}function _(M){return M===45?(t.consume(M),f):M===91?(t.consume(M),r=0,S):Vs(M)?(t.consume(M),E):n(M)}function f(M){return M===45?(t.consume(M),b):n(M)}function h(M){return M===null?n(M):M===45?(t.consume(M),v):Jt(M)?(c=h,H(M)):(t.consume(M),h)}function v(M){return M===45?(t.consume(M),b):h(M)}function b(M){return M===62?U(M):M===45?v(M):h(M)}function S(M){const gt="CDATA[";return M===gt.charCodeAt(r++)?(t.consume(M),r===gt.length?x:S):n(M)}function x(M){return M===null?n(M):M===93?(t.consume(M),w):Jt(M)?(c=x,H(M)):(t.consume(M),x)}function w(M){return M===93?(t.consume(M),A):x(M)}function A(M){return M===62?U(M):M===93?(t.consume(M),A):x(M)}function E(M){return M===null||M===62?U(M):Jt(M)?(c=E,H(M)):(t.consume(M),E)}function I(M){return M===null?n(M):M===63?(t.consume(M),j):Jt(M)?(c=I,H(M)):(t.consume(M),I)}function j(M){return M===62?U(M):I(M)}function T(M){return Vs(M)?(t.consume(M),P):n(M)}function P(M){return M===45||Fa(M)?(t.consume(M),P):N(M)}function N(M){return Jt(M)?(c=N,H(M)):Re(M)?(t.consume(M),N):U(M)}function D(M){return M===45||Fa(M)?(t.consume(M),D):M===47||M===62||wa(M)?F(M):n(M)}function F(M){return M===47?(t.consume(M),U):M===58||M===95||Vs(M)?(t.consume(M),B):Jt(M)?(c=F,H(M)):Re(M)?(t.consume(M),F):U(M)}function B(M){return M===45||M===46||M===58||M===95||Fa(M)?(t.consume(M),B):L(M)}function L(M){return M===61?(t.consume(M),$):Jt(M)?(c=L,H(M)):Re(M)?(t.consume(M),L):F(M)}function $(M){return M===null||M===60||M===61||M===62||M===96?n(M):M===34||M===39?(t.consume(M),i=M,q):Jt(M)?(c=$,H(M)):Re(M)?(t.consume(M),$):(t.consume(M),Q)}function q(M){return M===i?(t.consume(M),i=void 0,V):M===null?n(M):Jt(M)?(c=q,H(M)):(t.consume(M),q)}function Q(M){return M===null||M===34||M===39||M===60||M===61||M===96?n(M):M===47||M===62||wa(M)?F(M):(t.consume(M),Q)}function V(M){return M===47||M===62||wa(M)?F(M):n(M)}function U(M){return M===62?(t.consume(M),t.exit("htmlTextData"),t.exit("htmlText"),e):n(M)}function H(M){return t.exit("htmlTextData"),t.enter("lineEnding"),t.consume(M),t.exit("lineEnding"),st}function st(M){return Re(M)?Xe(t,lt,"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(M):lt(M)}function lt(M){return t.enter("htmlTextData"),c(M)}}const n1={name:"labelEnd",resolveAll:QT,resolveTo:JT,tokenize:ZT},WT={tokenize:tj},XT={tokenize:ej},YT={tokenize:nj};function QT(t){let e=-1;const n=[];for(;++e<t.length;){const s=t[e][1];if(n.push(t[e]),s.type==="labelImage"||s.type==="labelLink"||s.type==="labelEnd"){const i=s.type==="labelImage"?4:2;s.type="data",e+=i}}return t.length!==n.length&&Ys(t,0,t.length,n),t}function JT(t,e){let n=t.length,s=0,i,r,c,p;for(;n--;)if(i=t[n][1],r){if(i.type==="link"||i.type==="labelLink"&&i._inactive)break;t[n][0]==="enter"&&i.type==="labelLink"&&(i._inactive=!0)}else if(c){if(t[n][0]==="enter"&&(i.type==="labelImage"||i.type==="labelLink")&&!i._balanced&&(r=n,i.type!=="labelLink")){s=2;break}}else i.type==="labelEnd"&&(c=n);const g={type:t[r][1].type==="labelLink"?"link":"image",start:{...t[r][1].start},end:{...t[t.length-1][1].end}},_={type:"label",start:{...t[r][1].start},end:{...t[c][1].end}},f={type:"labelText",start:{...t[r+s+2][1].end},end:{...t[c-2][1].start}};return p=[["enter",g,e],["enter",_,e]],p=os(p,t.slice(r+1,r+s+3)),p=os(p,[["enter",f,e]]),p=os(p,e1(e.parser.constructs.insideSpan.null,t.slice(r+s+4,c-3),e)),p=os(p,[["exit",f,e],t[c-2],t[c-1],["exit",_,e]]),p=os(p,t.slice(c+1)),p=os(p,[["exit",g,e]]),Ys(t,r,t.length,p),t}function ZT(t,e,n){const s=this;let i=s.events.length,r,c;for(;i--;)if((s.events[i][1].type==="labelImage"||s.events[i][1].type==="labelLink")&&!s.events[i][1]._balanced){r=s.events[i][1];break}return p;function p(v){return r?r._inactive?h(v):(c=s.parser.defined.includes(ru(s.sliceSerialize({start:r.end,end:s.now()}))),t.enter("labelEnd"),t.enter("labelMarker"),t.consume(v),t.exit("labelMarker"),t.exit("labelEnd"),g):n(v)}function g(v){return v===40?t.attempt(WT,f,c?f:h)(v):v===91?t.attempt(XT,f,c?_:h)(v):c?f(v):h(v)}function _(v){return t.attempt(YT,f,h)(v)}function f(v){return e(v)}function h(v){return r._balanced=!0,n(v)}}function tj(t,e,n){return s;function s(h){return t.enter("resource"),t.enter("resourceMarker"),t.consume(h),t.exit("resourceMarker"),i}function i(h){return wa(h)?tc(t,r)(h):r(h)}function r(h){return h===41?f(h):s6(t,c,p,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(h)}function c(h){return wa(h)?tc(t,g)(h):f(h)}function p(h){return n(h)}function g(h){return h===34||h===39||h===40?i6(t,_,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(h):f(h)}function _(h){return wa(h)?tc(t,f)(h):f(h)}function f(h){return h===41?(t.enter("resourceMarker"),t.consume(h),t.exit("resourceMarker"),t.exit("resource"),e):n(h)}}function ej(t,e,n){const s=this;return i;function i(p){return o6.call(s,t,r,c,"reference","referenceMarker","referenceString")(p)}function r(p){return s.parser.defined.includes(ru(s.sliceSerialize(s.events[s.events.length-1][1]).slice(1,-1)))?e(p):n(p)}function c(p){return n(p)}}function nj(t,e,n){return s;function s(r){return t.enter("reference"),t.enter("referenceMarker"),t.consume(r),t.exit("referenceMarker"),i}function i(r){return r===93?(t.enter("referenceMarker"),t.consume(r),t.exit("referenceMarker"),t.exit("reference"),e):n(r)}}const aj={name:"labelStartImage",resolveAll:n1.resolveAll,tokenize:sj};function sj(t,e,n){const s=this;return i;function i(p){return t.enter("labelImage"),t.enter("labelImageMarker"),t.consume(p),t.exit("labelImageMarker"),r}function r(p){return p===91?(t.enter("labelMarker"),t.consume(p),t.exit("labelMarker"),t.exit("labelImage"),c):n(p)}function c(p){return p===94&&"_hiddenFootnoteSupport"in s.parser.constructs?n(p):e(p)}}const oj={name:"labelStartLink",resolveAll:n1.resolveAll,tokenize:ij};function ij(t,e,n){const s=this;return i;function i(c){return t.enter("labelLink"),t.enter("labelMarker"),t.consume(c),t.exit("labelMarker"),t.exit("labelLink"),r}function r(c){return c===94&&"_hiddenFootnoteSupport"in s.parser.constructs?n(c):e(c)}}const Z_={name:"lineEnding",tokenize:rj};function rj(t,e){return n;function n(s){return t.enter("lineEnding"),t.consume(s),t.exit("lineEnding"),Xe(t,e,"linePrefix")}}const Lp={name:"thematicBreak",tokenize:uj};function uj(t,e,n){let s=0,i;return r;function r(_){return t.enter("thematicBreak"),c(_)}function c(_){return i=_,p(_)}function p(_){return _===i?(t.enter("thematicBreakSequence"),g(_)):s>=3&&(_===null||Jt(_))?(t.exit("thematicBreak"),e(_)):n(_)}function g(_){return _===i?(t.consume(_),s++,g):(t.exit("thematicBreakSequence"),Re(_)?Xe(t,p,"whitespace")(_):p(_))}}const Ca={continuation:{tokenize:pj},exit:mj,name:"list",tokenize:dj},lj={partial:!0,tokenize:hj},cj={partial:!0,tokenize:gj};function dj(t,e,n){const s=this,i=s.events[s.events.length-1];let r=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,c=0;return p;function p(b){const S=s.containerState.type||(b===42||b===43||b===45?"listUnordered":"listOrdered");if(S==="listUnordered"?!s.containerState.marker||b===s.containerState.marker:Pk(b)){if(s.containerState.type||(s.containerState.type=S,t.enter(S,{_container:!0})),S==="listUnordered")return t.enter("listItemPrefix"),b===42||b===45?t.check(Lp,n,_)(b):_(b);if(!s.interrupt||b===49)return t.enter("listItemPrefix"),t.enter("listItemValue"),g(b)}return n(b)}function g(b){return Pk(b)&&++c<10?(t.consume(b),g):(!s.interrupt||c<2)&&(s.containerState.marker?b===s.containerState.marker:b===41||b===46)?(t.exit("listItemValue"),_(b)):n(b)}function _(b){return t.enter("listItemMarker"),t.consume(b),t.exit("listItemMarker"),s.containerState.marker=s.containerState.marker||b,t.check(Tg,s.interrupt?n:f,t.attempt(lj,v,h))}
vendor: 5,359 bytes, line 68
68function f(b){return s.containerState.initialBlankLine=!0,r++,v(b)}function h(b){return Re(b)?(t.enter("listItemPrefixWhitespace"),t.consume(b),t.exit("listItemPrefixWhitespace"),v):n(b)}function v(b){return s.containerState.size=r+s.sliceSerialize(t.exit("listItemPrefix"),!0).length,e(b)}}function pj(t,e,n){const s=this;return s.containerState._closeFlow=void 0,t.check(Tg,i,r);function i(p){return s.containerState.furtherBlankLines=s.containerState.furtherBlankLines||s.containerState.initialBlankLine,Xe(t,e,"listItemIndent",s.containerState.size+1)(p)}function r(p){return s.containerState.furtherBlankLines||!Re(p)?(s.containerState.furtherBlankLines=void 0,s.containerState.initialBlankLine=void 0,c(p)):(s.containerState.furtherBlankLines=void 0,s.containerState.initialBlankLine=void 0,t.attempt(cj,e,c)(p))}function c(p){return s.containerState._closeFlow=!0,s.interrupt=void 0,Xe(t,t.attempt(Ca,e,n),"linePrefix",s.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(p)}}function gj(t,e,n){const s=this;return Xe(t,i,"listItemIndent",s.containerState.size+1);function i(r){const c=s.events[s.events.length-1];return c&&c[1].type==="listItemIndent"&&c[2].sliceSerialize(c[1],!0).length===s.containerState.size?e(r):n(r)}}function mj(t){t.exit(this.containerState.type)}function hj(t,e,n){const s=this;return Xe(t,i,"listItemPrefixWhitespace",s.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function i(r){const c=s.events[s.events.length-1];return!Re(r)&&c&&c[1].type==="listItemPrefixWhitespace"?e(r):n(r)}}const h5={name:"setextUnderline",resolveTo:_j,tokenize:fj};function _j(t,e){let n=t.length,s,i,r;for(;n--;)if(t[n][0]==="enter"){if(t[n][1].type==="content"){s=n;break}t[n][1].type==="paragraph"&&(i=n)}else t[n][1].type==="content"&&t.splice(n,1),!r&&t[n][1].type==="definition"&&(r=n);const c={type:"setextHeading",start:{...t[s][1].start},end:{...t[t.length-1][1].end}};return t[i][1].type="setextHeadingText",r?(t.splice(i,0,["enter",c,e]),t.splice(r+1,0,["exit",t[s][1],e]),t[s][1].end={...t[r][1].end}):t[s][1]=c,t.push(["exit",c,e]),t}function fj(t,e,n){const s=this;let i;return r;function r(_){let f=s.events.length,h;for(;f--;)if(s.events[f][1].type!=="lineEnding"&&s.events[f][1].type!=="linePrefix"&&s.events[f][1].type!=="content"){h=s.events[f][1].type==="paragraph";break}return!s.parser.lazy[s.now().line]&&(s.interrupt||h)?(t.enter("setextHeadingLine"),i=_,c(_)):n(_)}function c(_){return t.enter("setextHeadingLineSequence"),p(_)}function p(_){return _===i?(t.consume(_),p):(t.exit("setextHeadingLineSequence"),Re(_)?Xe(t,g,"lineSuffix")(_):g(_))}function g(_){return _===null||Jt(_)?(t.exit("setextHeadingLine"),e(_)):n(_)}}const kj={tokenize:vj};function vj(t){const e=this,n=t.attempt(Tg,s,t.attempt(this.parser.constructs.flowInitial,i,Xe(t,t.attempt(this.parser.constructs.flow,i,t.attempt(CT,i)),"linePrefix")));return n;function s(r){if(r===null){t.consume(r);return}return t.enter("lineEndingBlank"),t.consume(r),t.exit("lineEndingBlank"),e.currentConstruct=void 0,n}function i(r){if(r===null){t.consume(r);return}return t.enter("lineEnding"),t.consume(r),t.exit("lineEnding"),e.currentConstruct=void 0,n}}const yj={resolveAll:u6()},bj=r6("string"),xj=r6("text");function r6(t){return{resolveAll:u6(t==="text"?Aj:void 0),tokenize:e};function e(n){const s=this,i=this.parser.constructs[t],r=n.attempt(i,c,p);return c;function c(f){return _(f)?r(f):p(f)}function p(f){if(f===null){n.consume(f);return}return n.enter("data"),n.consume(f),g}function g(f){return _(f)?(n.exit("data"),r(f)):(n.consume(f),g)}function _(f){if(f===null)return!0;const h=i[f];let v=-1;if(h)for(;++v<h.length;){const b=h[v];if(!b.previous||b.previous.call(s,s.previous))return!0}return!1}}}function u6(t){return e;function e(n,s){let i=-1,r;for(;++i<=n.length;)r===void 0?n[i]&&n[i][1].type==="data"&&(r=i,i++):(!n[i]||n[i][1].type!=="data")&&(i!==r+2&&(n[r][1].end=n[i-1][1].end,n.splice(r+2,i-r-2),i=r+2),r=void 0);return t?t(n,s):n}}function Aj(t,e){let n=0;for(;++n<=t.length;)if((n===t.length||t[n][1].type==="lineEnding")&&t[n-1][1].type==="data"){const s=t[n-1][1],i=e.sliceStream(s);let r=i.length,c=-1,p=0,g;for(;r--;){const _=i[r];if(typeof _=="string"){for(c=_.length;_.charCodeAt(c-1)===32;)p++,c--;if(c)break;c=-1}else if(_===-2)g=!0,p++;else if(_!==-1){r++;break}}if(e._contentTypeTextTrailing&&n===t.length&&(p=0),p){const _={type:n===t.length||g||p<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:r?c:s.start._bufferIndex+c,_index:s.start._index+r,line:s.end.line,column:s.end.column-p,offset:s.end.offset-p},end:{...s.end}};s.end={..._.start},s.start.offset===s.end.offset?Object.assign(s,_):(t.splice(n,0,["enter",_,e],["exit",_,e]),n+=2)}n++}return t}const Cj={42:Ca,43:Ca,45:Ca,48:Ca,49:Ca,50:Ca,51:Ca,52:Ca,53:Ca,54:Ca,55:Ca,56:Ca,57:Ca,62:t6},Sj={91:NT},wj={[-2]:J_,[-1]:J_,32:J_},Ej={35:LT,42:Lp,45:[h5,Lp],60:BT,61:h5,95:Lp,96:g5,126:g5},Ij={38:n6,92:e6},Nj={[-5]:Z_,[-4]:Z_,[-3]:Z_,33:aj,38:n6,42:Mk,60:[oT,qT],91:oj,92:[PT,e6],93:n1,95:Mk,96:kT},Rj={null:[Mk,yj]},Tj={null:[42,95]},jj={null:[]},Pj=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:Tj,contentInitial:Sj,disable:jj,document:Cj,flow:Ej,flowInitial:wj,insideSpan:Rj,string:Ij,text:Nj},Symbol.toStringTag,{value:"Module"}));function Mj(t,e,n){let s={_bufferIndex:-1,_index:0,line:n&&n.line||1,c
vendor: 14,818 bytes, lines 68-70
68olumn:n&&n.column||1,offset:n&&n.offset||0};const i={},r=[];let c=[],p=[];const g={attempt:N(T),check:N(P),consume:E,enter:I,exit:j,interrupt:N(P,{interrupt:!0})},_={code:null,containerState:{},defineSkip:x,events:[],now:S,parser:t,previous:null,sliceSerialize:v,sliceStream:b,write:h};let f=e.tokenize.call(_,g);return e.resolveAll&&r.push(e),_;function h(L){return c=os(c,L),w(),c[c.length-1]!==null?[]:(D(e,0),_.events=e1(r,_.events,_),_.events)}function v(L,$){return Oj(b(L),$)}function b(L){return Lj(c,L)}function S(){const{_bufferIndex:L,_index:$,line:q,column:Q,offset:V}=s;return{_bufferIndex:L,_index:$,line:q,column:Q,offset:V}}function x(L){i[L.line]=L.column,B()}function w(){let L;for(;s._index<c.length;){const $=c[s._index];if(typeof $=="string")for(L=s._index,s._bufferIndex<0&&(s._bufferIndex=0);s._index===L&&s._bufferIndex<$.length;)A($.charCodeAt(s._bufferIndex));else A($)}}function A(L){f=f(L)}function E(L){Jt(L)?(s.line++,s.column=1,s.offset+=L===-3?2:1,B()):L!==-1&&(s.column++,s.offset++),s._bufferIndex<0?s._index++:(s._bufferIndex++,s._bufferIndex===c[s._index].length&&(s._bufferIndex=-1,s._index++)),_.previous=L}function I(L,$){const q=$||{};return q.type=L,q.start=S(),_.events.push(["enter",q,_]),p.push(q),q}function j(L){const $=p.pop();return $.end=S(),_.events.push(["exit",$,_]),$}function T(L,$){D(L,$.from)}function P(L,$){$.restore()}function N(L,$){return q;function q(Q,V,U){let H,st,lt,M;return Array.isArray(Q)?rt(Q):"tokenize"in Q?rt([Q]):gt(Q);function gt(it){return W;function W(ut){const ht=ut!==null&&it[ut],yt=ut!==null&&it.null,ft=[...Array.isArray(ht)?ht:ht?[ht]:[],...Array.isArray(yt)?yt:yt?[yt]:[]];return rt(ft)(ut)}}function rt(it){return H=it,st=0,it.length===0?U:O(it[st])}function O(it){return W;function W(ut){return M=F(),lt=it,it.partial||(_.currentConstruct=it),it.name&&_.parser.constructs.disable.null.includes(it.name)?Y():it.tokenize.call($?Object.assign(Object.create(_),$):_,g,z,Y)(ut)}}function z(it){return L(lt,M),V}function Y(it){return M.restore(),++st<H.length?O(H[st]):U}}}function D(L,$){L.resolveAll&&!r.includes(L)&&r.push(L),L.resolve&&Ys(_.events,$,_.events.length-$,L.resolve(_.events.slice($),_)),L.resolveTo&&(_.events=L.resolveTo(_.events,_))}function F(){const L=S(),$=_.previous,q=_.currentConstruct,Q=_.events.length,V=Array.from(p);return{from:Q,restore:U};function U(){s=L,_.previous=$,_.currentConstruct=q,_.events.length=Q,p=V,B()}}function B(){s.line in i&&s.column<2&&(s.column=i[s.line],s.offset+=i[s.line]-1)}}function Lj(t,e){const n=e.start._index,s=e.start._bufferIndex,i=e.end._index,r=e.end._bufferIndex;let c;if(n===i)c=[t[n].slice(s,r)];else{if(c=t.slice(n,i),s>-1){const p=c[0];typeof p=="string"?c[0]=p.slice(s):c.shift()}r>0&&c.push(t[i].slice(0,r))}return c}function Oj(t,e){let n=-1;const s=[];let i;for(;++n<t.length;){const r=t[n];let c;if(typeof r=="string")c=r;else switch(r){case-5:{c="\r";break}case-4:{c=`
69`;break}case-3:{c=`\r
70`;break}case-2:{c=e?" ":"	";break}case-1:{if(!e&&i)continue;c=" ";break}default:c=String.fromCharCode(r)}i=r===-2,s.push(c)}return s.join("")}function Dj(t){const s={constructs:UR([Pj,...(t||{}).extensions||[]]),content:i(JR),defined:[],document:i(tT),flow:i(kj),lazy:{},string:i(bj),text:i(xj)};return s;function i(r){return c;function c(p){return Mj(s,r,p)}}}function zj(t){for(;!a6(t););return t}const _5=/[\0\t\n\r]/g;function Bj(){let t=1,e="",n=!0,s;return i;function i(r,c,p){const g=[];let _,f,h,v,b;for(r=e+(typeof r=="string"?r.toString():new TextDecoder(c||void 0).decode(r)),h=0,e="",n&&(r.charCodeAt(0)===65279&&h++,n=void 0);h<r.length;){if(_5.lastIndex=h,_=_5.exec(r),v=_&&_.index!==void 0?_.index:r.length,b=r.charCodeAt(v),!_){e=r.slice(h);break}if(b===10&&h===v&&s)g.push(-3),s=void 0;else switch(s&&(g.push(-5),s=void 0),h<v&&(g.push(r.slice(h,v)),t+=v-h),b){case 0:{g.push(65533),t++;break}case 9:{for(f=Math.ceil(t/4)*4,g.push(-2);t++<f;)g.push(-1);break}case 10:{g.push(-4),t=1;break}default:s=!0,t=1}h=v+1}return p&&(s&&g.push(-5),e&&g.push(e),g.push(null)),g}}const $j=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Gj(t){return t.replace($j,Hj)}function Hj(t,e,n){if(e)return e;if(n.charCodeAt(0)===35){const i=n.charCodeAt(1),r=i===120||i===88;return Z7(n.slice(r?2:1),r?16:10)}return t1(n)||t}const l6={}.hasOwnProperty;function Fj(t,e,n){return e&&typeof e=="object"&&(n=e,e=void 0),Uj(n)(zj(Dj(n).document().write(Bj()(t,e,!0))))}function Uj(t){const e={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:r(Bt),autolinkProtocol:F,autolinkEmail:F,atxHeading:r(Pt),blockQuote:r(yt),characterEscape:F,characterReference:F,codeFenced:r(ft),codeFencedFenceInfo:c,codeFencedFenceMeta:c,codeIndented:r(ft,c),codeText:r(mt,c),codeTextData:F,data:F,codeFlowValue:F,definition:r(wt),definitionDestinationString:c,definitionLabelString:c,definitionTitleString:c,emphasis:r(It),hardBreakEscape:r(Nt),hardBreakTrailing:r(Nt),htmlFlow:r(kt,c),htmlFlowData:F,htmlText:r(kt,c),htmlTextData:F,image:r(pt),label:c,link:r(Bt),listItem:r(Xt),listItemValue:v,listOrdered:r(ne,h),listUnordered:r(ne),paragraph:r(Ut),reference:O,referenceString:c,resourceDestinationString:c,resourceTitleString:c,setextHeading:r(Pt),strong:r(Se),thematicBreak:r(ge)},exit:{atxHeading:g(),atxHeadingSequence:T,autolink:g(),autolinkEmail:ht,autolinkProtocol:ut,blockQuote:g(),characterEscapeValue:B,characterReferenceMarkerHexadecimal:Y,characterReferenceMarkerNumeric:Y,characterReferenceValue:it,characterReference:W,codeFenced:g(w),codeFencedFence:x,codeFencedFenceInfo:b,codeFencedFenceMeta:S,codeFlowValue:B,codeIndented:g(A),codeText:g(V),codeTextData:B,data:B,definition:g(),definitionDestinationString:j,definitionLabelString:E,definitionTitleString:I,emphasis:g(),hardBreakEscape:g($),hardBreakTrailing:g($),htmlFlow:g(q),htmlFlowData:B,htmlText:g(Q),htmlTextData:B,image:g(H),label:lt,labelText:st,lineEnding:L,link:g(U),listItem:g(),listOrdered:g(),listUnordered:g(),paragraph:g(),referenceString:z,resourceDestinationString:M,resourceTitleString:gt,resource:rt,setextHeading:g(D),setextHeadingLineSequence:N,setextHeadingText:P,strong:g(),thematicBreak:g()}};c6(e,(t||{}).mdastExtensions||[]);const n={};return s;function s(at){let _t={type:"root",children:[]};const Tt={stack:[_t],tokenStack:[],config:e,enter:p,exit:_,buffer:c,resume:f,data:n},jt=[];let Ht=-1;for(;++Ht<at.length;)if(at[Ht][1].type==="listOrdered"||at[Ht][1].type==="listUnordered")if(at[Ht][0]==="enter")jt.push(Ht);else{const Ct=jt.pop();Ht=i(at,Ct,Ht)}for(Ht=-1;++Ht<at.length;){const Ct=e[at[Ht][0]];l6.call(Ct,at[Ht][1].type)&&Ct[at[Ht][1].type].call(Object.assign({sliceSerialize:at[Ht][2].sliceSerialize},Tt),at[Ht][1])}if(Tt.tokenStack.length>0){const Ct=Tt.tokenStack[Tt.tokenStack.length-1];(Ct[1]||f5).call(Tt,void 0,Ct[0])}for(_t.position={start:qo(at.length>0?at[0][1].start:{line:1,column:1,offset:0}),end:qo(at.length>0?at[at.length-2][1].end:{line:1,column:1,offset:0})},Ht=-1;++Ht<e.transforms.length;)_t=e.transforms[Ht](_t)||_t;return _t}function i(at,_t,Tt){let jt=_t-1,Ht=-1,Ct=!1,bt,ae,pe,ve;for(;++jt<=Tt;){const Dt=at[jt];switch(Dt[1].type){case"listUnordered":case"listOrdered":case"blockQuote":{Dt[0]==="enter"?Ht++:Ht--,ve=void 0;break}case"lineEndingBlank":{Dt[0]==="enter"&&(bt&&!ve&&!Ht&&!pe&&(pe=jt),ve=void 0);break}case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:ve=void 0}if(!Ht&&Dt[0]==="enter"&&Dt[1].type==="listItemPrefix"||Ht===-1&&Dt[0]==="exit"&&(Dt[1].type==="listUnordered"||Dt[1].type==="listOrdered")){if(bt){let Yt=jt;for(ae=void 0;Yt--;){const Qt=at[Yt];if(Qt[1].type==="lineEnding"||Qt[1].type==="lineEndingBlank"){if(Qt[0]==="exit")continue;ae&&(at[ae][1].type="lineEndingBlank",Ct=!0),Qt[1].type="lineEnding",ae=Yt}else if(!(Qt[1].type==="linePrefix"||Qt[1].type==="blockQuotePrefix"||Qt[1].type==="blockQuotePrefixWhitespace"||Qt[1].type==="blockQuoteMarker"||Qt[1].type==="listItemIndent"))break}pe&&(!ae||pe<ae)&&(bt._spread=!0),bt.end=Object.assign({},ae?at[ae][1].start:Dt[1].end),at.splice(ae||jt,0,["exit",bt,Dt[2]]),jt++,Tt++}if(Dt[1].type==="listItemPrefix"){const Yt={type:"listItem",_spread:!1,start:Object.assign({},Dt[1].start),end:void 0};bt=Yt,at.splice(jt,0,["enter",Yt,Dt[2]]),jt++,Tt++,pe=void 0,ve=!0}}}return at[_t][1]._spread=Ct,Tt}function r(at,_t){return Tt;function Tt(jt){p.call(this,at(jt),jt),_t&&_t.call(this,jt)}}function c(){this.stack.push({type:"fragment",children:[]})}function p(at,_t,Tt){this.stack[this.stack.length-1].children.push(at),this.stack.push(at),this.tokenStack.push([_t,Tt||void 0]),at.position={start:qo(_t.start),end:void 0}}function g(at){return _t;function _t(Tt){at&&at.call(this,Tt),_.call(this,Tt)}}function _(at,_t){const Tt=this.stack.pop(),jt=this.tokenStack.pop();if(jt)jt[0].type!==at.type&&(_t?_t.call(this,at,jt[0]):(jt[1]||f5).call(this,at,jt[0]));else throw new Error("Cannot close `"+at.type+"` ("+Zl({start:at.start,end:at.end})+"): it’s not open");Tt.position.end=qo(at.end)}function f(){return HR(this.stack.pop())}function h(){this.data.expectingFirstListItemValue=!0}function v(at){if(this.data.expectingFirstListItemValue){const _t=this.stack[this.stack.length-2];_t.start=Number.parseInt(this.sliceSerialize(at),10),this.data.expectingFirstListItemValue=void 0}}function b(){const at=this.resume(),_t=this.stack[this.stack.length-1];_t.lang=at}function S(){const at=this.resume(),_t=this.stack[this.stack.length-1];_t.meta=at}function x(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function w(){const at=this.resume(),_t=this.stack[this.stack.length-1];_t.value=at.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}function A(){const at=this.resume(),_t=this.stack[this.stack.length-1];_t.value=at.replace(/(\r?\n|\r)$/g,"")}function E(at){const _t=this.resume(),Tt=this.stack[this.stack.length-1];Tt.label=_t,Tt.identifier=ru(this.sliceSerialize(at)).toLowerCase()}function I(){const at=this.resume(),_t=this.stack[this.stack.length-1];_t.title=at}function j(){const at=this.resume(),_t=this.stack[this.stack.length-1];_t.url=at}function T(at){const _t=this.stack[this.stack.length-1];if(!_t.depth){const Tt=this.sliceSerialize(at).length;_t.depth=Tt}}function P(){this.data.setextHeadingSlurpLineEnding=!0}function N(at){const _t=this.stack[this.stack.length-1];_t.depth=this.sliceSerialize(at).codePointAt(0)===61?1:2}function D(){this.data.setextHeadingSlurpLineEnding=void 0}function F(at){const Tt=this.stack[this.stack.length-1].children;let jt=Tt[Tt.length-1];(!jt||jt.type!=="text")&&(jt=ue(),jt.position={start:qo(at.start),end:void 0},Tt.push(jt)),this.stack.push(jt)}function B(at){const _t=this.stack.pop();_t.value+=this.sliceSerialize(at),_t.position.end=qo(at.end)}function L(at){const _t=this.stack[this.stack.length-1];if(this.data.atHardBreak){const Tt=_t.children[_t.children.length-1];Tt.position.end=qo(at.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&e.canContainEols.includes(_t.type)&&(F.call(this,at),B.call(this,at))}function $(){this.data.atHardBreak=!0}function q(){const at=this.resume(),_t=this.stack[this.stack.length-1];_t.value=at}function Q(){const at=this.resume(),_t=this.stack[this.stack.length-1];_t.value=at}function V(){const at=this.resume(),_t=this.stack[this.stack.length-1];_t.value=at}function U(){const at=this.stack[this.stack.length-1];if(this.data.inReference){const _t=this.data.referenceType||"shortcut";at.type+="Reference",at.referenceType=_t,delete at.url,delete at.title}else delete at.identifier,delete at.label;this.data.referenceType=void 0}function H(){const at=this.stack[this.stack.length-1];if(this.data.inReference){const _t=this.data.referenceType||"shortcut";at.type+="Reference",at.referenceType=_t,delete at.url,delete at.title}else delete at.identifier,delete at.label;this.data.referenceType=void 0}function st(at){const _t=this.sliceSerialize(at),Tt=this.stack[this.stack.length-2];Tt.label=Gj(_t),Tt.identifier=ru(_t).toLowerCase()}function lt(){const at=this.stack[this.stack.length-1],_t=this.resume(),Tt=this.stack[this.stack.length-1];if(this.data.inReference=!0,Tt.type==="link"){const jt=at.children;Tt.children=jt}else Tt.alt=_t}function M(){const at=this.resume(),_t=this.stack[this.stack.length-1];_t.url=at}function gt(){const at=this.resume(),_t=this.stack[this.stack.length-1];_t.title=at}function rt(){this.data.inReference=void 0}function O(){this.data.referenceType="collapsed"}function z(at){const _t=this.resume(),Tt=this.stack[this.stack.length-1];Tt.label=_t,Tt.identifier=ru(this.sliceSerialize(at)).toLowerCase(),this.data.referenceType="full"}function Y(at){this.data.characterReferenceType=at.type}function it(at){const _t=this.sliceSerialize(at),Tt=this.data.characterReferenceType;let jt;Tt?(jt=Z7(_t,Tt==="characterReferenceMarkerNumeric"?10:16),this.data.characterReferenceType=void 0):jt=t1(_t);const Ht=this.stack[this.stack.length-1];Ht.value+=jt}function W(at){const _t=this.stack.pop();_t.position.end=qo(at.end)}function ut(at){B.call(this,at);const _t=this.stack[this.stack.length-1];_t.url=this.sliceSerialize(at)}function ht(at){B.call(this,at);const _t=this.stack[this.stack.length-1];_t.url="mailto:"+this.sliceSerialize(at)}function yt(){return{type:"blockquote",children:[]}}function ft(){return{type:"code",lang:null,meta:null,value:""}}function mt(){return{type:"inlineCode",value:""}}function wt(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function It(){return{type:"emphasis",children:[]}}function Pt(){return{type:"heading",depth:0,children:[]}}function Nt(){return{type:"break"}}function kt(){return{type:"html",value:""}}function pt(){return{type:"image",title:null,url:"",alt:null}}function Bt(){return{type:"link",title:null,url:"",children:[]}}function ne(at){return{type:"list",ordered:at.type==="listOrdered",start:null,spread:at._spread,children:[]}}function Xt(at){return{type:"listItem",spread:at._spread,checked:null,children:[]}}function Ut(){return{type:"paragraph",children:[]}}function Se(){return{type:"strong",children:[]}}function ue(){return{type:"text",value:""}}function ge(){return{type:"thematicBreak"}}}function qo(t){return{line:t.line,column:t.column,offset:t.offset}}function c6(t,e){let n=-1;for(;++n<e.length;){const s=e[n];Array.isArray(s)?c6(t,s):Vj(t,s)}}function Vj(t,e){let n;for(n in e)if(l6.call(e,n))switch(n){case"canContainEols":{const s=e[n];s&&t[n].push(...s);break}case"transforms":{const s=e[n];s&&t[n].push(...s);break}case"enter":case"exit":{const s=e[n];s&&Object.assign(t[n],s);break}}}function f5(t,e){throw t?new Error("Cannot close `"+t.type+"` ("+Zl({start:t.start,end:t.end})+"): a different token (`"+e.type+"`, "+Zl({start:e.start,end:e.end}
vendor: 5,966 bytes, lines 70-74
70)+") is open"):new Error("Cannot close document, a token (`"+e.type+"`, "+Zl({start:e.start,end:e.end})+") is still open")}function qj(t){const e=this;e.parser=n;function n(s){return Fj(s,{...e.data("settings"),...t,extensions:e.data("micromarkExtensions")||[],mdastExtensions:e.data("fromMarkdownExtensions")||[]})}}function Kj(t,e){const n={type:"element",tagName:"blockquote",properties:{},children:t.wrap(t.all(e),!0)};return t.patch(e,n),t.applyData(e,n)}function Wj(t,e){const n={type:"element",tagName:"br",properties:{},children:[]};return t.patch(e,n),[t.applyData(e,n),{type:"text",value:`
71`}]}function Xj(t,e){const n=e.value?e.value+`
72`:"",s={},i=e.lang?e.lang.split(/\s+/):[];i.length>0&&(s.className=["language-"+i[0]]);let r={type:"element",tagName:"code",properties:s,children:[{type:"text",value:n}]};return e.meta&&(r.data={meta:e.meta}),t.patch(e,r),r=t.applyData(e,r),r={type:"element",tagName:"pre",properties:{},children:[r]},t.patch(e,r),r}function Yj(t,e){const n={type:"element",tagName:"del",properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)}function Qj(t,e){const n={type:"element",tagName:"em",properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)}function Jj(t,e){const n=typeof t.options.clobberPrefix=="string"?t.options.clobberPrefix:"user-content-",s=String(e.identifier).toUpperCase(),i=Au(s.toLowerCase()),r=t.footnoteOrder.indexOf(s);let c,p=t.footnoteCounts.get(s);p===void 0?(p=0,t.footnoteOrder.push(s),c=t.footnoteOrder.length):c=r+1,p+=1,t.footnoteCounts.set(s,p);const g={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+i,id:n+"fnref-"+i+(p>1?"-"+p:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(c)}]};t.patch(e,g);const _={type:"element",tagName:"sup",properties:{},children:[g]};return t.patch(e,_),t.applyData(e,_)}function Zj(t,e){const n={type:"element",tagName:"h"+e.depth,properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)}function tP(t,e){if(t.options.allowDangerousHtml){const n={type:"raw",value:e.value};return t.patch(e,n),t.applyData(e,n)}}function d6(t,e){const n=e.referenceType;let s="]";if(n==="collapsed"?s+="[]":n==="full"&&(s+="["+(e.label||e.identifier)+"]"),e.type==="imageReference")return[{type:"text",value:"!["+e.alt+s}];const i=t.all(e),r=i[0];r&&r.type==="text"?r.value="["+r.value:i.unshift({type:"text",value:"["});const c=i[i.length-1];return c&&c.type==="text"?c.value+=s:i.push({type:"text",value:s}),i}function eP(t,e){const n=String(e.identifier).toUpperCase(),s=t.definitionById.get(n);if(!s)return d6(t,e);const i={src:Au(s.url||""),alt:e.alt};s.title!==null&&s.title!==void 0&&(i.title=s.title);const r={type:"element",tagName:"img",properties:i,children:[]};return t.patch(e,r),t.applyData(e,r)}function nP(t,e){const n={src:Au(e.url)};e.alt!==null&&e.alt!==void 0&&(n.alt=e.alt),e.title!==null&&e.title!==void 0&&(n.title=e.title);const s={type:"element",tagName:"img",properties:n,children:[]};return t.patch(e,s),t.applyData(e,s)}function aP(t,e){const n={type:"text",value:e.value.replace(/\r?\n|\r/g," ")};t.patch(e,n);const s={type:"element",tagName:"code",properties:{},children:[n]};return t.patch(e,s),t.applyData(e,s)}function sP(t,e){const n=String(e.identifier).toUpperCase(),s=t.definitionById.get(n);if(!s)return d6(t,e);const i={href:Au(s.url||"")};s.title!==null&&s.title!==void 0&&(i.title=s.title);const r={type:"element",tagName:"a",properties:i,children:t.all(e)};return t.patch(e,r),t.applyData(e,r)}function oP(t,e){const n={href:Au(e.url)};e.title!==null&&e.title!==void 0&&(n.title=e.title);const s={type:"element",tagName:"a",properties:n,children:t.all(e)};return t.patch(e,s),t.applyData(e,s)}function iP(t,e,n){const s=t.all(e),i=n?rP(n):p6(e),r={},c=[];if(typeof e.checked=="boolean"){const f=s[0];let h;f&&f.type==="element"&&f.tagName==="p"?h=f:(h={type:"element",tagName:"p",properties:{},children:[]},s.unshift(h)),h.children.length>0&&h.children.unshift({type:"text",value:" "}),h.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:e.checked,disabled:!0},children:[]}),r.className=["task-list-item"]}let p=-1;for(;++p<s.length;){const f=s[p];(i||p!==0||f.type!=="element"||f.tagName!=="p")&&c.push({type:"text",value:`
73`}),f.type==="element"&&f.tagName==="p"&&!i?c.push(...f.children):c.push(f)}const g=s[s.length-1];g&&(i||g.type!=="element"||g.tagName!=="p")&&c.push({type:"text",value:`
74`});const _={type:"element",tagName:"li",properties:r,children:c};return t.patch(e,_),t.applyData(e,_)}function rP(t){let e=!1;if(t.type==="list"){e=t.spread||!1;const n=t.children;let s=-1;for(;!e&&++s<n.length;)e=p6(n[s])}return e}function p6(t){const e=t.spread;return e??t.children.length>1}function uP(t,e){const n={},s=t.all(e);let i=-1;for(typeof e.start=="number"&&e.start!==1&&(n.start=e.start);++i<s.length;){const c=s[i];if(c.type==="element"&&c.tagName==="li"&&c.properties&&Array.isArray(c.properties.className)&&c.properties.className.includes("task-list-item")){n.className=["contains-task-list"];break}}const r={type:"element",tagName:e.ordered?"ol":"ul",properties:n,children:t.wrap(s,!0)};return t.patch(e,r),t.applyData(e,r)}function lP(t,e){const n={type:"element",tagName:"p",properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)}function cP(t,e){const n={type:"root",children:t.wrap(t.all(e))};return t.patch(e,n),t.applyData(e,n)}function dP(t,e){const n={type:"element",tagName:"strong",properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)}function pP(t,e){const n=t.all(e),s=n.shift(),i=[];if(s){const c={type:"element",tagName:"thead",properties:{},children:t.wrap([s],!0)};t.patch(e.children[0],c),i.push(c)}if(n.length>0){const c={type:"element",tagName:"tbody",properties:{},children:t.wrap(n,!0)},p=Y0(e.children[1]),g=q7(e.children[e.children.length-1]);p&&g&&(c.position={start:p,end:g}),i.push(c)}const r={type:"element",tagName:"table",properties:{}
74,children:t.wrap(i,!0)};return t.patch(e,r),t.applyData(e,r)}function gP(t,e,n){const s=n?n.children:void 0,r=(s?s.indexOf(e):1)===0?"th":"td",c=n&&n.type==="table"?n.align:void 0,p=c?c.length:e.children.length;let g=-1;const _=[];for(;++g<p;){const h=e.children[g],v={},b=c?c[g]:void 0;b&&(v.align=b);let S={type:"element",tagName:r,properties:v,children:[]};h&&(S.children=t.all(h),t.patch(h,S),S=t.applyData(h,S)),_.push(S)}const f={type:"element",tagName:"tr",properties:{},children:t.wrap(_,!0)};return t.patch(e,f),t.applyData(e,f)}function mP(t,e){const n={type:"element",tagName:"td",properties:{},children:t.all(e)};return t.patch(e,n),t.applyData(e,n)}const k5=9,v5=32;function hP(t){const e=String(t),n=/\r?\n|\r/g;let s=n.exec(e),i=0;const r=[];for(;s;)r.push(y5(e.slice(i,s.index),i>0,!0),s[0]),i=s.index+s[0].length,s=n.exec(e);return r.push(y5(e.slice(i),i>0,!1)),r.join("")}function y5(t,e,n){let s=0,i=t.length;if(e){let r=t.codePointAt(s);for(;r===k5||r===v5;)s++,r=t.codePointAt(s)}if(n){let r=t.codePointAt(i-1);for(;r===k5||r===v5;)i--,r=t.codePointAt(i-1)}return i>s?t.slice(s,i):""}function _P(t,e){const n={type:"text",value:hP(String(e.value))};return t.patch(e,n),t.applyData(e,n)}function fP(t,e){const n={type:"element",tagName:"hr",properties:{},children:[]};return t.patch(e,n),t.applyData(e,n)}const kP={blockquote:Kj,break:Wj,code:Xj,delete:Yj,emphasis:Qj,footnoteReference:Jj,heading:Zj,html:tP,imageReference:eP,image:nP,inlineCode:aP,linkReference:sP,link:oP,listItem:iP,list:uP,paragraph:lP,root:cP,strong:dP,table:pP,tableCell:mP,tableRow:gP,text:_P,thematicBreak:fP,toml:_p,yaml:_p,definition:_p,footnoteDefinition:_p};function _p(){}const g6=-1,jg=0,ec=1,sg=2,a1=3,s1=4,o1=5,i1=6,m6=7,h6=8,{defineProperty:vP}=Object,_6=typeof self=="object"?self:globalThis,b5=(t,e)=>{switch(t){case"Function":case"SharedWorker":case"Worker":case"eval":case"setInterval":case"setTimeout":throw new TypeError("unable to deserialize "+t)}return new _6[t](e)},yP=(t,e)=>{const n=(i,r)=>(t.set(r,i),i),s=i=>{if(t.has(i))return t.get(i);const[r,c]=e[i];switch(r){case jg:case g6:return n(c,i);case ec:{const p=n([],i);for(const g of c)p.push(s(g));return p}case sg:{const p=n({},i);for(const[g,_]of c){const f=s(g),h=s(_);f==="__proto__"?vP(p,f,{value:h,configurable:!0,enumerable:!0,writable:!0}):p[f]=h}return p}case a1:return n(new Date(c),i);case s1:{const{source:p,flags:g}=c;return n(new RegExp(p,g),i)}case o1:{const p=n(new Map,i);for(const[g,_]of c)p.set(s(g),s(_));return p}case i1:{const p=n(new Set,i);for(const g of c)p.add(s(g));return p}case m6:{const{name:p,message:g}=c;return n(typeof _6[p]=="function"?b5(p,g):new Error(g),i)}case h6:return n(BigInt(c),i);case"BigInt":return n(Object(BigInt(c)),i);case"ArrayBuffer":return n(new Uint8Array(c).buffer,c);case"DataView":{const{buffer:p}=new Uint8Array(c);return n(new DataView(p),c)}case"-0":return-0}return n(b5(r,c),i)};return s},x5=t=>yP(new Map,t)(0),Ni="",{toString:bP}={},{keys:xP,is:AP}=Object,Tl=t=>{const e=typeof t;if(e!=="object"||!t)return[jg,e];const n=bP.call(t).slice(8,-1);switch(n){case"Array":return[ec,Ni];case"Object":return[sg,Ni];case"Date":return[a1,Ni];case"RegExp":return[s1,Ni];case"Map":return[o1,Ni];case"Set":return[i1,Ni];case"DataView":return[ec,n]}return n.includes("Array")?[ec,n]:t instanceof Error?[m6,t.name||"Error"]:[sg,n]},fp=([t,e])=>t===jg&&(e==="function"||e==="symbol"),CP=(t,e,n,s)=>{const i=(c,p)=>{const g=s.push(c)-1;return n.set(p,g),g},r=c=>{if(n.has(c))return n.get(c);let[p,g]=Tl(c);switch(p){case jg:{let f=c;switch(g){case"bigint":p=h6,f=c.toString();break;case"number":if(!c&&AP(c,-0))return s.push(["-0"])-1;break;case"function":case"symbol":if(t)throw new TypeError("unable to serialize "+g);f=null;break;case"undefined":return i([g6],c)}return i([p,f],c)}case ec:{if(g){let v=c;return g==="DataView"?v=new Uint8Array(c.buffer):g==="ArrayBuffer"&&(v=new Uint8Array(c)),i([g,[...v]],c)}const f=[],h=i([p,f],c);for(const v of c)f.push(r(v));return h}case sg:{if(g)switch(g){case"BigInt":return i([g,c.toString()],c);case"Boolean":case"Number":case"String":return i([g,c.valueOf()],c)}if(e&&"toJSON"in c)return r(c.toJSON());const f=[],h=i([p,f],c);for(const v of xP(c))(t||!fp(Tl(c[v])))&&f.push([r(v),r(c[v])]);return h}
vendor: 7,121 bytes, lines 74-80
74case a1:return i([p,isNaN(c.getTime())?Ni:c.toISOString()],c);case s1:{const{source:f,flags:h}=c;return i([p,{source:f,flags:h}],c)}case o1:{const f=[],h=i([p,f],c);for(const[v,b]of c)(t||!(fp(Tl(v))||fp(Tl(b))))&&f.push([r(v),r(b)]);return h}case i1:{const f=[],h=i([p,f],c);for(const v of c)(t||!fp(Tl(v)))&&f.push(r(v));return h}}const{message:_}=c;return i([p,{name:g,message:_}],c)};return r},A5=(t,{json:e,lossy:n}={})=>{const s=[];return CP(!(e||n),!!e,new Map,s)(t),s},og=typeof structuredClone=="function"?(t,e)=>e&&("json"in e||"lossy"in e)?x5(A5(t,e)):structuredClone(t):(t,e)=>x5(A5(t,e));function SP(t,e){const n=[{type:"text",value:"↩"}];return e>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(e)}]}),n}function wP(t,e){return"Back to reference "+(t+1)+(e>1?"-"+e:"")}function EP(t){const e=typeof t.options.clobberPrefix=="string"?t.options.clobberPrefix:"user-content-",n=t.options.footnoteBackContent||SP,s=t.options.footnoteBackLabel||wP,i=t.options.footnoteLabel||"Footnotes",r=t.options.footnoteLabelTagName||"h2",c=t.options.footnoteLabelProperties||{className:["sr-only"]},p=[];let g=-1;for(;++g<t.footnoteOrder.length;){const _=t.footnoteById.get(t.footnoteOrder[g]);if(!_)continue;const f=t.all(_),h=String(_.identifier).toUpperCase(),v=Au(h.toLowerCase());let b=0;const S=[],x=t.footnoteCounts.get(h);for(;x!==void 0&&++b<=x;){S.length>0&&S.push({type:"text",value:" "});let E=typeof n=="string"?n:n(g,b);typeof E=="string"&&(E={type:"text",value:E}),S.push({type:"element",tagName:"a",properties:{href:"#"+e+"fnref-"+v+(b>1?"-"+b:""),dataFootnoteBackref:"",ariaLabel:typeof s=="string"?s:s(g,b),className:["data-footnote-backref"]},children:Array.isArray(E)?E:[E]})}const w=f[f.length-1];if(w&&w.type==="element"&&w.tagName==="p"){const E=w.children[w.children.length-1];E&&E.type==="text"?E.value+=" ":w.children.push({type:"text",value:" "}),w.children.push(...S)}else f.push(...S);const A={type:"element",tagName:"li",properties:{id:e+"fn-"+v},children:t.wrap(f,!0)};t.patch(_,A),p.push(A)}if(p.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:r,properties:{...og(c),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:`
75`},{type:"element",tagName:"ol",properties:{},children:t.wrap(p,!0)},{type:"text",value:`
76`}]}}const f6=(function(t){if(t==null)return TP;if(typeof t=="function")return Pg(t);if(typeof t=="object")return Array.isArray(t)?IP(t):NP(t);if(typeof t=="string")return RP(t);throw new Error("Expected function, string, or object as test")});function IP(t){const e=[];let n=-1;for(;++n<t.length;)e[n]=f6(t[n]);return Pg(s);function s(...i){let r=-1;for(;++r<e.length;)if(e[r].apply(this,i))return!0;return!1}}function NP(t){const e=t;return Pg(n);function n(s){const i=s;let r;for(r in t)if(i[r]!==e[r])return!1;return!0}}function RP(t){return Pg(e);function e(n){return n&&n.type===t}}function Pg(t){return e;function e(n,s,i){return!!(jP(n)&&t.call(this,n,typeof s=="number"?s:void 0,i||void 0))}}function TP(){return!0}function jP(t){return t!==null&&typeof t=="object"&&"type"in t}const k6=[],PP=!0,C5=!1,MP="skip";function LP(t,e,n,s){let i;typeof e=="function"&&typeof n!="function"?(s=n,n=e):i=e;const r=f6(i),c=s?-1:1;p(t,void 0,[])();function p(g,_,f){const h=g&&typeof g=="object"?g:{};if(typeof h.type=="string"){const b=typeof h.tagName=="string"?h.tagName:typeof h.name=="string"?h.name:void 0;Object.defineProperty(v,"name",{value:"node ("+(g.type+(b?"<"+b+">":""))+")"})}return v;function v(){let b=k6,S,x,w;if((!e||r(g,_,f[f.length-1]||void 0))&&(b=OP(n(g,f)),b[0]===C5))return b;if("children"in g&&g.children){const A=g;if(A.children&&b[0]!==MP)for(x=(s?A.children.length:-1)+c,w=f.concat(A);x>-1&&x<A.children.length;){const E=A.children[x];if(S=p(E,x,w)(),S[0]===C5)return S;x=typeof S[1]=="number"?S[1]:x+c}}return b}}}function OP(t){return Array.isArray(t)?t:typeof t=="number"?[PP,t]:t==null?k6:[t]}function v6(t,e,n,s){let i,r,c;typeof e=="function"&&typeof n!="function"?(r=void 0,c=e,i=n):(r=e,c=n,i=s),LP(t,r,p,i);function p(g,_){const f=_[_.length-1],h=f?f.children.indexOf(g):void 0;return c(g,h,f)}}const Lk={}.hasOwnProperty,DP={};function zP(t,e){const n=e||DP,s=new Map,i=new Map,r=new Map,c={...kP,...n.handlers},p={all:_,applyData:$P,definitionById:s,footnoteById:i,footnoteCounts:r,footnoteOrder:[],handlers:c,one:g,options:n,patch:BP,wrap:HP};return v6(t,function(f){if(f.type==="definition"||f.type==="footnoteDefinition"){const h=f.type==="definition"?s:i,v=String(f.identifier).toUpperCase();h.has(v)||h.set(v,f)}}),p;function g(f,h){const v=f.type,b=p.handlers[v];if(Lk.call(p.handlers,v)&&b)return b(p,f,h);if(p.options.passThrough&&p.options.passThrough.includes(v)){if("children"in f){const{children:x,...w}=f,A=og(w);return A.children=p.all(f),A}return og(f)}return(p.options.unknownHandler||GP)(p,f,h)}function _(f){const h=[];if("children"in f){const v=f.children;let b=-1;for(;++b<v.length;){const S=p.one(v[b],f);if(S){if(b&&v[b-1].type==="break"&&(!Array.isArray(S)&&S.type==="text"&&(S.value=S5(S.value)),!Array.isArray(S)&&S.type==="element")){const x=S.children[0];x&&x.type==="text"&&(x.value=S5(x.value))}Array.isArray(S)?h.push(...S):h.push(S)}}}return h}}function BP(t,e){t.position&&(e.position=yR(t))}function $P(t,e){let n=e;if(t&&t.data){const s=t.data.hName,i=t.data.hChildren,r=t.data.hProperties;if(typeof s=="string")if(n.type==="element")n.tagName=s;else{const c="children"in n?n.children:[n];n={type:"element",tagName:s,properties:{},children:c}}n.type==="element"&&r&&Object.assign(n.properties,og(r)),"children"in n&&n.children&&i!==null&&i!==void 0&&(n.children=i)}return n}function GP(t,e){const n=e.data||{},s="value"in e&&!(Lk.call(n,"hProperties")||Lk.call(n,"hChildren"))?{type:"text",value:e.value}:{type:"element",tagName:"div",properties:{},children:t.all(e)};return t.patch(e,s),t.applyData(e,s)}function HP(t,e){const n=[];let s=-1;for(e&&n.push({type:"text",value:`
77`});++s<t.length;)s&&n.push({type:"text",value:`
78`}),n.push(t[s]);return e&&t.length>0&&n.push({type:"text",value:`
79`}),n}function S5(t){let e=0,n=t.charCodeAt(e);for(;n===9||n===32;)e++,n=t.charCodeAt(e);return t.slice(e)}function w5(t,e){const n=zP(t,e),s=n.one(t,void 0),i=EP(n),r=Array.isArray(s)?{type:"root",children:s}:s||{type:"root",children:[]};return i&&r.children.push({type:"text",value:`
80`},i),r}function FP(t,e){return t&&"run"in t?async function(n,s){const i=w5(n,{file:s,...e});await t.run(i,s)}:function(n,s){return w5(n,{file:s,...t||e})}}function E5(t){if(t)throw t}var tf,I5;function UP(){if(I5)return tf;I5=1;var t=Object.prototype.hasOwnProperty,e=Object.prototype.toString,n=Object.defineProperty,s=Object.getOwnPropertyDescriptor,i=function(_){return typeof Array.isArray=="function"?Array.isArray(_):e.call(_)==="[object Array]"},r=function(_){if(!_||e.call(_)!=="[object Object]")return!1;var f=t.call(_,"constructor"),h=_.constructor&&_.constructor.prototype&&t.call(_.constructor.prototype,"isPrototypeOf");if(_.constructor&&!f&&!h)return!1;var v;
vendor: 18,351 bytes, line 80
80for(v in _);return typeof v>"u"||t.call(_,v)},c=function(_,f){n&&f.name==="__proto__"?n(_,f.name,{enumerable:!0,configurable:!0,value:f.newValue,writable:!0}):_[f.name]=f.newValue},p=function(_,f){if(f==="__proto__")if(t.call(_,f)){if(s)return s(_,f).value}else return;return _[f]};return tf=function g(){var _,f,h,v,b,S,x=arguments[0],w=1,A=arguments.length,E=!1;for(typeof x=="boolean"&&(E=x,x=arguments[1]||{},w=2),(x==null||typeof x!="object"&&typeof x!="function")&&(x={});w<A;++w)if(_=arguments[w],_!=null)for(f in _)h=p(x,f),v=p(_,f),x!==v&&(E&&v&&(r(v)||(b=i(v)))?(b?(b=!1,S=h&&i(h)?h:[]):S=h&&r(h)?h:{},c(x,{name:f,newValue:g(E,S,v)})):typeof v<"u"&&c(x,{name:f,newValue:v}));return x},tf}var VP=UP();const ef=Cg(VP);function Ok(t){if(typeof t!="object"||t===null)return!1;const e=Object.getPrototypeOf(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(Symbol.toStringTag in t)&&!(Symbol.iterator in t)}function qP(){const t=[],e={run:n,use:s};return e;function n(...i){let r=-1;const c=i.pop();if(typeof c!="function")throw new TypeError("Expected function as last argument, not "+c);p(null,...i);function p(g,..._){const f=t[++r];let h=-1;if(g){c(g);return}for(;++h<i.length;)(_[h]===null||_[h]===void 0)&&(_[h]=i[h]);i=_,f?KP(f,p)(..._):c(null,..._)}}function s(i){if(typeof i!="function")throw new TypeError("Expected `middelware` to be a function, not "+i);return t.push(i),e}}function KP(t,e){let n;return s;function s(...c){const p=t.length>c.length;let g;p&&c.push(i);try{g=t.apply(this,c)}catch(_){const f=_;if(p&&n)throw f;return i(f)}p||(g&&g.then&&typeof g.then=="function"?g.then(r,i):g instanceof Error?i(g):r(g))}function i(c,...p){n||(n=!0,e(c,...p))}function r(c){i(null,c)}}const Fs={basename:WP,dirname:XP,extname:YP,join:QP,sep:"/"};function WP(t,e){if(e!==void 0&&typeof e!="string")throw new TypeError('"ext" argument must be a string');Ic(t);let n=0,s=-1,i=t.length,r;if(e===void 0||e.length===0||e.length>t.length){for(;i--;)if(t.codePointAt(i)===47){if(r){n=i+1;break}}else s<0&&(r=!0,s=i+1);return s<0?"":t.slice(n,s)}if(e===t)return"";let c=-1,p=e.length-1;for(;i--;)if(t.codePointAt(i)===47){if(r){n=i+1;break}}else c<0&&(r=!0,c=i+1),p>-1&&(t.codePointAt(i)===e.codePointAt(p--)?p<0&&(s=i):(p=-1,s=c));return n===s?s=c:s<0&&(s=t.length),t.slice(n,s)}function XP(t){if(Ic(t),t.length===0)return".";let e=-1,n=t.length,s;for(;--n;)if(t.codePointAt(n)===47){if(s){e=n;break}}else s||(s=!0);return e<0?t.codePointAt(0)===47?"/":".":e===1&&t.codePointAt(0)===47?"//":t.slice(0,e)}function YP(t){Ic(t);let e=t.length,n=-1,s=0,i=-1,r=0,c;for(;e--;){const p=t.codePointAt(e);if(p===47){if(c){s=e+1;break}continue}n<0&&(c=!0,n=e+1),p===46?i<0?i=e:r!==1&&(r=1):i>-1&&(r=-1)}return i<0||n<0||r===0||r===1&&i===n-1&&i===s+1?"":t.slice(i,n)}function QP(...t){let e=-1,n;for(;++e<t.length;)Ic(t[e]),t[e]&&(n=n===void 0?t[e]:n+"/"+t[e]);return n===void 0?".":JP(n)}function JP(t){Ic(t);const e=t.codePointAt(0)===47;let n=ZP(t,!e);return n.length===0&&!e&&(n="."),n.length>0&&t.codePointAt(t.length-1)===47&&(n+="/"),e?"/"+n:n}function ZP(t,e){let n="",s=0,i=-1,r=0,c=-1,p,g;for(;++c<=t.length;){if(c<t.length)p=t.codePointAt(c);else{if(p===47)break;p=47}if(p===47){if(!(i===c-1||r===1))if(i!==c-1&&r===2){if(n.length<2||s!==2||n.codePointAt(n.length-1)!==46||n.codePointAt(n.length-2)!==46){if(n.length>2){if(g=n.lastIndexOf("/"),g!==n.length-1){g<0?(n="",s=0):(n=n.slice(0,g),s=n.length-1-n.lastIndexOf("/")),i=c,r=0;continue}}else if(n.length>0){n="",s=0,i=c,r=0;continue}}e&&(n=n.length>0?n+"/..":"..",s=2)}else n.length>0?n+="/"+t.slice(i+1,c):n=t.slice(i+1,c),s=c-i-1;i=c,r=0}else p===46&&r>-1?r++:r=-1}return n}function Ic(t){if(typeof t!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(t))}const tM={cwd:eM};function eM(){return"/"}function Dk(t){return!!(t!==null&&typeof t=="object"&&"href"in t&&t.href&&"protocol"in t&&t.protocol&&t.auth===void 0)}function nM(t){if(typeof t=="string")t=new URL(t);else if(!Dk(t)){const e=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+t+"`");throw e.code="ERR_INVALID_ARG_TYPE",e}if(t.protocol!=="file:"){const e=new TypeError("The URL must be of scheme file");throw e.code="ERR_INVALID_URL_SCHEME",e}return aM(t)}function aM(t){if(t.hostname!==""){const s=new TypeError('File URL host must be "localhost" or empty on darwin');throw s.code="ERR_INVALID_FILE_URL_HOST",s}const e=t.pathname;let n=-1;for(;++n<e.length;)if(e.codePointAt(n)===37&&e.codePointAt(n+1)===50){const s=e.codePointAt(n+2);if(s===70||s===102){const i=new TypeError("File URL path must not include encoded / characters");throw i.code="ERR_INVALID_FILE_URL_PATH",i}}return decodeURIComponent(e)}const nf=["history","path","basename","stem","extname","dirname"];class y6{constructor(e){let n;e?Dk(e)?n={path:e}:typeof e=="string"||sM(e)?n={value:e}:n=e:n={},this.cwd="cwd"in n?"":tM.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let s=-1;for(;++s<nf.length;){const r=nf[s];r in n&&n[r]!==void 0&&n[r]!==null&&(this[r]=r==="history"?[...n[r]]:n[r])}let i;for(i in n)nf.includes(i)||(this[i]=n[i])}get basename(){return typeof this.path=="string"?Fs.basename(this.path):void 0}set basename(e){sf(e,"basename"),af(e,"basename"),this.path=Fs.join(this.dirname||"",e)}get dirname(){return typeof this.path=="string"?Fs.dirname(this.path):void 0}set dirname(e){N5(this.basename,"dirname"),this.path=Fs.join(e||"",this.basename)}get extname(){return typeof this.path=="string"?Fs.extname(this.path):void 0}set extname(e){if(af(e,"extname"),N5(this.dirname,"extname"),e){if(e.codePointAt(0)!==46)throw new Error("`extname` must start with `.`");if(e.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=Fs.join(this.dirname,this.stem+(e||""))}get path(){return this.history[this.history.length-1]}set path(e){Dk(e)&&(e=nM(e)),sf(e,"path"),this.path!==e&&this.history.push(e)}get stem(){return typeof this.path=="string"?Fs.basename(this.path,this.extname):void 0}set stem(e){sf(e,"stem"),af(e,"stem"),this.path=Fs.join(this.dirname||"",e+(this.extname||""))}fail(e,n,s){const i=this.message(e,n,s);throw i.fatal=!0,i}info(e,n,s){const i=this.message(e,n,s);return i.fatal=void 0,i}message(e,n,s){const i=new ra(e,n,s);return this.path&&(i.name=this.path+":"+i.name,i.file=this.path),i.fatal=!1,this.messages.push(i),i}toString(e){return this.value===void 0?"":typeof this.value=="string"?this.value:new TextDecoder(e||void 0).decode(this.value)}}function af(t,e){if(t&&t.includes(Fs.sep))throw new Error("`"+e+"` cannot be a path: did not expect `"+Fs.sep+"`")}function sf(t,e){if(!t)throw new Error("`"+e+"` cannot be empty")}function N5(t,e){if(!t)throw new Error("Setting `"+e+"` requires `path` to be set too")}function sM(t){return!!(t&&typeof t=="object"&&"byteLength"in t&&"byteOffset"in t)}const oM=(function(t){const s=this.constructor.prototype,i=s[t],r=function(){return i.apply(r,arguments)};return Object.setPrototypeOf(r,s),r}),iM={}.hasOwnProperty;class r1 extends oM{constructor(){super("copy"),this.Compiler=void 0,this.Parser=void 0,this.attachers=[],this.compiler=void 0,this.freezeIndex=-1,this.frozen=void 0,this.namespace={},this.parser=void 0,this.transformers=qP()}copy(){const e=new r1;let n=-1;for(;++n<this.attachers.length;){const s=this.attachers[n];e.use(...s)}return e.data(ef(!0,{},this.namespace)),e}data(e,n){return typeof e=="string"?arguments.length===2?(uf("data",this.frozen),this.namespace[e]=n,this):iM.call(this.namespace,e)&&this.namespace[e]||void 0:e?(uf("data",this.frozen),this.namespace=e,this):this.namespace}freeze(){if(this.frozen)return this;const e=this;for(;++this.freezeIndex<this.attachers.length;){const[n,...s]=this.attachers[this.freezeIndex];if(s[0]===!1)continue;s[0]===!0&&(s[0]=void 0);const i=n.call(e,...s);typeof i=="function"&&this.transformers.use(i)}return this.frozen=!0,this.freezeIndex=Number.POSITIVE_INFINITY,this}parse(e){this.freeze();const n=kp(e),s=this.parser||this.Parser;return of("parse",s),s(String(n),n)}process(e,n){const s=this;return this.freeze(),of("process",this.parser||this.Parser),rf("process",this.compiler||this.Compiler),n?i(void 0,n):new Promise(i);function i(r,c){const p=kp(e),g=s.parse(p);s.run(g,p,function(f,h,v){if(f||!h||!v)return _(f);const b=h,S=s.stringify(b,v);lM(S)?v.value=S:v.result=S,_(f,v)});function _(f,h){f||!h?c(f):r?r(h):n(void 0,h)}}}processSync(e){let n=!1,s;return this.freeze(),of("processSync",this.parser||this.Parser),rf("processSync",this.compiler||this.Compiler),this.process(e,i),T5("processSync","process",n),s;function i(r,c){n=!0,E5(r),s=c}}run(e,n,s){R5(e),this.freeze();const i=this.transformers;return!s&&typeof n=="function"&&(s=n,n=void 0),s?r(void 0,s):new Promise(r);function r(c,p){const g=kp(n);i.run(e,g,_);function _(f,h,v){const b=h||e;f?p(f):c?c(b):s(void 0,b,v)}}}runSync(e,n){let s=!1,i;return this.run(e,n,r),T5("runSync","run",s),i;function r(c,p){E5(c),i=p,s=!0}}stringify(e,n){this.freeze();const s=kp(n),i=this.compiler||this.Compiler;return rf("stringify",i),R5(e),i(e,s)}use(e,...n){const s=this.attachers,i=this.namespace;if(uf("use",this.frozen),e!=null)if(typeof e=="function")g(e,n);else if(typeof e=="object")Array.isArray(e)?p(e):c(e);else throw new TypeError("Expected usable value, not `"+e+"`");return this;function r(_){if(typeof _=="function")g(_,[]);else if(typeof _=="object")if(Array.isArray(_)){const[f,...h]=_;g(f,h)}else c(_);else throw new TypeError("Expected usable value, not `"+_+"`")}function c(_){if(!("plugins"in _)&&!("settings"in _))throw new Error("Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither");p(_.plugins),_.settings&&(i.settings=ef(!0,i.settings,_.settings))}function p(_){let f=-1;if(_!=null)if(Array.isArray(_))for(;++f<_.length;){const h=_[f];r(h)}else throw new TypeError("Expected a list of plugins, not `"+_+"`")}function g(_,f){let h=-1,v=-1;for(;++h<s.length;)if(s[h][0]===_){v=h;break}if(v===-1)s.push([_,...f]);else if(f.length>0){let[b,...S]=f;const x=s[v][1];Ok(x)&&Ok(b)&&(b=ef(!0,x,b)),s[v]=[_,b,...S]}}}}const rM=new r1().freeze();function of(t,e){if(typeof e!="function")throw new TypeError("Cannot `"+t+"` without `parser`")}function rf(t,e){if(typeof e!="function")throw new TypeError("Cannot `"+t+"` without `compiler`")}function uf(t,e){if(e)throw new Error("Cannot call `"+t+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function R5(t){if(!Ok(t)||typeof t.type!="string")throw new TypeError("Expected node, got `"+t+"`")}function T5(t,e,n){if(!n)throw new Error("`"+t+"` finished async. Use `"+e+"` instead")}function kp(t){return uM(t)?t:new y6(t)}function uM(t){return!!(t&&typeof t=="object"&&"message"in t&&"messages"in t)}function lM(t){return typeof t=="string"||cM(t)}function cM(t){return!!(t&&typeof t=="object"&&"byteLength"in t&&"byteOffset"in t)}const dM="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",j5=[],P5={allowDangerousHtml:!0},pM=/^(https?|ircs?|mailto|xmpp)$/i,gM=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function mM(t){const e=hM(t),n=_M(t);return fM(e.runSync(e.parse(n),n),t)}function hM(t){const e=t.rehypePlugins||j5,n=t.remarkPlugins||j5,s=t.remarkRehypeOptions?{...t.remarkRehypeOptions,...P5}:P5;return rM().use(qj).use(n).use(FP,s).use(e)}function _M(t){const e=t.children||"",n=new y6;return typeof e=="string"&&(n.value=e),n}function fM(t,e){const n=e.allowedElements,s=e.allowElement,i=e.components,r=e.disallowedElements,c=e.skipHtml,p=e.unwrapDisallowed,g=e.urlTransform||kM;for(const f of gM)Object.hasOwn(e,f.from)&&(""+f.from+(f.to?"use `"+f.to+"` instead":"remove it")+dM+f.id,void 0);return v6(t,_),SR(t,{Fragment:l.Fragment,components:i,ignoreInvalidStyle:!0,jsx:l.jsx,jsxs:l.jsxs,passKeys:!0,passNode:!0});function _(f,h,v){if(f.type==="raw"&&v&&typeof h=="number")return c?v.children.splice(h,1):v.children[h]={type:"text",value:f.value},h;if(f.type==="element"){let b;for(b in Q_)if(Object.hasOwn(Q_,b)&&Object.hasOwn(f.properties,b)){const S=f.properties[b],x=Q_[b];(x===null||x.includes(f.tagName))&&(f.properties[b]=g(String(S||""),b,f))}}if(f.type==="element"){let b=n?!n.includes(f.tagName):r?r.includes(f.tagName):!1;if(!b&&s&&typeof h=="number"&&(b=!s(f,h,v)),b&&v&&typeof h=="number")return p&&f.children?v.children.splice(h,1,...f.children):v.children.splice(h,1),h}}}function kM(t){const e=t.indexOf(":"),n=t.indexOf("?"),s=t.indexOf("#"),i=t.indexOf("/");return e===-1||i!==-1&&e>i||n!==-1&&e>n||s!==-1&&e>s||pM.test(t.slice(0,e))?t:""}var Ye="-ms-",nc="-moz-",Ie="-webkit-",b6="comm",Mg="rule",u1="decl",vM="@import",yM="@namespace",x6="@keyframes",bM="@layer",A6=Math.abs,l1=String.fromCharCode,zk=Object.assign;function xM(t,e){return In(t,0)^45?(((e<<2^In(t,0))<<2^In(t,1))<<2^In(t,2))<<2^In(t,3):0}function C6(t){return t.trim()}function ho(t,e){return(t=e.exec(t))?t[0]:t}function re(t,e,n){return t.replace(e,n)}function Op(t,e,n){return t.indexOf(e,n)}function In(t,e){return t.charCodeAt(e)|0}function qi(t,e,n){return t.slice(e,n)}function bs(t){return t.length}function S6(t){return t.length}function Fl(t,e){return e.push(t),t}function AM(t,e){return t.map(e).join("")}function M5(t,e){return t.filter(function(n){return!ho(n,e)})}var Lg=1,gu=1,w6=0,rs=0,An=0,Cu="";function Og(t,e,n,s,i,r,c,p){return{value:t,root:e,parent:n,type:s,props:i,children:r,line:Lg,column:gu,length:c,return:"",siblings:p}}function Xo(t,e){return zk(Og("",null,null,"",null,null,0,t.siblings),t,{length:-t.length},e)}function Hr(t){for(;t.root;)t=Xo(t.root,{children:[t]});Fl(t,t.siblings)}function CM(){return An}function SM(){return An=rs>0?In(Cu,--rs):0,gu--,An===10&&(gu=1,Lg--),An}function Ss(){return An=rs<w6?In(Cu,rs++):0,gu++,An===10&&(gu=1,Lg++),An}function Jo(){return In(Cu,rs)}function Dp(){return rs}function Dg(t,e){return qi(Cu,t,e)}function cc(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function wM(t){return Lg=gu=1,w6=bs(Cu=t),rs=0,[]}function EM(t){return Cu="",t}function lf(t){return C6(Dg(rs-1,Bk(t===91?t+2:t===40?t+1:t)))}function IM(t){for(;(An=Jo())&&An<33;)Ss();return cc(t)>2||cc(An)>3?"":" "}function NM(t,e){for(;--e&&Ss()&&!(An<48||An>102||An>57&&An<65||An>70&&An<97););return Dg(t,Dp()+(e<6&&Jo()==32&&Ss()==32))}function Bk(t){for(;Ss();)switch(An){case t:return rs;case 34:case 39:t!==34&&t!==39&&Bk(An);break;case 40:t===41&&Bk(t);break;case 92:Ss();break}return rs}function RM(t,e){for(;Ss()&&t+An!==57;)if(t+An===84&&Jo()===47)break;return"/*"+Dg(e,rs-1)+"*"+l1(t===47?t:Ss())}function TM(t){for(;!cc(Jo());)Ss();return Dg(t,rs)}function jM(t){return EM(zp("",null,null,null,[""],t=wM(t),0,[0],t))}function zp(t,e,n,s,i,r,c,p,g){for(var _=0,f=0,h=c,v=0,b=0,S=0,x=1,w=1,A=1,E=0,I="",j=i,T=r,P=s,N=I;w;)switch(S=E,E=Ss()){case 40:if(S!=108&&In(N,h-1)==58){Op(N+=re(lf(E),"&","&\f"),"&\f",A6(_?p[_-1]:0))!=-1&&(A=-1);break}case 34:case 39:case 91:N+=lf(E);break;case 9:case 10:case 13:case 32:N+=IM(S);break;case 92:N+=NM(Dp()-1,7);continue;case 47:switch(Jo()){case 42:case 47:Fl(PM(RM(Ss(),Dp()),e,n,g),g),(cc(S||1)==5||cc(Jo()||1)==5)&&bs(N)&&qi(N,-1,void 0)!==" "&&(N+=" ");break;default:N+="/"}break;case 123*x:p[_++]=bs(N)*A;case 125*x:case 59:case 0:switch(E){case 0:case 125:w=0;case 59+f:A==-1&&(N=re(N,/\f/g,"")),b>0&&(bs(N)-h||x===0&&S===47)&&Fl(b>32?O5(N+";",s,n,h-1,g):O5(re(N," ","")+";",s,n,h-2,g),g);break;case 59:N+=";";default:if(Fl(P=L5(N,e,n,_,f,i,p,I,j=[],T=[],h,r),r),E===123)if(f===0)zp(N,e,P,P,j,r,h,p,T);else{switch(v){case 99:if(In(N,3)===110)break;case 108:if(In(N,2)===97)break;default:f=0;case 100:case 109:case 115:}f?zp(t,P,P,s&&Fl(L5(t,P,P,0,0,i,p,I,i,j=[],h,T),T),i,T,h,p,s?j:T):zp(N,P,P,P,[""],T,0,p,T)}}_=f=b=0,x=A=1,I=N="",h=c;break;case 58:h=1+bs(N),b=S;default:if(x<1){if(E==123)--x;else if(E==125&&x++==0&&SM()==125)continue}switch(N+=l1(E),E*x){case 38:A=f>0?1:(N+="\f",-1);break;case 44:p[_++]=(bs(N)-1)*A,A=1;break;case 64:Jo()===45&&(N+=lf(Ss())),v=Jo(),f=h=bs(I=N+=TM(Dp())),E++;break;case 45:S===45&&bs(N)==2&&(x=0)}}return r}function L5(t,e,n,s,i,r,c,p,g,_,f,h){for(var v=i-1,b=i===0?r:[""],S=S6(b),x=0,w=0,A=0;x<s;++x)for(var E=0,I=qi(t,v+1,v=A6(w=c[x])),j=t;E<S;++E)(j=C6(w>0?b[E]+" "+I:re(I,/&\f/g,b[E])))&&(g[A++]=j);return Og(t,e,n,i===0?Mg:p,g,_,f,h)}function PM(t,e,n,s){return Og(t,e,n,b6,l1(CM()),qi(t,2,-2),0,s)}function O5(t,e,n,s,i){return Og(t,e,n,u1,qi(t,0,s),qi(t,s+1,-1),s,i)}function E6(t,e,n){switch(xM(t,e)){case 5103:return Ie+"print-"+t+t;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:case 6391:case 5879:case 5623:case 6135:case 4599:return Ie+t+t;case 4855:return Ie+t.replace("add","source-over").replace("substract","source-out").replace("intersect","source-in").replace("exclude","xor")+t;case 4789:return nc+t+t;
80case 5349:case 4246:case 4810:case 6968:case 2756:return Ie+t+nc+t+Ye+t+t;case 5936:switch(In(t,e+11)){case 114:return Ie+t+Ye+re(t,/[svh]\w+-[tblr]{2}/,"tb")+t;case 108:return Ie+t+Ye+re(t,/[svh]\w+-[tblr]{2}/,"tb-rl")+t;case 45:return Ie+t+Ye+re(t,/[svh]\w+-[tblr]{2}/,"lr")+t}case 6828:case 4268:case 2903:return Ie+t+Ye+t+t;case 6165:return Ie+t+Ye+"flex-"+t+t;case 5187:return Ie+t+re(t,/(\w+).+(:[^]+)/,Ie+"box-$1$2"+Ye+"flex-$1$2")+t;case 5443:return Ie+t+Ye+"flex-item-"+re(t,/flex-|-self/g,"")+(ho(t,/flex-|baseline/)?"":Ye+"grid-row-"+re(t,/flex-|-self/g,""))+t;case 4675:return Ie+t+Ye+"flex-line-pack"+re(t,/align-content|flex-|-self/g,"")+t;case 5548:return Ie+t+Ye+re(t,"shrink","negative")+t;case 5292:return Ie+t+Ye+re(t,"basis","preferred-size")+t;case 6060:return Ie+"box-"+re(t,"-grow","")+Ie+t+Ye+re(t,"grow","positive")+t;case 4554:return Ie+re(t,/([^-])(transform)/g,"$1"+Ie+"$2")+t;case 6187:return re(re(re(t,/(zoom-|grab)/,Ie+"$1"),/(image-set)/,Ie+"$1"),t,"")+t;case 5495:case 3959:return re(t,/(image-set\([^]*)/,Ie+"$1$`$1");case 4968:return re(re(t,/(.+:)(flex-)?(.*)/,Ie+"box-pack:$3"+Ye+"flex-pack:$3"),/space-between/,"justify")+Ie+t+t;case 4200:if(!ho(t,/flex-|baseline/))return Ye+"grid-column-align"+qi(t,e)+t;break;case 2592:case 3360:return Ye+re(t,"template-","")+t;case 4384:case 3616:return n&&n.some(function(s,i){return e=i,ho(s.props,/grid-\w+-end/)})?~Op(t+(n=n[e].value),"span",0)?t:Ye+re(t,"-start","")+t+Ye+"grid-row-span:"+(~Op(n,"span",0)?ho(n,/\d+/):+ho(n,/\d+/)-+ho(t,/\d+/))+";":Ye+re(t,"-start","")+t;case 4896:case 4128:return n&&n.some(function(s){return ho(s.props,/grid-\w+-start/)})?t:Ye+re(re(t,"-end","-span"),"span ","")+t;case 4095:case 3583:case 4068:case 2532:return re(t,/(.+)-inline(.+)/,Ie+"$1$2")+t;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(bs(t)-1-e>6)switch(In(t,e+1)){case 109:if(In(t,e+4)!==45)break;case 102:return re(t,/(.+:)(.+)-([^]+)/,"$1"+Ie+"$2-$3$1"+nc+(In(t,e+3)==108?"$3":"$2-$3"))+t;case 115:return~Op(t,"stretch",0)?E6(re(t,"stretch","fill-available"),e,n)+t:t}break;case 5152:case 5920:return re(t,/(.+?):(\d+)(\s*\/\s*(span)?\s*(\d+))?(.*)/,function(s,i,r,c,p,g,_){return Ye+i+":"+r+_+(c?Ye+i+"-span:"+(p?g:+g-+r)+_:"")+t});case 4949:if(In(t,e+6)===121)return re(t,":",":"+Ie)+t;break;case 6444:switch(In(t,In(t,14)===45?18:11)){case 120:return re(t,/(.+:)([^;\s!]+)(;|(\s+)?!.+)?/,"$1"+Ie+(In(t,14)===45?"inline-":"")+"box$3$1"+Ie+"$2$3$1"+Ye+"$2box$3")+t;case 100:return re(t,":",":"+Ye)+t}break;case 5719:case 2647:case 2135:case 3927:case 2391:return re(t,"scroll-","scroll-snap-")+t}return t}function ig(t,e){for(var n="",s=0;s<t.length;s++)n+=e(t[s],s,t,e)||"";return n}function MM(t,e,n,s){switch(t.type){case bM:if(t.children.length)break;case vM:case yM:case u1:return t.return=t.return||t.value;case b6:return"";case x6:return t.return=t.value+"{"+ig(t.children,s)+"}";case Mg:if(!bs(t.value=t.props.join(",")))return""}return bs(n=ig(t.children,s))?t.return=t.value+"{"+n+"}":""}function LM(t){var e=S6(t);return function(n,s,i,r){for(var c="",p=0;p<e;p++)c+=t[p](n,s,i,r)||"";return c}}function OM(t){return function(e){e.root||(e=e.return)&&t(e)}}function DM(t,e,n,s){if(t.length>-1&&!t.return)switch(t.type){case u1:t.return=E6(t.value,t.length,n);return;case x6:return ig([Xo(t,{value:re(t.value,"@","@"+Ie)})],s);case Mg:if(t.length)return AM(n=t.props,function(i){switch(ho(i,s=/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":Hr(Xo(t,{props:[re(i,/:(read-\w+)/,":"+nc+"$1")]})),Hr(Xo(t,{props:[i]})),zk(t,{props:M5(n,s)});break;case"::placeholder":Hr(Xo(t,{props:[re(i,/:(plac\w+)/,":"+Ie+"input-$1")]})),Hr(Xo(t,{props:[re(i,/:(plac\w+)/,":"+nc+"$1")]})),Hr(Xo(t,{props:[re(i,/:(plac\w+)/,Ye+"input-$1")]})),Hr(Xo(t,{props:[i]})),zk(t,{props:M5(n,s)});break}return""})}}var uu={},cf,df;const mu=typeof process<"u"&&uu!==void 0&&(uu.REACT_APP_SC_ATTR||uu.SC_ATTR)||"data-styled",I6="active",N6="data-styled-version",zg="6.5.3",c1=`/*!sc*/
81`,ac=typeof window<"u"&&typeof document<"u";function D5(t){if(typeof process<"u"&&uu!==void 0){const e=uu[t];if(e!==void 0&&e!=="")return e!=="false"}}const zM=!!(typeof SC_DISABLE_SPEEDY=="boolean"?SC_DISABLE_SPEEDY:(df=(cf=D5("REACT_APP_SC_DISABLE_SPEEDY"))!==null&&cf!==void 0?cf:D5("SC_DISABLE_SPEEDY"))!==null&&df!==void 0?df:typeof process<"u"&&uu!==void 0&&!1),BM="sc-keyframes-";function Bg(t,...e){return new Error(`An error occurred. See https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#${t} for more information.${e.length>0?` Args: ${e.join(", ")}`:""}`)}let Bp=new Map,rg=new Map,$p=1;const vp=t=>{if(Bp.has(t))return Bp.get(t);for(;rg.has($p);)$p++;const e=$p++;return Bp.set(t,e),rg.set(e,t),e},$M=t=>rg.get(t),GM=(t,e)=>{$p=e+1,Bp.set(t,e),rg.set(e,t)},d1=Object.freeze([]),hu=Object.freeze({});function HM(t,e,n=hu){return t.theme!==n.theme&&t.theme||e||n.theme}const FM=/[!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~-]+/g,UM=/(^-|-$)/g;function R6(t){return t.replace(FM,"-").replace(UM,"")}const VM=/(a)(d)/gi,z5=t=>String.fromCharCode(t+(t>25?39:97));function T6(t){let e,n="";for(e=Math.abs(t);e>52;e=e/52|0)n=z5(e%52)+n;return(z5(e%52)+n).replace(VM,"$1-$2")}const $k=5381,zi=(t,e)=>{let n=e.length;for(;n;)t=33*t^e.charCodeAt(--n);return t},j6=t=>zi($k,t);function qM(t){return T6(j6(t)>>>0)}function KM(t){return t.displayName||t.name||"Component"}function Gk(t){return typeof t=="string"&&!0}function WM(t){return Gk(t)?`styled.${t}`:`Styled(${KM(t)})`}const P6=Symbol.for("react.memo"),XM=Symbol.for("react.forward_ref"),YM={contextType:!0,defaultProps:!0,displayName:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,propTypes:!0,type:!0},QM={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},M6={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},JM={[XM]:{$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},[P6]:M6};function B5(t){return("type"in(e=t)&&e.type.$$typeof)===P6?M6:"$$typeof"in t?JM[t.$$typeof]:YM;var e}const ZM=Object.defineProperty,tL=Object.getOwnPropertyNames,eL=Object.getOwnPropertySymbols,nL=Object.getOwnPropertyDescriptor,aL=Object.getPrototypeOf,sL=Object.prototype;function L6(t,e,n){if(typeof e!="string"){const s=aL(e);s&&s!==sL&&L6(t,s,n);const i=tL(e).concat(eL(e)),r=B5(t),c=B5(e);for(let p=0;p<i.length;++p){const g=i[p];if(!(g in QM||n&&n[g]||c&&g in c||r&&g in r)){const _=nL(e,g);try{ZM(t,g,_)}catch{}}}}return t}function $g(t){return typeof t=="function"}const oL=Symbol.for("react.forward_ref");function O6(t){return t!=null&&(typeof t=="object"||typeof t=="function")&&t.$$typeof===oL&&"styledComponentId"in t}function Ul(t,e){return t&&e?t+" "+e:t||e||""}function $5(t,e){return t.join("")}function dc(t){return t!==null&&typeof t=="object"&&t.constructor.name===Object.name&&!("props"in t&&t.$$typeof)}function Hk(t,e,n=!1){if(!n&&!dc(t)&&!Array.isArray(t))return e;if(Array.isArray(e))for(let s=0;s<e.length;s++)t[s]=Hk(t[s],e[s]);else if(dc(e))for(const s in e)t[s]=Hk(t[s],e[s]);return t}function D6(t,e){Object.defineProperty(t,"toString",{value:e})}const iL=class{constructor(t){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=t,this._cGroup=0,this._cIndex=0}indexOfGroup(t){if(t===this._cGroup)return this._cIndex;let e=this._cIndex;if(t>this._cGroup)for(let n=this._cGroup;n<t;n++)e+=this.groupSizes[n];else for(let n=this._cGroup-1;n>=t;n--)e-=this.groupSizes[n];return this._cGroup=t,this._cIndex=e,e}insertRules(t,e){if(t>=this.groupSizes.length){const i=this.groupSizes,r=i.length;let c=r;for(;t>=c;)if(c<<=1,c<0)throw Bg(16,`${t}`);this.groupSizes=new Uint32Array(c),this.groupSizes.set(i),this.length=c;for(let p=r;p<c;p++)this.groupSizes[p]=0}let n=this.indexOfGroup(t+1),s=0;for(let i=0,r=e.length;i<r;i++)this.tag.insertRule(n,e[i])&&(this.groupSizes[t]++,n++,s++);s>0&&this._cGroup>t&&(this._cIndex+=s)}clearGroup(t){if(t<this.length){const e=this.groupSizes[t],n=this.indexOfGroup(t),s=n+e;this.groupSizes[t]=0;for(let i=n;i<s;i++)this.tag.deleteRule(n);e>0&&this._cGroup>t&&(this._cIndex-=e)}}getGroup(t){let e="";if(t>=this.length||this.groupSizes[t]===0)return e;const n=this.groupSizes[t],s=this.indexOfGroup(t),i=s+n;for(let r=s;r<i;r++)e+=this.tag.getRule(r)+c1;return e}},rL=`style[${mu}][${N6}="${zg}"]`,uL=new RegExp(`^${mu}\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)`),G5=t=>typeof ShadowRoot<"u"&&t instanceof ShadowRoot||"host"in t&&t.nodeType===11,Fk=t=>{if(!t)return document;if(G5(t))return t;if("getRootNode"in t){const e=t.getRootNode();if(G5(e))return e}return document},lL=(t,e,n)=>{const s=n.split(",");let i;for(let r=0,c=s.length;r<c;r++)(i=s[r])&&t.registerName(e,i)},cL=(t,e)=>{var n;const s=((n=e.textContent)!==null&&n!==void 0?n:"").split(c1),i=[];for(let r=0,c=s.length;r<c;r++){const p=s[r].trim();if(!p)continue;const g=p.match(uL);if(g){const _=0|parseInt(g[1],10),f=g[2];_!==0&&(GM(f,_),lL(t,f,g[3]),t.getTag().insertRules(_,i)),i.length=0}else i.push(p)}},pf=t=>{const e=Fk(t.options.target).querySelectorAll(rL);for(let n=0,s=e.length;n<s;n++){const i=e[n];i&&i.getAttribute(mu)!==I6&&(cL(t,i),i.parentNode&&i.parentNode.removeChild(i))}};let jl=!1;function dL(){if(jl!==!1)return jl;if(typeof document<"u"){const t=document.head.querySelector('meta[property="csp-nonce"]');if(t)return jl=t.nonce||t.getAttribute("content")||void 0;const e=document.head.querySelector('meta[name="sc-nonce"]');if(e)return jl=e.getAttribute("content")||void 0}return jl=typeof __webpack_nonce__<"u"?__webpack_nonce__:void 0}const z6=(t,e)=>{const n=document.head,s=t||n,i=document.createElement("style"),r=(g=>{const _=Array.from(g.querySelectorAll(`style[${mu}]`));return _[_.length-1]})(s),c=r!==void 0?r.nextSibling:null;i.setAttribute(mu,I6),i.setAttribute(N6,zg);const p=e||dL();return p&&i.setAttribute("nonce",p),s.insertBefore(i,c),i},pL=class{constructor(t,e){this.element=z6(t,e),this.element.appendChild(document.createTextNode("")),this.sheet=(n=>{var s;if(n.sheet)return n.sheet;const i=(s=n.getRootNode().styleSheets)!==null&&s!==void 0?s:document.styleSheets;for(let r=0,c=i.length;r<c;r++){const p=i[r];if(p.ownerNode===n)return p}throw Bg(17)})(this.element),this.length=0}insertRule(t,e){try{return this.sheet.insertRule(e,t),this.length++,!0}catch{return!1}}deleteRule(t){this.sheet.deleteRule(t),this.length--}getRule(t){const e=this.sheet.cssRules[t];return e&&e.cssText?e.cssText:""}}
81,gL=class{constructor(t,e){this.element=z6(t,e),this.nodes=this.element.childNodes,this.length=0}insertRule(t,e){if(t<=this.length&&t>=0){const n=document.createTextNode(e);return this.element.insertBefore(n,this.nodes[t]||null),this.length++,!0}return!1}deleteRule(t){this.element.removeChild(this.nodes[t]),this.length--}getRule(t){return t<this.length?this.nodes[t].textContent:""}};let H5=ac;const mL={isServer:!ac,useCSSOMInjection:!zM};class Gg{static registerId(e){return vp(e)}constructor(e=hu,n={},s){this.options=Object.assign(Object.assign({},mL),e),this.gs=n,this.keyframeIds=new Set,this.names=new Map(s),this.server=!!e.isServer,!this.server&&ac&&H5&&(H5=!1,pf(this)),D6(this,()=>(i=>{const r=i.getTag(),{length:c}=r;let p="";for(let g=0;g<c;g++){const _=$M(g);if(_===void 0)continue;const f=i.names.get(_);if(f===void 0||!f.size)continue;const h=r.getGroup(g);if(h.length===0)continue;const v=mu+".g"+g+'[id="'+_+'"]';let b="";for(const S of f)S.length>0&&(b+=S+",");p+=h+v+'{content:"'+b+'"}'+c1}return p})(this))}rehydrate(){!this.server&&ac&&pf(this)}reconstructWithOptions(e,n=!0){const s=new Gg(Object.assign(Object.assign({},this.options),e),this.gs,n&&this.names||void 0);return s.keyframeIds=new Set(this.keyframeIds),!this.server&&ac&&e.target!==this.options.target&&Fk(this.options.target)!==Fk(e.target)&&pf(s),s}allocateGSInstance(e){return this.gs[e]=(this.gs[e]||0)+1}getTag(){return this.tag||(this.tag=(e=(({useCSSOMInjection:n,target:s,nonce:i})=>n?new pL(s,i):new gL(s,i))(this.options),new iL(e)));var e}hasNameForId(e,n){var s,i;return(i=(s=this.names.get(e))===null||s===void 0?void 0:s.has(n))!==null&&i!==void 0&&i}registerName(e,n){vp(e),e.startsWith(BM)&&this.keyframeIds.add(e);const s=this.names.get(e);s?s.add(n):this.names.set(e,new Set([n]))}insertRules(e,n,s){this.registerName(e,n),this.getTag().insertRules(vp(e),s)}clearNames(e){this.names.has(e)&&this.names.get(e).clear()}clearRules(e){this.getTag().clearGroup(vp(e)),this.clearNames(e)}clearTag(){this.tag=void 0}}const B6=new WeakSet,hL={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexShrink:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};function _L(t,e){return e==null||typeof e=="boolean"||e===""?"":typeof e!="number"||e===0||t in hL||t.startsWith("--")?String(e).trim():e+"px"}const Ri=47;function F5(t){if(t.charCodeAt(0)===45&&t.charCodeAt(1)===45)return t;let e="";for(let n=0;n<t.length;n++){const s=t.charCodeAt(n);e+=s>=65&&s<=90?"-"+String.fromCharCode(s+32):t[n]}return e.startsWith("ms-")?"-"+e:e}const fL=Symbol.for("sc-keyframes");function kL(t){return typeof t=="object"&&t!==null&&fL in t}function $6(t){return $g(t)&&!(t.prototype&&t.prototype.isReactComponent)}const G6=t=>t==null||t===!1||t==="",vL=Symbol.for("react.client.reference");function U5(t){return t.$$typeof===vL}function H6(t,e){for(const n in t){const s=t[n];t.hasOwnProperty(n)&&!G6(s)&&(Array.isArray(s)&&B6.has(s)||$g(s)?e.push(F5(n)+":",s,";"):dc(s)?(e.push(n+" {"),H6(s,e),e.push("}")):e.push(F5(n)+": "+_L(n,s)+";"))}}function Bi(t,e,n,s,i=[]){if(G6(t))return i;const r=typeof t;if(r==="string")return i.push(t),i;if(r==="function"){if(U5(t))return i;if($6(t)&&e){const c=t(e);return Bi(c,e,n,s,i)}return i.push(t),i}if(Array.isArray(t)){for(let c=0;c<t.length;c++)Bi(t[c],e,n,s,i);return i}return O6(t)?(i.push(`.${t.styledComponentId}`),i):kL(t)?(n?(t.inject(n,s),i.push(t.getName(s))):i.push(t),i):U5(t)?i:dc(t)?t.toString!==Object.prototype.toString?(i.push(t.toString()),i):(H6(t,i),i):(i.push(t.toString()),i)}const yL=j6(zg);class bL{constructor(e,n,s){this.rules=e,this.componentId=n,this.baseHash=zi(yL,n),this.baseStyle=s,Gg.registerId(n)}generateAndInjectStyles(e,n,s){let i=this.baseStyle?this.baseStyle.generateAndInjectStyles(e,n,s):"";{let r="";for(let c=0;c<this.rules.length;c++){const p=this.rules[c];if(typeof p=="string")r+=p;else if(p)if($6(p)){const g=p(e);typeof g=="string"?r+=g:g!=null&&g!==!1&&(r+=$5(Bi(g,e,n,s)))}else r+=$5(Bi(p,e,n,s))}
81if(r){this.dynamicNameCache||(this.dynamicNameCache=new Map);const c=s.hash?s.hash+r:r;let p=this.dynamicNameCache.get(c);if(!p){if(p=T6(zi(zi(this.baseHash,s.hash),r)>>>0),this.dynamicNameCache.size>=200){const g=this.dynamicNameCache.keys().next().value;g!==void 0&&this.dynamicNameCache.delete(g)}this.dynamicNameCache.set(c,p)}if(!n.hasNameForId(this.componentId,p)){const g=s(r,"."+p,void 0,this.componentId);n.insertRules(this.componentId,p,g)}i=Ul(i,p)}}return i}}const xL=/&/g;function F6(t,e){let n=0;for(;--e>=0&&t.charCodeAt(e)===92;)n++;return!(1&~n)}function gf(t){const e=t.length;let n="",s=0,i=0,r=0,c=!1,p=!1;for(let g=0;g<e;g++){const _=t.charCodeAt(g);if(r!==0||c||_!==Ri||t.charCodeAt(g+1)!==42)if(c)_===42&&t.charCodeAt(g+1)===Ri&&(c=!1,g++);else if(_!==34&&_!==39||F6(t,g)){if(r===0)if(_===123)i++;else if(_===125){if(i--,i<0){p=!0;let f=g+1;for(;f<e;){const h=t.charCodeAt(f);if(h===59||h===10)break;f++}f<e&&t.charCodeAt(f)===59&&f++,i=0,g=f-1,s=f;continue}i===0&&(n+=t.substring(s,g+1),s=g+1)}else _===59&&i===0&&(n+=t.substring(s,g+1),s=g+1)}else r===0?r=_:r===_&&(r=0);else c=!0,g++}return p||i!==0||r!==0?(s<e&&i===0&&r===0&&(n+=t.substring(s)),n):t}function U6(t,e){const n=e+" ",s=","+n;for(let i=0;i<t.length;i++){const r=t[i];if(r.type==="rule"){r.value=(n+r.value).replaceAll(",",s);const c=r.props,p=[];for(let g=0;g<c.length;g++)p[g]=n+c[g];r.props=p}Array.isArray(r.children)&&r.type!=="@keyframes"&&U6(r.children,e)}return t}function AL({options:t=hu,plugins:e=d1}=hu){let n,s,i;const r=(v,b,S)=>S.startsWith(s)&&S.endsWith(s)&&S.replaceAll(s,"").length>0?`.${n}`:v,c=e.slice();c.push(v=>{v.type===Mg&&v.value.includes("&")&&(i||(i=new RegExp(`\\${s}\\b`,"g")),v.props[0]=v.props[0].replace(xL,s).replace(i,r))}),t.prefix&&c.push(DM),c.push(MM);let p=[];const g=LM(c.concat(OM(v=>p.push(v)))),_=(v,b="",S="",x="&")=>{n=x,s=b,i=void 0;const w=(function(E){const I=E.indexOf("//")!==-1,j=E.indexOf("}")!==-1;if(!I&&!j)return E;if(!I)return gf(E);const T=E.length;let P="",N=0,D=0,F=0,B=0,L=0,$=!1;for(;D<T;){const q=E.charCodeAt(D);if(q!==34&&q!==39||F6(E,D))if(F===0)if(q===Ri&&D+1<T&&E.charCodeAt(D+1)===42){for(D+=2;D+1<T&&(E.charCodeAt(D)!==42||E.charCodeAt(D+1)!==Ri);)D++;D+=2}else if(q!==40)if(q!==41)if(B>0)D++;else if(q===42&&D+1<T&&E.charCodeAt(D+1)===Ri)P+=E.substring(N,D),D+=2,N=D,$=!0;else if(q===Ri&&D+1<T&&E.charCodeAt(D+1)===Ri){for(P+=E.substring(N,D);D<T&&E.charCodeAt(D)!==10;)D++;N=D,$=!0}else q===123?L++:q===125&&L--,D++;else B>0&&B--,D++;else B++,D++;else D++;else F===0?F=q:F===q&&(F=0),D++}return $?(N<T&&(P+=E.substring(N)),L===0?P:gf(P)):L===0?E:gf(E)})(v);let A=jM(S||b?S+" "+b+" { "+w+" }":w);return t.namespace&&(A=U6(A,t.namespace)),p=[],ig(A,g),p},f=t;let h=$k;for(let v=0;v<e.length;v++)e[v].name||Bg(15),h=zi(h,e[v].name);return f?.namespace&&(h=zi(h,f.namespace)),f?.prefix&&(h=zi(h,"p")),_.hash=h!==$k?h.toString():"",_}const CL=new Gg,SL=AL(),V6=Gt.createContext({shouldForwardProp:void 0,styleSheet:CL,stylis:SL,stylisPlugins:void 0});V6.Consumer;function wL(){return Gt.useContext(V6)}const q6=Gt.createContext(void 0);q6.Consumer;const V5=Object.prototype.hasOwnProperty,mf={};function EL(t,e){const n=typeof t!="string"?"sc":R6(t);mf[n]=(mf[n]||0)+1;const s=n+"-"+qM(zg+n+mf[n]);return e?e+"-"+s:s}function IL(t,e,n){const s=O6(t),i=t,r=!Gk(t),{attrs:c=d1,componentId:p=EL(e.displayName,e.parentComponentId),displayName:g=WM(t)}=e,_=e.displayName&&e.componentId?R6(e.displayName)+"-"+e.componentId:e.componentId||p,f=s&&i.attrs?i.attrs.concat(c).filter(Boolean):c;let{shouldForwardProp:h}=e;if(s&&i.shouldForwardProp){const x=i.shouldForwardProp;if(e.shouldForwardProp){const w=e.shouldForwardProp;h=(A,E)=>x(A,E)&&w(A,E)}else h=x}const v=new bL(n,_,s?i.componentStyle:void 0);function b(x,w){return(function(A,E,I){const{attrs:j,componentStyle:T,defaultProps:P,foldedComponentIds:N,styledComponentId:D,target:F}=A,B=Gt.useContext(q6),L=wL(),$=A.shouldForwardProp||L.shouldForwardProp,q=HM(E,B,P)||hu;let Q,V;{const lt=Gt.useRef(null),M=lt.current;if(M!==null&&M[1]===q&&M[2]===L.styleSheet&&M[3]===L.stylis&&M[7]===T&&(function(gt,rt,O){const z=gt,Y=rt;let it=0;for(const W in Y)if(V5.call(Y,W)&&(it++,z[W]!==Y[W]))return!1;return it===O})(M[0],E,M[4]))Q=M[5],V=M[6];else{Q=(function(rt,O,z){const Y=Object.assign(Object.assign({},O),{className:void 0,theme:z}),it=rt.length>1;for(let W=0;W<rt.length;W++){const ut=rt[W],ht=$g(ut)?ut(it?Object.assign({},Y):Y):ut;for(const yt in ht)yt==="className"?Y.className=Ul(Y.className,ht[yt]):yt==="style"?Y.style=Object.assign(Object.assign({},Y.style),ht[yt]):yt in O&&O[yt]===void 0||(Y[yt]=ht[yt])}return"className"in O&&typeof O.className=="string"&&(Y.className=Ul(Y.className,O.className)),Y})(j,E,q),V=T.generateAndInjectStyles(Q,L.styleSheet,L.stylis);let gt=0;for(const rt in E)V5.call(E,rt)&&gt++;lt.current=[E,q,L.styleSheet,L.stylis,gt,Q,V,T]}}const U=Q.as||F,H=(function(lt,M,gt,rt){const O={};for(const z in lt)lt[z]===void 0||z[0]==="$"||z==="as"||z==="theme"&&lt.theme===gt||(z==="forwardedAs"?O.as=lt.forwardedAs:rt&&!rt(z,M)||(O[z]=lt[z]));return O})(Q,U,q,$);let st=Ul(N,D);return V&&(st+=" "+V),Q.className&&(st+=" "+Q.className),H[Gk(U)&&U.includes("-")?"class":"className"]=st,I&&(H.ref=I),y.createElement(U,H)})(S,x,w)}b.displayName=g;let S=Gt.forwardRef(b);return S.attrs=f,S.componentStyle=v,S.displayName=g,S.shouldForwardProp=h,S.foldedComponentIds=s?Ul(i.foldedComponentIds,i.styledComponentId):"",S.styledComponentId=_,S.target=s?i.target:t,Object.defineProperty(S,"defaultProps",{get(){return this._foldedDefaultProps},set(x){this._foldedDefaultProps=s?(function(w,...A){for(const E of A)Hk(w,E,!0);return w})({},i.defaultProps,x):x}}),D6(S,()=>`.${S.styledComponentId}`),r&&L6(S,t,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0}),S}var NL=new Set(["a","abbr","address","area","article","aside","audio","b","bdi","bdo","blockquote","body","button","br","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","map","mark","menu","meter","nav","object","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","slot","small","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","switch","symbol","text","textPath","tspan","use"]);function q5(t,e){const n=[t[0]];for(let s=0,i=e.length;s<i;s+=1)n.push(e[s],t[s+1]);return n}const K5=t=>(B6.add(t),t);function RL(t,...e){if($g(t)||dc(t))return K5(Bi(q5(d1,[t,...e])));const n=t;return e.length===0&&n.length===1&&typeof n[0]=="string"?Bi(n):K5(Bi(q5(n,e)))}function Uk(t,e,n=hu){if(!e)throw Bg(1,e);const s=(i,...r)=>t(e,n,RL(i,...r));return s.attrs=i=>Uk(t,e,Object.assign(Object.assign({}
81,n),{attrs:Array.prototype.concat(n.attrs,i).filter(Boolean)})),s.withConfig=i=>Uk(t,e,Object.assign(Object.assign({},n),i)),s}const K6=t=>Uk(IL,t),Ns=K6;NL.forEach(t=>{Ns[t]=K6(t)});const TL=t=>{const{maxRequests:e,windowMs:n}=t,s=y.useRef([]),i=y.useCallback(()=>{const p=Date.now();s.current=s.current.filter(v=>p-v.timestamp<n);const g=s.current.length,_=g<e,f=Math.max(0,e-g);let h=null;if(!_&&s.current.length>0){const v=s.current[0];h=new Date(v.timestamp+n)}return{canProceed:_,remainingRequests:f,resetAt:h}},[e,n]),r=y.useCallback(()=>{s.current.push({timestamp:Date.now()});const p=Date.now();s.current=s.current.filter(g=>p-g.timestamp<n)},[n]),c=y.useCallback(()=>{s.current=[]},[]);return{checkRateLimit:i,recordRequest:r,reset:c}},jL={"Về React Plus":`data: {"event":"start","content":"<|start|>","usage_metadata":{"input_tokens":0,"output_tokens":0,"total_tokens":0}}
82
83data: {"event":"message","content":"","usage_metadata":{"input_tokens":950,"output_tokens":1,"total_tokens":951}}
84
85data: {"event":"message","content":"React","usage_metadata":{"input_tokens":950,"output_tokens":1,"total_tokens":951}}
86
87data: {"event":"message","content":" Plus","usage_metadata":{"input_tokens":950,"output_tokens":2,"total_tokens":952}}
88
89data: {"event":"message","content":" là","usage_metadata":{"input_tokens":950,"output_tokens":3,"total_tokens":953}}
90
91data: {"event":"message","content":" công","usage_metadata":{"input_tokens":950,"output_tokens":4,"total_tokens":954}}
92
93data: {"event":"message","content":" ty","usage_metadata":{"input_tokens":950,"output_tokens":5,"total_tokens":955}}
94
95data: {"event":"message","content":" phát","usage_metadata":{"input_tokens":950,"output_tokens":6,"total_tokens":956}}
96
97data: {"event":"message","content":" triển","usage_metadata":{"input_tokens":950,"output_tokens":7,"total_tokens":957}}
98
99data: {"event":"message","content":" các","usage_metadata":{"input_tokens":950,"output_tokens":8,"total_tokens":958}}
100
101data: {"event":"message","content":" giải","usage_metadata":{"input_tokens":950,"output_tokens":9,"total_tokens":959}}
102
103data: {"event":"message","content":" pháp","usage_metadata":{"input_tokens":950,"output_tokens":10,"total_tokens":960}}
104
105data: {"event":"message","content":" AI","usage_metadata":{"input_tokens":950,"output_tokens":11,"total_tokens":961}}
106
107data: {"event":"message","content":" cho","usage_metadata":{"input_tokens":950,"output_tokens":12,"total_tokens":962}}
108
109data: {"event":"message","content":" doanh","usage_metadata":{"input_tokens":950,"output_tokens":13,"total_tokens":963}}
110
111data: {"event":"message","content":" nghiệp,","usage_metadata":{"input_tokens":950,"output_tokens":14,"total_tokens":964}}
112
113data: {"event":"message","content":" đồng","usage_metadata":{"input_tokens":950,"output_tokens":15,"total_tokens":965}}
114
115data: {"event":"message","content":" thời","usage_metadata":{"input_tokens":950,"output_tokens":16,"total_tokens":966}}
116
117data: {"event":"message","content":" sở","usage_metadata":{"input_tokens":950,"output_tokens":17,"total_tokens":967}}
118
119data: {"event":"message","content":" hữu","usage_metadata":{"input_tokens":950,"output_tokens":18,"total_tokens":968}}
120
121data: {"event":"message","content":" và","usage_metadata":{"input_tokens":950,"output_tokens":19,"total_tokens":969}}
122
123data: {"event":"message","content":" thương","usage_metadata":{"input_tokens":950,"output_tokens":20,"total_tokens":970}}
124
125data: {"event":"message","content":" mại","usage_metadata":{"input_tokens":950,"output_tokens":21,"total_tokens":971}}
126
127data: {"event":"message","content":" hóa","usage_metadata":{"input_tokens":950,"output_tokens":22,"total_tokens":972}}
128
129data: {"event":"message","content":" các","usage_metadata":{"input_tokens":950,"output_tokens":23,"total_tokens":973}}
130
131data: {"event":"message","content":" sản","usage_metadata":{"input_tokens":950,"output_tokens":24,"total_tokens":974}}
132
133data: {"event":"message","content":" phẩm","usage_metadata":{"input_tokens":950,"output_tokens":25,"total_tokens":975}}
134
135data: {"event":"message","content":" AI","usage_metadata":{"input_tokens":950,"output_tokens":26,"total_tokens":976}}
136
137data: {"event":"message","content":" do","usage_metadata":{"input_tokens":950,"output_tokens":27,"total_tokens":977}}
138
139data: {"event":"message","content":" chính","usage_metadata":{"input_tokens":950,"output_tokens":28,"total_tokens":978}}
140
141data: {"event":"message","content":" công","usage_metadata":{"input_tokens":950,"output_tokens":29,"total_tokens":979}}
142
143data: {"event":"message","content":" ty","usage_metadata":{"input_tokens":950,"output_tokens":30,"total_tokens":980}}
144
145data: {"event":"message","content":" xây","usage_metadata":{"input_tokens":950,"output_tokens":31,"total_tokens":981}}
146
147data: {"event":"message","content":" dá»±ng.","usage_metadata":{"input_tokens":950,"output_tokens":32,"total_tokens":982}}
148
149data: {"event":"message","content":" Hiện","usage_metadata":{"input_tokens":950,"output_tokens":33,"total_tokens":983}}
150
151data: {"event":"message","content":" nay,","usage_metadata":{"input_tokens":950,"output_tokens":34,"total_tokens":984}}
152
153data: {"event":"message","content":" hoạt","usage_metadata":{"input_tokens":950,"output_tokens":35,"total_tokens":985}}
154
155data: {"event":"message","content":" động","usage_metadata":{"input_tokens":950,"output_tokens":36,"total_tokens":986}}
156
157data: {"event":"message","content":" kinh","usage_metadata":{"input_tokens":950,"output_tokens":37,"total_tokens":987}}
158
159data: {"event":"message","content":" doanh","usage_metadata":{"input_tokens":950,"output_tokens":38,"total_tokens":988}}
160
161data: {"event":"message","content":" tập","usage_metadata":{"input_tokens":950,"output_tokens":39,"total_tokens":989}}
162
163data: {"event":"message","content":" trung","usage_metadata":{"input_tokens":950,"output_tokens":40,"total_tokens":990}}
164
165data: {"event":"message","content":" vào","usage_metadata":{"input_tokens":950,"output_tokens":41,"total_tokens":991}}
166
167data: {"event":"message","content":" ba","usage_metadata":{"input_tokens":950,"output_tokens":42,"total_tokens":992}}
168
169data: {"event":"message","content":" mảng","usage_metadata":{"input_tokens":950,"output_tokens":43,"total_tokens":993}}
170
171data: {"event":"message","content":" chính:","usage_metadata":{"input_tokens":950,"output_tokens":44,"total_tokens":994}}
172
173data: {"event":"message","content":" cung","usage_metadata":{"input_tokens":950,"output_tokens":45,"total_tokens":995}}
174
175data: {"event":"message","content":" cấp","usage_metadata":{"input_tokens":950,"output_tokens":46,"total_tokens":996}}
176
177data: {"event":"message","content":" **AI","usage_metadata":{"input_tokens":950,"output_tokens":47,"total_tokens":997}}
178
179data: {"event":"message","content":" Solutions**","usage_metadata":{"input_tokens":950,"output_tokens":48,"total_tokens":998}}
180
181data: {"event":"message","content":" cho","usage_metadata":{"input_tokens":950,"output_tokens":49,"total_tokens":999}}
182
183data: {"event":"message","content":" doanh","usage_metadata":{"input_tokens":950,"output_tokens":50,"total_tokens":1000}}
184
185data: {"event":"message","content":" nghiệp;","usage_metadata":{"input_tokens":950,"output_tokens":51,"total_tokens":1001}}
186
187data: {"event":"message","content":" phát","usage_metadata":{"input_tokens":950,"output_tokens":52,"total_tokens":1002}}
188
189data: {"event":"message","content":" triển","usage_metadata":{"input_tokens":950,"output_tokens":53,"total_tokens":1003}}
190
191data: {"event":"message","content":" và","usage_metadata":{"input_tokens":950,"output_tokens":54,"total_tokens":1004}}
192
193data: {"event":"message","content":" thương","usage_metadata":{"input_tokens":950,"output_tokens":55,"total_tokens":1005}}
194
195data: {"event":"message","content":" mại","usage_metadata":{"input_tokens":950,"output_tokens":56,"total_tokens":1006}}
196
197data: {"event":"message","content":" hóa","usage_metadata":{"input_tokens":950,"output_tokens":57,"total_tokens":1007}}
198
199data: {"event":"message","content":" các","usage_metadata":{"input_tokens":950,"output_tokens":58,"total_tokens":1008}}
200
201data: {"event":"message","content":" **sản","usage_metadata":{"input_tokens":950,"output_tokens":59,"total_tokens":1009}}
202
203data: {"event":"message","content":" phẩm","usage_metadata":{"input_tokens":950,"output_tokens":60,"total_tokens":1010}}
204
205data: {"event":"message","content":" AI","usage_metadata":{"input_tokens":950,"output_tokens":61,"total_tokens":1011}}
206
207data: {"event":"message","content":" thuộc","usage_metadata":{"input_tokens":950,"output_tokens":62,"total_tokens":1012}}
208
209data: {"event":"message","content":" sở","usage_metadata":{"input_tokens":950,"output_tokens":63,"total_tokens":1013}}
210
211data: {"event":"message","content":" hữu","usage_metadata":{"input_tokens":950,"output_tokens":64,"total_tokens":1014}}
212
213data: {"event":"message","content":" cá»§a","usage_metadata":{"input_tokens":950,"output_tokens":65,"total_tokens":1015}}
214
215data: {"event":"message","content":" React","usage_metadata":{"input_tokens":950,"output_tokens":66,"total_tokens":1016}}
216
217data: {"event":"message","content":" Plus**;","usage_metadata":{"input_tokens":950,"output_tokens":67,"total_tokens":1017}}
218
219data: {"event":"message","content":" và","usage_metadata":{"input_tokens":950,"output_tokens":68,"total_tokens":1018}}
220
221data: {"event":"message","content":" ứng","usage_metadata":{"input_tokens":950,"output_tokens":69,"total_tokens":1019}}
222
223data: {"event":"message","content":" dụng","usage_metadata":{"input_tokens":950,"output_tokens":70,"total_tokens":1020}}
224
225data: {"event":"message","content":" **AI","usage_metadata":{"input_tokens":950,"output_tokens":71,"total_tokens":1021}}
226
227data: {"event":"message","content":" Agent","usage_metadata":{"input_tokens":950,"output_tokens":72,"total_tokens":1022}}
227
228
229data: {"event":"message","content":" cùng","usage_metadata":{"input_tokens":950,"output_tokens":73,"total_tokens":1023}}
230
231data: {"event":"message","content":" phương","usage_metadata":{"input_tokens":950,"output_tokens":74,"total_tokens":1024}}
232
233data: {"event":"message","content":" pháp","usage_metadata":{"input_tokens":950,"output_tokens":75,"total_tokens":1025}}
234
235data: {"event":"message","content":" AI-driven**","usage_metadata":{"input_tokens":950,"output_tokens":76,"total_tokens":1026}}
236
237data: {"event":"message","content":" vào","usage_metadata":{"input_tokens":950,"output_tokens":77,"total_tokens":1027}}
238
239data: {"event":"message","content":" quy","usage_metadata":{"input_tokens":950,"output_tokens":78,"total_tokens":1028}}
240
241data: {"event":"message","content":" trình","usage_metadata":{"input_tokens":950,"output_tokens":79,"total_tokens":1029}}
242
243data: {"event":"message","content":" phát","usage_metadata":{"input_tokens":950,"output_tokens":80,"total_tokens":1030}}
244
245data: {"event":"message","content":" triển","usage_metadata":{"input_tokens":950,"output_tokens":81,"total_tokens":1031}}
246
247data: {"event":"message","content":" phần","usage_metadata":{"input_tokens":950,"output_tokens":82,"total_tokens":1032}}
248
249data: {"event":"message","content":" mềm.","usage_metadata":{"input_tokens":950,"output_tokens":83,"total_tokens":1033}}
250
251data: {"event":"message","content":"\\n\\n","usage_metadata":{"input_tokens":950,"output_tokens":84,"total_tokens":1034}}
252
253data: {"event":"message","content":"Năng","usage_metadata":{"input_tokens":950,"output_tokens":85,"total_tokens":1035}}
254
255data: {"event":"message","content":" lá»±c","usage_metadata":{"input_tokens":950,"output_tokens":86,"total_tokens":1036}}
256
257data: {"event":"message","content":" AI","usage_metadata":{"input_tokens":950,"output_tokens":87,"total_tokens":1037}}
258
259data: {"event":"message","content":" cá»§a","usage_metadata":{"input_tokens":950,"output_tokens":88,"total_tokens":1038}}
260
261data: {"event":"message","content":" React","usage_metadata":{"input_tokens":950,"output_tokens":89,"total_tokens":1039}}
262
263data: {"event":"message","content":" Plus","usage_metadata":{"input_tokens":950,"output_tokens":90,"total_tokens":1040}}
264
265data: {"event":"message","content":" được","usage_metadata":{"input_tokens":950,"output_tokens":91,"total_tokens":1041}}
266
267data: {"event":"message","content":" xây","usage_metadata":{"input_tokens":950,"output_tokens":92,"total_tokens":1042}}
268
269data: {"event":"message","content":" dá»±ng","usage_metadata":{"input_tokens":950,"output_tokens":93,"total_tokens":1043}}
270
271data: {"event":"message","content":" trên","usage_metadata":{"input_tokens":950,"output_tokens":94,"total_tokens":1044}}
272
273data: {"event":"message","content":" đội","usage_metadata":{"input_tokens":950,"output_tokens":95,"total_tokens":1045}}
274
275data: {"event":"message","content":" ngũ","usage_metadata":{"input_tokens":950,"output_tokens":96,"total_tokens":1046}}
276
277data: {"event":"message","content":" chuyên","usage_metadata":{"input_tokens":950,"output_tokens":97,"total_tokens":1047}}
278
279data: {"event":"message","content":" trách","usage_metadata":{"input_tokens":950,"output_tokens":98,"total_tokens":1048}}
280
281data: {"event":"message","content":" gồm","usage_metadata":{"input_tokens":950,"output_tokens":99,"total_tokens":1049}}
282
283data: {"event":"message","content":" hơn","usage_metadata":{"input_tokens":950,"output_tokens":100,"total_tokens":1050}}
284
285data: {"event":"message","content":" **40","usage_metadata":{"input_tokens":950,"output_tokens":101,"total_tokens":1051}}
286
287data: {"event":"message","content":" kỹ","usage_metadata":{"input_tokens":950,"output_tokens":102,"total_tokens":1052}}
288
289data: {"event":"message","content":" sư","usage_metadata":{"input_tokens":950,"output_tokens":103,"total_tokens":1053}}
290
291data: {"event":"message","content":" AI","usage_metadata":{"input_tokens":950,"output_tokens":104,"total_tokens":1054}}
292
293data: {"event":"message","content":" toàn","usage_metadata":{"input_tokens":950,"output_tokens":105,"total_tokens":1055}}
294
295data: {"event":"message","content":" thời","usage_metadata":{"input_tokens":950,"output_tokens":106,"total_tokens":1056}}
296
297data: {"event":"message","content":" gian**,","usage_metadata":{"input_tokens":950,"output_tokens":107,"total_tokens":1057}}
298
299data: {"event":"message","content":" trên","usage_metadata":{"input_tokens":950,"output_tokens":108,"total_tokens":1058}}
300
301data: {"event":"message","content":" tổng","usage_metadata":{"input_tokens":950,"output_tokens":109,"total_tokens":1059}}
302
303data: {"event":"message","content":" số","usage_metadata":{"input_tokens":950,"output_tokens":110,"total_tokens":1060}}
304
305data: {"event":"message","content":" hơn","usage_metadata":{"input_tokens":950,"output_tokens":111,"total_tokens":1061}}
306
307data: {"event":"message","content":" 170","usage_metadata":{"input_tokens":950,"output_tokens":112,"total_tokens":1062}}
308
309data: {"event":"message","content":" nhân","usage_metadata":{"input_tokens":950,"output_tokens":113,"total_tokens":1063}}
310
311data: {"event":"message","content":" sá»±.","usage_metadata":{"input_tokens":950,"output_tokens":114,"total_tokens":1064}}
312
313data: {"event":"message","content":" Đội","usage_metadata":{"input_tokens":950,"output_tokens":115,"total_tokens":1065}}
314
315data: {"event":"message","content":" ngũ","usage_metadata":{"input_tokens":950,"output_tokens":116,"total_tokens":1066}}
316
317data: {"event":"message","content":" này","usage_metadata":{"input_tokens":950,"output_tokens":117,"total_tokens":1067}}
318
319data: {"event":"message","content":" có","usage_metadata":{"input_tokens":950,"output_tokens":118,"total_tokens":1068}}
320
321data: {"event":"message","content":" khả","usage_metadata":{"input_tokens":950,"output_tokens":119,"total_tokens":1069}}
322
323data: {"event":"message","content":" năng","usage_metadata":{"input_tokens":950,"output_tokens":120,"total_tokens":1070}}
324
325data: {"event":"message","content":" fine-tune","usage_metadata":{"input_tokens":950,"output_tokens":121,"total_tokens":1071}}
326
327data: {"event":"message","content":" model","usage_metadata":{"input_tokens":950,"output_tokens":122,"total_tokens":1072}}
328
329data: {"event":"message","content":" cho","usage_metadata":{"input_tokens":950,"output_tokens":123,"total_tokens":1073}}
329
330
331data: {"event":"message","content":" từng","usage_metadata":{"input_tokens":950,"output_tokens":124,"total_tokens":1074}}
332
333data: {"event":"message","content":" nghiệp","usage_metadata":{"input_tokens":950,"output_tokens":125,"total_tokens":1075}}
334
335data: {"event":"message","content":" vụ","usage_metadata":{"input_tokens":950,"output_tokens":126,"total_tokens":1076}}
336
337data: {"event":"message","content":" cụ","usage_metadata":{"input_tokens":950,"output_tokens":127,"total_tokens":1077}}
338
339data: {"event":"message","content":" thể,","usage_metadata":{"input_tokens":950,"output_tokens":128,"total_tokens":1078}}
340
341data: {"event":"message","content":" xây","usage_metadata":{"input_tokens":950,"output_tokens":129,"total_tokens":1079}}
342
343data: {"event":"message","content":" dá»±ng","usage_metadata":{"input_tokens":950,"output_tokens":130,"total_tokens":1080}}
344
345data: {"event":"message","content":" các","usage_metadata":{"input_tokens":950,"output_tokens":131,"total_tokens":1081}}
346
347data: {"event":"message","content":" nền","usage_metadata":{"input_tokens":950,"output_tokens":132,"total_tokens":1082}}
348
349data: {"event":"message","content":" tảng","usage_metadata":{"input_tokens":950,"output_tokens":133,"total_tokens":1083}}
350
351data: {"event":"message","content":" AI","usage_metadata":{"input_tokens":950,"output_tokens":134,"total_tokens":1084}}
352
353data: {"event":"message","content":" gồm","usage_metadata":{"input_tokens":950,"output_tokens":135,"total_tokens":1085}}
354
355data: {"event":"message","content":" engine,","usage_metadata":{"input_tokens":950,"output_tokens":136,"total_tokens":1086}}
356
357data: {"event":"message","content":" hạ","usage_metadata":{"input_tokens":950,"output_tokens":137,"total_tokens":1087}}
358
359data: {"event":"message","content":" tầng","usage_metadata":{"input_tokens":950,"output_tokens":138,"total_tokens":1088}}
360
361data: {"event":"message","content":" RAG","usage_metadata":{"input_tokens":950,"output_tokens":139,"total_tokens":1089}}
362
363data: {"event":"message","content":" và","usage_metadata":{"input_tokens":950,"output_tokens":140,"total_tokens":1090}}
364
365data: {"event":"message","content":" agent","usage_metadata":{"input_tokens":950,"output_tokens":141,"total_tokens":1091}}
366
367data: {"event":"message","content":" orchestration","usage_metadata":{"input_tokens":950,"output_tokens":142,"total_tokens":1092}}
368
369data: {"event":"message","content":" framework,","usage_metadata":{"input_tokens":950,"output_tokens":143,"total_tokens":1093}}
370
371data: {"event":"message","content":" đồng","usage_metadata":{"input_tokens":950,"output_tokens":144,"total_tokens":1094}}
372
373data: {"event":"message","content":" thời","usage_metadata":{"input_tokens":950,"output_tokens":145,"total_tokens":1095}}
374
375data: {"event":"message","content":" phát","usage_metadata":{"input_tokens":950,"output_tokens":146,"total_tokens":1096}}
376
377data: {"event":"message","content":" triển","usage_metadata":{"input_tokens":950,"output_tokens":147,"total_tokens":1097}}
378
379data: {"event":"message","content":" các","usage_metadata":{"input_tokens":950,"output_tokens":148,"total_tokens":1098}}
380
381data: {"event":"message","content":" AI","usage_metadata":{"input_tokens":950,"output_tokens":149,"total_tokens":1099}}
382
383data: {"event":"message","content":" Agent","usage_metadata":{"input_tokens":950,"output_tokens":150,"total_tokens":1100}}
384
385data: {"event":"message","content":" xá»­","usage_metadata":{"input_tokens":950,"output_tokens":151,"total_tokens":1101}}
386
387data: {"event":"message","content":" lý","usage_metadata":{"input_tokens":950,"output_tokens":152,"total_tokens":1102}}
388
389data: {"event":"message","content":" trá»±c","usage_metadata":{"input_tokens":950,"output_tokens":153,"total_tokens":1103}}
390
391data: {"event":"message","content":" tiếp","usage_metadata":{"input_tokens":950,"output_tokens":154,"total_tokens":1104}}
392
393data: {"event":"message","content":" những","usage_metadata":{"input_tokens":950,"output_tokens":155,"total_tokens":1105}}
394
395data: {"event":"message","content":" quy","usage_metadata":{"input_tokens":950,"output_tokens":156,"total_tokens":1106}}
396
397data: {"event":"message","content":" trình","usage_metadata":{"input_tokens":950,"output_tokens":157,"total_tokens":1107}}
398
399data: {"event":"message","content":" nghiệp","usage_metadata":{"input_tokens":950,"output_tokens":158,"total_tokens":1108}}
400
401data: {"event":"message","content":" vụ","usage_metadata":{"input_tokens":950,"output_tokens":159,"total_tokens":1109}}
402
403data: {"event":"message","content":" cá»§a","usage_metadata":{"input_tokens":950,"output_tokens":160,"total_tokens":1110}}
404
405data: {"event":"message","content":" doanh","usage_metadata":{"input_tokens":950,"output_tokens":161,"total_tokens":1111}}
406
407data: {"event":"message","content":" nghiệp.","usage_metadata":{"input_tokens":950,"output_tokens":162,"total_tokens":1112}}
408
409data: {"event":"message","content":" Đây","usage_metadata":{"input_tokens":950,"output_tokens":163,"total_tokens":1113}}
410
411data: {"event":"message","content":" là","usage_metadata":{"input_tokens":950,"output_tokens":164,"total_tokens":1114}}
412
413data: {"event":"message","content":" điểm","usage_metadata":{"input_tokens":950,"output_tokens":165,"total_tokens":1115}}
414
415data: {"event":"message","content":" khác","usage_metadata":{"input_tokens":950,"output_tokens":166,"total_tokens":1116}}
416
417data: {"event":"message","content":" biệt","usage_metadata":{"input_tokens":950,"output_tokens":167,"total_tokens":1117}}
418
419data: {"event":"message","content":" quan","usage_metadata":{"input_tokens":950,"output_tokens":168,"total_tokens":1118}}
420
421data: {"event":"message","content":" trọng","usage_metadata":{"input_tokens":950,"output_tokens":169,"total_tokens":1119}}
422
423data: {"event":"message","content":" so","usage_metadata":{"input_tokens":950,"output_tokens":170,"total_tokens":1120}}
424
425data: {"event":"message","content":" với","usage_metadata":{"input_tokens":950,"output_tokens":171,"total_tokens":1121}}
426
427data: {"event":"message","content":" các","usage_metadata":{"input_tokens":950,"output_tokens":172,"total_tokens":1122}}
428
429data: {"event":"message","content":" đơn","usage_metadata":{"input_tokens":950,"output_tokens":173,"total_tokens":1123}}
430
431data: {"event":"message","content":" vị","usage_metadata":{"input_tokens":950,"output_tokens":174,"total_tokens":1124}}
432
433data: {"event":"message","content":" chá»§","usage_metadata":{"input_tokens":950,"output_tokens":175,"total_tokens":1125}}
434
435data: {"event":"message","content":" yếu","usage_metadata":{"input_tokens":950,"output_tokens":176,"total_tokens":1126}}
436
437data: {"event":"message","content":" tích","usage_metadata":{"input_tokens":950,"output_tokens":177,"total_tokens":1127}}
438
439data: {"event":"message","content":" hợp","usage_metadata":{"input_tokens":950,"output_tokens":178,"total_tokens":1128}}
440
441data: {"event":"message","content":" hoặc","usage_metadata":{"input_tokens":950,"output_tokens":179,"total_tokens":1129}}
442
443data: {"event":"message","content":" sá»­","usage_metadata":{"input_tokens":950,"output_tokens":180,"total_tokens":1130}}
444
445data: {"event":"message","content":" dụng","usage_metadata":{"input_tokens":950,"output_tokens":181,"total_tokens":1131}}
446
447data: {"event":"message","content":" các","usage_metadata":{"input_tokens":950,"output_tokens":182,"total_tokens":1132}}
448
449data: {"event":"message","content":" công","usage_metadata":{"input_tokens":950,"output_tokens":183,"total_tokens":1133}}
450
451data: {"event":"message","content":" cụ","usage_metadata":{"input_tokens":950,"output_tokens":184,"total_tokens":1134}}
452
453data: {"event":"message","content":" AI","usage_metadata":{"input_tokens":950,"output_tokens":185,"total_tokens":1135}}
454
455data: {"event":"message","content":" thương","usage_metadata":{"input_tokens":950,"output_tokens":186,"total_tokens":1136}}
456
457data: {"event":"message","content":" mại","usage_metadata":{"input_tokens":950,"output_tokens":187,"total_tokens":1137}}
458
459data: {"event":"message","content":" có","usage_metadata":{"input_tokens":950,"output_tokens":188,"total_tokens":1138}}
460
461data: {"event":"message","content":" sẵn.","usage_metadata":{"input_tokens":950,"output_tokens":189,"total_tokens":1139}}
462
463data: {"event":"message","content":"\\n\\n","usage_metadata":{"input_tokens":950,"output_tokens":190,"total_tokens":1140}}
464
465data: {"event":"message","content":"Về","usage_metadata":{"input_tokens":950,"output_tokens":191,"total_tokens":1141}}
466
467data: {"event":"message","content":" công","usage_metadata":{"input_tokens":950,"output_tokens":192,"total_tokens":1142}}
468
469data: {"event":"message","content":" nghệ,","usage_metadata":{"input_tokens":950,"output_tokens":193,"total_tokens":1143}}
470
471data: {"event":"message","content":" React","usage_metadata":{"input_tokens":950,"output_tokens":194,"total_tokens":1144}}
472
473data: {"event":"message","content":" Plus","usage_metadata":{"input_tokens":950,"output_tokens":195,"total_tokens":1145}}
474
475data: {"event":"message","content":" tập","usage_metadata":{"input_tokens":950,"output_tokens":196,"total_tokens":1146}}
476
477data: {"event":"message","content":" trung","usage_metadata":{"input_tokens":950,"output_tokens":197,"total_tokens":1147}}
478
479data: {"event":"message","content":" tá»±","usage_metadata":{"input_tokens":950,"output_tokens":198,"total_tokens":1148}}
480
481data: {"event":"message","content":" phát","usage_metadata":{"input_tokens":950,"output_tokens":199,"total_tokens":1149}}
482
483data: {"event":"message","content":" triển","usage_metadata":{"input_tokens":950,"output_tokens":200,"total_tokens":1150}}
484
485data: {"event":"message","content":" toàn","usage_metadata":{"input_tokens":950,"output_tokens":201,"total_tokens":1151}}
486
487data: {"event":"message","content":" bộ","usage_metadata":{"input_tokens":950,"output_tokens":202,"total_tokens":1152}}
488
489data: {"event":"message","content":" lớp","usage_metadata":{"input_tokens":950,"output_tokens":203,"total_tokens":1153}}
490
491data: {"event":"message","content":" công","usage_metadata":{"input_tokens":950,"output_tokens":204,"total_tokens":1154}}
492
493data: {"event":"message","content":" nghệ","usage_metadata":{"input_tokens":950,"output_tokens":205,"total_tokens":1155}}
494
495data: {"event":"message","content":" giúp","usage_metadata":{"input_tokens":950,"output_tokens":206,"total_tokens":1156}}
496
497data: {"event":"message","content":" chuyển","usage_metadata":{"input_tokens":950,"output_tokens":207,"total_tokens":1157}}
498
499data: {"event":"message","content":" một","usage_metadata":{"input_tokens":950,"output_tokens":208,"total_tokens":1158}}
500
501data: {"event":"message","content":" AI","usage_metadata":{"input_tokens":950,"output_tokens":209,"total_tokens":1159}}
502
503data: {"event":"message","content":" model","usage_metadata":{"input_tokens":950,"output_tokens":210,"total_tokens":1160}}
504
505data: {"event":"message","content":" thành","usage_metadata":{"input_tokens":950,"output_tokens":211,"total_tokens":1161}}
506
507data: {"event":"message","content":" sản","usage_metadata":{"input_tokens":950,"output_tokens":212,"total_tokens":1162}}
508
509data: {"event":"message","content":" phẩm","usage_metadata":{"input_tokens":950,"output_tokens":213,"total_tokens":1163}}
510
511data: {"event":"message","content":" có","usage_metadata":{"input_tokens":950,"output_tokens":214,"total_tokens":1164}}
512
513data: {"event":"message","content":" khả","usage_metadata":{"input_tokens":950,"output_tokens":215,"total_tokens":1165}}
514
515data: {"event":"message","content":" năng","usage_metadata":{"input_tokens":950,"output_tokens":216,"total_tokens":1166}}
516
517data: {"event":"message","content":" giải","usage_metadata":{"input_tokens":950,"output_tokens":217,"total_tokens":1167}}
518
519data: {"event":"message","content":" quyết","usage_metadata":{"input_tokens":950,"output_tokens":218,"total_tokens":1168}}
520
521data: {"event":"message","content":" bài","usage_metadata":{"input_tokens":950,"output_tokens":219,"total_tokens":1169}}
522
523data: {"event":"message","content":" toán","usage_metadata":{"input_tokens":950,"output_tokens":220,"total_tokens":1170}}
524
525data: {"event":"message","content":" thá»±c","usage_metadata":{"input_tokens":950,"output_tokens":221,"total_tokens":1171}}
526
527data: {"event":"message","content":" tế.","usage_metadata":{"input_tokens":950,"output_tokens":222,"total_tokens":1172}}
528
529data: {"event":"message","content":" Nền","usage_metadata":{"input_tokens":950,"output_tokens":223,"total_tokens":1173}}
530
531data: {"event":"message","content":" tảng","usage_metadata":{"input_tokens":950,"output_tokens":224,"total_tokens":1174}}
532
533data: {"event":"message","content":" lõi","usage_metadata":{"input_tokens":950,"output_tokens":225,"total_tokens":1175}}
534
535data: {"event":"message","content":" cá»§a","usage_metadata":{"input_tokens":950,"output_tokens":226,"total_tokens":1176}}
536
537data: {"event":"message","content":" công","usage_metadata":{"input_tokens":950,"output_tokens":227,"total_tokens":1177}}
538
539data: {"event":"message","content":" ty","usage_metadata":{"input_tokens":950,"output_tokens":228,"total_tokens":1178}}
540
541data: {"event":"message","content":" bao","usage_metadata":{"input_tokens":950,"output_tokens":229,"total_tokens":1179}}
542
543data: {"event":"message","content":" gồm","usage_metadata":{"input_tokens":950,"output_tokens":230,"total_tokens":1180}}
544
545data: {"event":"message","content":" kiến","usage_metadata":{"input_tokens":950,"output_tokens":231,"total_tokens":1181}}
546
547data: {"event":"message","content":" trúc","usage_metadata":{"input_tokens":950,"output_tokens":232,"total_tokens":1182}}
548
549data: {"event":"message","content":" AI","usage_metadata":{"input_tokens":950,"output_tokens":233,"total_tokens":1183}}
550
551data: {"event":"message","content":" Agent,","usage_metadata":{"input_tokens":950,"output_tokens":234,"total_tokens":1184}}
552
553data: {"event":"message","content":" hệ","usage_metadata":{"input_tokens":950,"output_tokens":235,"total_tokens":1185}}
554
555data: {"event":"message","content":" thống","usage_metadata":{"input_tokens":950,"output_tokens":236,"total_tokens":1186}}
556
557data: {"event":"message","content":" điều","usage_metadata":{"input_tokens":950,"output_tokens":237,"total_tokens":1187}}
558
559data: {"event":"message","content":" phối,","usage_metadata":{"input_tokens":950,"output_tokens":238,"total_tokens":1188}}
560
561data: {"event":"message","content":" RAG,","usage_metadata":{"input_tokens":950,"output_tokens":239,"total_tokens":1189}}
562
563data: {"event":"message","content":" workflow,","usage_metadata":{"input_tokens":950,"output_tokens":240,"total_tokens":1190}}
564
565data: {"event":"message","content":" engine","usage_metadata":{"input_tokens":950,"output_tokens":241,"total_tokens":1191}}
566
567data: {"event":"message","content":" nghiệp","usage_metadata":{"input_tokens":950,"output_tokens":242,"total_tokens":1192}}
568
569data: {"event":"message","content":" vụ,","usage_metadata":{"input_tokens":950,"output_tokens":243,"total_tokens":1193}}
570
571data: {"event":"message","content":" hệ","usage_metadata":{"input_tokens":950,"output_tokens":244,"total_tokens":1194}}
572
573data: {"event":"message","content":" thống","usage_metadata":{"input_tokens":950,"output_tokens":245,"total_tokens":1195}}
574
575data: {"event":"message","content":" đánh","usage_metadata":{"input_tokens":950,"output_tokens":246,"total_tokens":1196}}
576
577data: {"event":"message","content":" giá","usage_metadata":{"input_tokens":950,"output_tokens":247,"total_tokens":1197}}
578
579data: {"event":"message","content":" và","usage_metadata":{"input_tokens":950,"output_tokens":248,"total_tokens":1198}}
580
581data: {"event":"message","content":" các","usage_metadata":{"input_tokens":950,"output_tokens":249,"total_tokens":1199}}
582
583data: {"event":"message","content":" module","usage_metadata":{"input_tokens":950,"output_tokens":250,"total_tokens":1200}}
584
585data: {"event":"message","content":" dùng","usage_metadata":{"input_tokens":950,"output_tokens":251,"total_tokens":1201}}
586
587data: {"event":"message","content":" chung.","usage_metadata":{"input_tokens":950,"output_tokens":252,"total_tokens":1202}}
588
589data: {"event":"message","content":" React","usage_metadata":{"input_tokens":950,"output_tokens":253,"total_tokens":1203}}
590
591data: {"event":"message","content":" Plus","usage_metadata":{"input_tokens":950,"output_tokens":254,"total_tokens":1204}}
592
593data: {"event":"message","content":" không","usage_metadata":{"input_tokens":950,"output_tokens":255,"total_tokens":
5931205}}
594
595data: {"event":"message","content":" tá»±","usage_metadata":{"input_tokens":950,"output_tokens":256,"total_tokens":1206}}
596
597data: {"event":"message","content":" phát","usage_metadata":{"input_tokens":950,"output_tokens":257,"total_tokens":1207}}
598
599data: {"event":"message","content":" triển","usage_metadata":{"input_tokens":950,"output_tokens":258,"total_tokens":1208}}
600
601data: {"event":"message","content":" foundation","usage_metadata":{"input_tokens":950,"output_tokens":259,"total_tokens":1209}}
602
603data: {"event":"message","content":" LLM","usage_metadata":{"input_tokens":950,"output_tokens":260,"total_tokens":1210}}
604
605data: {"event":"message","content":" mà","usage_metadata":{"input_tokens":950,"output_tokens":261,"total_tokens":1211}}
606
607data: {"event":"message","content":" kết","usage_metadata":{"input_tokens":950,"output_tokens":262,"total_tokens":1212}}
608
609data: {"event":"message","content":" hợp","usage_metadata":{"input_tokens":950,"output_tokens":263,"total_tokens":1213}}
610
611data: {"event":"message","content":" các","usage_metadata":{"input_tokens":950,"output_tokens":264,"total_tokens":1214}}
612
613data: {"event":"message","content":" model","usage_metadata":{"input_tokens":950,"output_tokens":265,"total_tokens":1215}}
614
615data: {"event":"message","content":" thương","usage_metadata":{"input_tokens":950,"output_tokens":266,"total_tokens":1216}}
616
617data: {"event":"message","content":" mại","usage_metadata":{"input_tokens":950,"output_tokens":267,"total_tokens":1217}}
618
619data: {"event":"message","content":" và","usage_metadata":{"input_tokens":950,"output_tokens":268,"total_tokens":1218}}
620
621data: {"event":"message","content":" model","usage_metadata":{"input_tokens":950,"output_tokens":269,"total_tokens":1219}}
622
623data: {"event":"message","content":" open-weight,","usage_metadata":{"input_tokens":950,"output_tokens":270,"total_tokens":1220}}
624
625data: {"event":"message","content":" sau","usage_metadata":{"input_tokens":950,"output_tokens":271,"total_tokens":1221}}
626
627data: {"event":"message","content":" đó","usage_metadata":{"input_tokens":950,"output_tokens":272,"total_tokens":1222}}
628
629data: {"event":"message","content":" xây","usage_metadata":{"input_tokens":950,"output_tokens":273,"total_tokens":1223}}
630
631data: {"event":"message","content":" dá»±ng","usage_metadata":{"input_tokens":950,"output_tokens":274,"total_tokens":1224}}
632
633data: {"event":"message","content":" lớp","usage_metadata":{"input_tokens":950,"output_tokens":275,"total_tokens":1225}}
634
635data: {"event":"message","content":" công","usage_metadata":{"input_tokens":950,"output_tokens":276,"total_tokens":1226}}
636
637data: {"event":"message","content":" nghệ","usage_metadata":{"input_tokens":950,"output_tokens":277,"total_tokens":1227}}
638
639data: {"event":"message","content":" phía","usage_metadata":{"input_tokens":950,"output_tokens":278,"total_tokens":1228}}
640
641data: {"event":"message","content":" trên,","usage_metadata":{"input_tokens":950,"output_tokens":279,"total_tokens":1229}}
642
643data: {"event":"message","content":" bao","usage_metadata":{"input_tokens":950,"output_tokens":280,"total_tokens":1230}}
644
645data: {"event":"message","content":" gồm","usage_metadata":{"input_tokens":950,"output_tokens":281,"total_tokens":1231}}
646
647data: {"event":"message","content":" các","usage_metadata":{"input_tokens":950,"output_tokens":282,"total_tokens":1232}}
648
649data: {"event":"message","content":" model","usage_metadata":{"input_tokens":950,"output_tokens":283,"total_tokens":1233}}
650
651data: {"event":"message","content":" chuyên","usage_metadata":{"input_tokens":950,"output_tokens":284,"total_tokens":1234}}
652
653data: {"event":"message","content":" biệt","usage_metadata":{"input_tokens":950,"output_tokens":285,"total_tokens":1235}}
654
655data: {"event":"message","content":" được","usage_metadata":{"input_tokens":950,"output_tokens":286,"total_tokens":1236}}
656
657data: {"event":"message","content":" fine-tune,","usage_metadata":{"input_tokens":950,"output_tokens":287,"total_tokens":1237}}
658
659data: {"event":"message","content":" luồng","usage_metadata":{"input_tokens":950,"output_tokens":288,"total_tokens":1238}}
660
661data: {"event":"message","content":" xá»­","usage_metadata":{"input_tokens":950,"output_tokens":289,"total_tokens":1239}}
662
663data: {"event":"message","content":" lý","usage_metadata":{"input_tokens":950,"output_tokens":290,"total_tokens":1240}}
664
665data: {"event":"message","content":" dữ","usage_metadata":{"input_tokens":950,"output_tokens":291,"total_tokens":1241}}
666
667data: {"event":"message","content":" liệu,","usage_metadata":{"input_tokens":950,"output_tokens":292,"total_tokens":1242}}
668
669data: {"event":"message","content":" Knowledge","usage_metadata":{"input_tokens":950,"output_tokens":293,"total_tokens":1243}}
670
671data: {"event":"message","content":" Layer,","usage_metadata":{"input_tokens":950,"output_tokens":294,"total_tokens":1244}}
672
673data: {"event":"message","content":" Agent","usage_metadata":{"input_tokens":950,"output_tokens":295,"total_tokens":1245}}
674
675data: {"event":"message","content":" Tools","usage_metadata":{"input_tokens":950,"output_tokens":296,"total_tokens":1246}}
676
677data: {"event":"message","content":" và","usage_metadata":{"input_tokens":950,"output_tokens":297,"total_tokens":1247}}
678
679data: {"event":"message","content":" logic","usage_metadata":{"input_tokens":950,"output_tokens":298,"total_tokens":1248}}
680
681data: {"event":"message","content":" nghiệp","usage_metadata":{"input_tokens":950,"output_tokens":299,"total_tokens":1249}}
682
683data: {"event":"message","content":" vụ","usage_metadata":{"input_tokens":950,"output_tokens":300,"total_tokens":1250}}
684
685data: {"event":"message","content":" phù","usage_metadata":{"input_tokens":950,"output_tokens":301,"total_tokens":1251}}
686
687data: {"event":"message","content":" hợp","usage_metadata":{"input_tokens":950,"output_tokens":302,"total_tokens":1252}}
688
689data: {"event":"message","content":" với","usage_metadata":{"input_tokens":950,"output_tokens":303,"total_tokens":1253}}
690
691data: {"event":"message","content":" từng","usage_metadata":{"input_tokens":950,"output_tokens":304,"total_tokens":1254}}
692
693data: {"event":"message","content":" bài","usage_metadata":{"input_tokens":950,"output_tokens":305,"total_tokens":1255}}
694
695data: {"event":"message","content":" toán.","usage_metadata":{"input_tokens":950,"output_tokens":306,"total_tokens":1256}}
696
697data: {"event":"message","content":"\\n\\n","usage_metadata":{"input_tokens":950,"output_tokens":307,"total_tokens":1257}}
698
699data: {"event":"message","content":"Trên","usage_metadata":{"input_tokens":950,"output_tokens":308,"total_tokens":1258}}
700
701data: {"event":"message","content":" nền","usage_metadata":{"input_tokens":950,"output_tokens":309,"total_tokens":1259}}
701
702
703data: {"event":"message","content":" tảng","usage_metadata":{"input_tokens":950,"output_tokens":310,"total_tokens":1260}}
704
705data: {"event":"message","content":" đó,","usage_metadata":{"input_tokens":950,"output_tokens":311,"total_tokens":1261}}
706
707data: {"event":"message","content":" React","usage_metadata":{"input_tokens":950,"output_tokens":312,"total_tokens":1262}}
708
709data: {"event":"message","content":" Plus","usage_metadata":{"input_tokens":950,"output_tokens":313,"total_tokens":1263}}
710
711data: {"event":"message","content":" đã","usage_metadata":{"input_tokens":950,"output_tokens":314,"total_tokens":1264}}
712
713data: {"event":"message","content":" phát","usage_metadata":{"input_tokens":950,"output_tokens":315,"total_tokens":1265}}
714
715data: {"event":"message","content":" triển","usage_metadata":{"input_tokens":950,"output_tokens":316,"total_tokens":1266}}
716
717data: {"event":"message","content":" danh","usage_metadata":{"input_tokens":950,"output_tokens":317,"total_tokens":1267}}
718
719data: {"event":"message","content":" mục","usage_metadata":{"input_tokens":950,"output_tokens":318,"total_tokens":1268}}
720
721data: {"event":"message","content":" sản","usage_metadata":{"input_tokens":950,"output_tokens":319,"total_tokens":1269}}
722
723data: {"event":"message","content":" phẩm","usage_metadata":{"input_tokens":950,"output_tokens":320,"total_tokens":1270}}
724
725data: {"event":"message","content":" AI","usage_metadata":{"input_tokens":950,"output_tokens":321,"total_tokens":1271}}
726
727data: {"event":"message","content":" gồm","usage_metadata":{"input_tokens":950,"output_tokens":322,"total_tokens":1272}}
728
729data: {"event":"message","content":" **AppOS,","usage_metadata":{"input_tokens":950,"output_tokens":323,"total_tokens":1273}}
730
731data: {"event":"message","content":" BabelTalk,","usage_metadata":{"input_tokens":950,"output_tokens":324,"total_tokens":1274}}
732
733data: {"event":"message","content":" TFA","usage_metadata":{"input_tokens":950,"output_tokens":325,"total_tokens":1275}}
734
735data: {"event":"message","content":" Scoring,","usage_metadata":{"input_tokens":950,"output_tokens":326,"total_tokens":1276}}
736
737data: {"event":"message","content":" AI","usage_metadata":{"input_tokens":950,"output_tokens":327,"total_tokens":1277}}
738
739data: {"event":"message","content":" Hodai,","usage_metadata":{"input_tokens":950,"output_tokens":328,"total_tokens":1278}}
740
741data: {"event":"message","content":" AI","usage_metadata":{"input_tokens":950,"output_tokens":329,"total_tokens":1279}}
742
743data: {"event":"message","content":" Konbini,","usage_metadata":{"input_tokens":950,"output_tokens":330,"total_tokens":1280}}
744
745data: {"event":"message","content":" BrSE.ai,","usage_metadata":{"input_tokens":950,"output_tokens":331,"total_tokens":1281}}
746
747data: {"event":"message","content":" GenSlide.jp","usage_metadata":{"input_tokens":950,"output_tokens":332,"total_tokens":1282}}
748
749data: {"event":"message","content":" và","usage_metadata":{"input_tokens":950,"output_tokens":333,"total_tokens":1283}}
750
751data: {"event":"message","content":" Mamori","usage_metadata":{"input_tokens":950,"output_tokens":334,"total_tokens":1284}}
752
753data: {"event":"message","content":" AI**.","usage_metadata":{"input_tokens":950,"output_tokens":335,"total_tokens":1285}}
754
755data: {"event":"message","content":" Một","usage_metadata":{"input_tokens":950,"output_tokens":336,"total_tokens":1286}}
756
757data: {"event":"message","content":" số","usage_metadata":{"input_tokens":950,"output_tokens":337,"total_tokens":1287}}
758
759data: {"event":"message","content":" sản","usage_metadata":{"input_tokens":950,"output_tokens":338,"total_tokens":1288}}
760
761data: {"event":"message","content":" phẩm","usage_metadata":{"input_tokens":950,"output_tokens":339,"total_tokens":1289}}
762
763data: {"event":"message","content":" hiện","usage_metadata":{"input_tokens":950,"output_tokens":340,"total_tokens":1290}}
764
765data: {"event":"message","content":" đang","usage_metadata":{"input_tokens":950,"output_tokens":341,"total_tokens":1291}}
766
767data: {"event":"message","content":" được","usage_metadata":{"input_tokens":950,"output_tokens":342,"total_tokens":1292}}
768
769data: {"event":"message","content":" khách","usage_metadata":{"input_tokens":950,"output_tokens":343,"total_tokens":1293}}
770
771data: {"event":"message","content":" hàng","usage_metadata":{"input_tokens":950,"output_tokens":344,"total_tokens":1294}}
772
773data: {"event":"message","content":" tại","usage_metadata":{"input_tokens":950,"output_tokens":345,"total_tokens":1295}}
774
775data: {"event":"message","content":" Nhật","usage_metadata":{"input_tokens":950,"output_tokens":346,"total_tokens":1296}}
776
777data: {"event":"message","content":" Bản","usage_metadata":{"input_tokens":950,"output_tokens":347,"total_tokens":1297}}
778
779data: {"event":"message","content":" thá»­","usage_metadata":{"input_tokens":950,"output_tokens":348,"total_tokens":1298}}
780
781data: {"event":"message","content":" nghiệm","usage_metadata":{"input_tokens":950,"output_tokens":349,"total_tokens":1299}}
782
783data: {"event":"message","content":" tích","usage_metadata":{"input_tokens":950,"output_tokens":350,"total_tokens":1300}}
784
785data: {"event":"message","content":" hợp","usage_metadata":{"input_tokens":950,"output_tokens":351,"total_tokens":1301}}
786
787data: {"event":"message","content":" vào","usage_metadata":{"input_tokens":950,"output_tokens":352,"total_tokens":1302}}
788
789data: {"event":"message","content":" hệ","usage_metadata":{"input_tokens":950,"output_tokens":353,"total_tokens":1303}}
790
791data: {"event":"message","content":" sinh","usage_metadata":{"input_tokens":950,"output_tokens":354,"total_tokens":1304}}
792
793data: {"event":"message","content":" thái","usage_metadata":{"input_tokens":950,"output_tokens":355,"total_tokens":1305}}
794
795data: {"event":"message","content":" sản","usage_metadata":{"input_tokens":950,"output_tokens":356,"total_tokens":1306}}
796
797data: {"event":"message","content":" phẩm","usage_metadata":{"input_tokens":950,"output_tokens":357,"total_tokens":1307}}
798
799data: {"event":"message","content":" cá»§a","usage_metadata":{"input_tokens":950,"output_tokens":358,"total_tokens":1308}}
800
801data: {"event":"message","content":" họ,","usage_metadata":{"input_tokens":950,"output_tokens":359,"total_tokens":1309}}
802
803data: {"event":"message","content":" hướng","usage_metadata":{"input_tokens":950,"output_tokens":360,"total_tokens":1310}}
804
805data: {"event":"message","content":" tới","usage_metadata":{"input_tokens":950,"output_tokens":361,"total_tokens":1311}}
806
807data: {"event":"message","content":" mô","usage_metadata":{"input_tokens":950,"output_tokens":362,"total_tokens":1312}}
808
809data: {"event":"message","content":" hình","usage_metadata":{"input_tokens":950,"output_tokens":363,"total_tokens":1313}}
810
811data: {"event":"message","content":" bán","usage_metadata":{"input_tokens":950,"output_tokens":364,"total_tokens":1314}}
812
813data: {"event":"message","content":" kèm","usage_metadata":{"input_tokens":950,"output_tokens":365,"total_tokens":1315}}
814
815data: {"event":"message","content":" hoặc","usage_metadata":{"input_tokens":950,"output_tokens":366,"total_tokens":1316}}
816
817data: {"event":"message","content":" cung","usage_metadata":{"input_tokens":950,"output_tokens":367,"total_tokens":1317}}
818
819data: {"event":"message","content":" cấp","usage_metadata":{"input_tokens":950,"output_tokens":368,"total_tokens":1318}}
820
821data: {"event":"message","content":" như","usage_metadata":{"input_tokens":950,"output_tokens":369,"total_tokens":1319}}
822
823data: {"event":"message","content":" một","usage_metadata":{"input_tokens":950,"output_tokens":370,"total_tokens":1320}}
824
825data: {"event":"message","content":" phần","usage_metadata":{"input_tokens":950,"output_tokens":371,"total_tokens":1321}}
826
827data: {"event":"message","content":" cá»§a","usage_metadata":{"input_tokens":950,"output_tokens":372,"total_tokens":1322}}
828
829data: {"event":"message","content":" giải","usage_metadata":{"input_tokens":950,"output_tokens":373,"total_tokens":1323}}
830
831data: {"event":"message","content":" pháp","usage_metadata":{"input_tokens":950,"output_tokens":374,"total_tokens":1324}}
832
833data: {"event":"message","content":" dành","usage_metadata":{"input_tokens":950,"output_tokens":375,"total_tokens":1325}}
834
835data: {"event":"message","content":" cho","usage_metadata":{"input_tokens":950,"output_tokens":376,"total_tokens":1326}}
836
837data: {"event":"message","content":" khách","usage_metadata":{"input_tokens":950,"output_tokens":377,"total_tokens":1327}}
838
839data: {"event":"message","content":" hàng","usage_metadata":{"input_tokens":950,"output_tokens":378,"total_tokens":1328}}
840
841data: {"event":"message","content":" cuối.","usage_metadata":{"input_tokens":950,"output_tokens":379,"total_tokens":1329}}
842
843data: {"event":"message","content":"\\n\\n","usage_metadata":{"input_tokens":950,"output_tokens":380,"total_tokens":1330}}
844
845data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":381,"total_tokens":1331}}
846
847data: {"event":"message","content":" cũng","usage_metadata":{"input_tokens":950,"output_tokens":382,"total_tokens":1332}}
848
849data: {"event":"message","content":" được","usage_metadata":{"input_tokens":950,"output_tokens":383,"total_tokens":1333}}
850
851data: {"event":"message","content":" ứng","usage_metadata":{"input_tokens":950,"output_tokens":384,"total_tokens":1334}}
852
853data: {"event":"message","content":" dụng","usage_metadata":{"input_tokens":950,"output_tokens":385,"total_tokens":1335}}
854
855data: {"event":"message","content":" xuyên","usage_metadata":{"input_tokens":950,"output_tokens":386,"total_tokens":1336}}
856
857data: {"event":"message","content":" suốt","usage_metadata":{"input_tokens":950,"output_tokens":387,"total_tokens":1337}}
858
859data: {"event":"message","content":" trong","usage_metadata":{"input_tokens":950,"output_tokens":388,"total_tokens":1338}}
860
861data: {"event":"message","content":" hoạt","usage_metadata":{"input_tokens":950,"output_tokens":389,"total_tokens":1339}}
862
863data: {"event":"message","content":" động","usage_metadata":{"input_tokens":950,"output_tokens":390,"total_tokens":1340}}
864
865data: {"event":"message","content":" nội","usage_metadata":{"input_tokens":950,"output_tokens":391,"total_tokens":1341}}
866
867data: {"event":"message","content":" bộ","usage_metadata":{"input_tokens":950,"output_tokens":392,"total_tokens":1342}}
868
869data: {"event":"message","content":" cá»§a","usage_metadata":{"input_tokens":950,"output_tokens":393,"total_tokens":1343}}
870
871data: {"event":"message","content":" React","usage_metadata":{"input_tokens":950,"output_tokens":394,"total_tokens":1344}}
872
873data: {"event":"message","content":" Plus,","usage_metadata":{"input_tokens":950,"output_tokens":395,"total_tokens":1345}}
874
875data: {"event":"message","content":" từ","usage_metadata":{"input_tokens":950,"output_tokens":396,"total_tokens":1346}}
876
877data: {"event":"message","content":" phát","usage_metadata":{"input_tokens":950,"output_tokens":397,"total_tokens":1347}}
878
879data: {"event":"message","content":" triển","usage_metadata":{"input_tokens":950,"output_tokens":398,"total_tokens":1348}}
880
881data: {"event":"message","content":" sản","usage_metadata":{"input_tokens":950,"output_tokens":399,"total_tokens":1349}}
882
883data: {"event":"message","content":" phẩm,","usage_metadata":{"input_tokens":950,"output_tokens":400,"total_tokens":1350}
883}
884
885data: {"event":"message","content":" vận","usage_metadata":{"input_tokens":950,"output_tokens":401,"total_tokens":1351}}
886
887data: {"event":"message","content":" hành","usage_metadata":{"input_tokens":950,"output_tokens":402,"total_tokens":1352}}
888
889data: {"event":"message","content":" đến","usage_metadata":{"input_tokens":950,"output_tokens":403,"total_tokens":1353}}
890
891data: {"event":"message","content":" kinh","usage_metadata":{"input_tokens":950,"output_tokens":404,"total_tokens":1354}}
892
893data: {"event":"message","content":" doanh.","usage_metadata":{"input_tokens":950,"output_tokens":405,"total_tokens":1355}}
894
895data: {"event":"message","content":" Đội","usage_metadata":{"input_tokens":950,"output_tokens":406,"total_tokens":1356}}
896
897data: {"event":"message","content":" ngũ","usage_metadata":{"input_tokens":950,"output_tokens":407,"total_tokens":1357}}
898
899data: {"event":"message","content":" kỹ","usage_metadata":{"input_tokens":950,"output_tokens":408,"total_tokens":1358}}
900
901data: {"event":"message","content":" thuật","usage_metadata":{"input_tokens":950,"output_tokens":409,"total_tokens":1359}}
902
903data: {"event":"message","content":" sá»­","usage_metadata":{"input_tokens":950,"output_tokens":410,"total_tokens":1360}}
904
905data: {"event":"message","content":" dụng","usage_metadata":{"input_tokens":950,"output_tokens":411,"total_tokens":1361}}
906
907data: {"event":"message","content":" **BrSE.ai**","usage_metadata":{"input_tokens":950,"output_tokens":412,"total_tokens":1362}}
908
909data: {"event":"message","content":" trong","usage_metadata":{"input_tokens":950,"output_tokens":413,"total_tokens":1363}}
910
911data: {"event":"message","content":" công","usage_metadata":{"input_tokens":950,"output_tokens":414,"total_tokens":1364}}
912
913data: {"event":"message","content":" việc","usage_metadata":{"input_tokens":950,"output_tokens":415,"total_tokens":1365}}
914
915data: {"event":"message","content":" hằng","usage_metadata":{"input_tokens":950,"output_tokens":416,"total_tokens":1366}}
916
917data: {"event":"message","content":" ngày,","usage_metadata":{"input_tokens":950,"output_tokens":417,"total_tokens":1367}}
918
919data: {"event":"message","content":" trong","usage_metadata":{"input_tokens":950,"output_tokens":418,"total_tokens":1368}}
920
921data: {"event":"message","content":" khi","usage_metadata":{"input_tokens":950,"output_tokens":419,"total_tokens":1369}}
922
923data: {"event":"message","content":" các","usage_metadata":{"input_tokens":950,"output_tokens":420,"total_tokens":1370}}
924
925data: {"event":"message","content":" bộ","usage_metadata":{"input_tokens":950,"output_tokens":421,"total_tokens":1371}}
926
927data: {"event":"message","content":" phận","usage_metadata":{"input_tokens":950,"output_tokens":422,"total_tokens":1372}}
928
929data: {"event":"message","content":" vận","usage_metadata":{"input_tokens":950,"output_tokens":423,"total_tokens":1373}}
930
931data: {"event":"message","content":" hành","usage_metadata":{"input_tokens":950,"output_tokens":424,"total_tokens":1374}}
932
933data: {"event":"message","content":" và","usage_metadata":{"input_tokens":950,"output_tokens":425,"total_tokens":1375}}
934
935data: {"event":"message","content":" kinh","usage_metadata":{"input_tokens":950,"output_tokens":426,"total_tokens":1376}}
936
937data: {"event":"message","content":" doanh","usage_metadata":{"input_tokens":950,"output_tokens":427,"total_tokens":1377}}
938
939data: {"event":"message","content":" ứng","usage_metadata":{"input_tokens":950,"output_tokens":428,"total_tokens":1378}}
940
941data: {"event":"message","content":" dụng","usage_metadata":{"input_tokens":950,"output_tokens":429,"total_tokens":1379}}
942
943data: {"event":"message","content":" **AI","usage_metadata":{"input_tokens":950,"output_tokens":430,"total_tokens":1380}}
944
945data: {"event":"message","content":" Hodai,","usage_metadata":{"input_tokens":950,"output_tokens":431,"total_tokens":1381}}
946
947data: {"event":"message","content":" Customer","usage_metadata":{"input_tokens":950,"output_tokens":432,"total_tokens":1382}}
948
949data: {"event":"message","content":" Intelligence**","usage_metadata":{"input_tokens":950,"output_tokens":433,"total_tokens":1383}}
950
951data: {"event":"message","content":" cùng","usage_metadata":{"input_tokens":950,"output_tokens":434,"total_tokens":1384}}
952
953data: {"event":"message","content":" nhiều","usage_metadata":{"input_tokens":950,"output_tokens":435,"total_tokens":1385}}
954
955data: {"event":"message","content":" công","usage_metadata":{"input_tokens":950,"output_tokens":436,"total_tokens":1386}}
956
957data: {"event":"message","content":" cụ","usage_metadata":{"input_tokens":950,"output_tokens":437,"total_tokens":1387}}
958
959data: {"event":"message","content":" AI","usage_metadata":{"input_tokens":950,"output_tokens":438,"total_tokens":1388}}
960
961data: {"event":"message","content":" nội","usage_metadata":{"input_tokens":950,"output_tokens":439,"total_tokens":1389}}
962
963data: {"event":"message","content":" bộ","usage_metadata":{"input_tokens":950,"output_tokens":440,"total_tokens":1390}}
964
965data: {"event":"message","content":" khác.","usage_metadata":{"input_tokens":950,"output_tokens":441,"total_tokens":1391}}
966
967data: {"event":"message","content":" Nhờ","usage_metadata":{"input_tokens":950,"output_tokens":442,"total_tokens":1392}}
968
969data: {"event":"message","content":" đó,","usage_metadata":{"input_tokens":950,"output_tokens":443,"total_tokens":1393}}
970
971data: {"event":"message","content":" các","usage_metadata":{"input_tokens":950,"output_tokens":444,"total_tokens":1394}}
972
973data: {"event":"message","content":" sản","usage_metadata":{"input_tokens":950,"output_tokens":445,"total_tokens":1395}}
974
975data: {"event":"message","content":" phẩm","usage_metadata":{"input_tokens":950,"output_tokens":446,"total_tokens":1396}}
976
977data: {"event":"message","content":" và","usage_metadata":{"input_tokens":950,"output_tokens":447,"total_tokens":1397}}
978
979data: {"event":"message","content":" công","usage_metadata":{"input_tokens":950,"output_tokens":448,"total_tokens":1398}}
980
981data: {"event":"message","content":" nghệ","usage_metadata":{"input_tokens":950,"output_tokens":449,"total_tokens":1399}}
982
983data: {"event":"message","content":" AI","usage_metadata":{"input_tokens":950,"output_tokens":450,"total_tokens":1400}}
984
985data: {"event":"message","content":" được","usage_metadata":{"input_tokens":950,"output_tokens":451,"total_tokens":1401}}
986
987data: {"event":"message","content":" kiểm","usage_metadata":{"input_tokens":950,"output_tokens":452,"total_tokens":1402}}
988
989data: {"event":"message","content":" chứng,","usage_metadata":{"input_tokens":950,"output_tokens":453,"total_tokens":1403}}
990
991data: {"event":"message","content":" cải","usage_metadata":{"input_tokens":950,"output_tokens":454,"total_tokens":1404}}
992
993data: {"event":"message","content":" tiến","usage_metadata":{"input_tokens":950,"output_tokens":455,"total_tokens":1405}}
994
995data: {"event":"message","content":" và","usage_metadata":{"input_tokens":950,"output_tokens":456,"total_tokens":1406}}
996
997data: {"event":"message","content":" hoàn","usage_metadata":{"input_tokens":950,"output_tokens":457,"total_tokens":1407}}
998
999data: {"event":"message","content":" thiện","usage_metadata":{"input_tokens":950,"output_tokens":458,"total_tokens":1408}}
1000
1001data: {"event":"message","content":" ngay","usage_metadata":{"input_tokens":950,"output_tokens":459,"total_tokens":1409}}
1002
1003data: {"event":"message","content":" trong","usage_metadata":{"input_tokens":950,"output_tokens":460,"total_tokens":1410}}
1004
1005data: {"event":"message","content":" môi","usage_metadata":{"input_tokens":950,"output_tokens":461,"total_tokens":1411}}
1006
1007data: {"event":"message","content":" trường","usage_metadata":{"input_tokens":950,"output_tokens":462,"total_tokens":1412}}
1008
1009data: {"event":"message","content":" vận","usage_metadata":{"input_tokens":950,"output_tokens":463,"total_tokens":1413}}
1010
1011data: {"event":"message","content":" hành","usage_metadata":{"input_tokens":950,"output_tokens":464,"total_tokens":1414}}
1012
1013data: {"event":"message","content":" thá»±c","usage_metadata":{"input_tokens":950,"output_tokens":465,"total_tokens":1415}}
1014
1015data: {"event":"message","content":" tế","usage_metadata":{"input_tokens":950,"output_tokens":466,"total_tokens":1416}}
1016
1017data: {"event":"message","content":" cá»§a","usage_metadata":{"input_tokens":950,"output_tokens":467,"total_tokens":1417}}
1018
1019data: {"event":"message","content":" công","usage_metadata":{"input_tokens":950,"output_tokens":468,"total_tokens":1418}}
1020
1021data: {"event":"message","content":" ty","usage_metadata":{"input_tokens":950,"output_tokens":469,"total_tokens":1419}}
1022
1023data: {"event":"message","content":" trước","usage_metadata":{"input_tokens":950,"output_tokens":470,"total_tokens":1420}}
1024
1025data: {"event":"message","content":" khi","usage_metadata":{"input_tokens":950,"output_tokens":471,"total_tokens":1421}}
1026
1027data: {"event":"message","content":" đưa","usage_metadata":{"input_tokens":950,"output_tokens":472,"total_tokens":1422}}
1028
1029data: {"event":"message","content":" ra","usage_metadata":{"input_tokens":950,"output_tokens":473,"total_tokens":1423}}
1030
1031data: {"event":"message","content":" thị","usage_metadata":{"input_tokens":950,"output_tokens":474,"total_tokens":1424}}
1032
1033data: {"event":"message","content":" trường.","usage_metadata":{"input_tokens":950,"output_tokens":475,"total_tokens":1425}
1033}
1034
1035data: {"event":"message","content":"\\n\\n","usage_metadata":{"input_tokens":950,"output_tokens":476,"total_tokens":1426}}
1036
1037data: {"event":"message","content":"Khách","usage_metadata":{"input_tokens":950,"output_tokens":477,"total_tokens":1427}}
1038
1039data: {"event":"message","content":" hàng","usage_metadata":{"input_tokens":950,"output_tokens":478,"total_tokens":1428}}
1040
1041data: {"event":"message","content":" hiện","usage_metadata":{"input_tokens":950,"output_tokens":479,"total_tokens":1429}}
1042
1043data: {"event":"message","content":" tại","usage_metadata":{"input_tokens":950,"output_tokens":480,"total_tokens":1430}}
1044
1045data: {"event":"message","content":" cá»§a","usage_metadata":{"input_tokens":950,"output_tokens":481,"total_tokens":1431}}
1046
1047data: {"event":"message","content":" React","usage_metadata":{"input_tokens":950,"output_tokens":482,"total_tokens":1432}}
1048
1049data: {"event":"message","content":" Plus","usage_metadata":{"input_tokens":950,"output_tokens":483,"total_tokens":1433}}
1050
1051data: {"event":"message","content":" bao","usage_metadata":{"input_tokens":950,"output_tokens":484,"total_tokens":1434}}
1052
1053data: {"event":"message","content":" gồm","usage_metadata":{"input_tokens":950,"output_tokens":485,"total_tokens":1435}}
1054
1055data: {"event":"message","content":" các","usage_metadata":{"input_tokens":950,"output_tokens":486,"total_tokens":1436}}
1056
1057data: {"event":"message","content":" tập","usage_metadata":{"input_tokens":950,"output_tokens":487,"total_tokens":1437}}
1058
1059data: {"event":"message","content":" đoàn","usage_metadata":{"input_tokens":950,"output_tokens":488,"total_tokens":1438}}
1060
1061data: {"event":"message","content":" lớn","usage_metadata":{"input_tokens":950,"output_tokens":489,"total_tokens":1439}}
1062
1063data: {"event":"message","content":" và","usage_metadata":{"input_tokens":950,"output_tokens":490,"total_tokens":1440}}
1064
1065data: {"event":"message","content":" tổ","usage_metadata":{"input_tokens":950,"output_tokens":491,"total_tokens":1441}}
1066
1067data: {"event":"message","content":" chức","usage_metadata":{"input_tokens":950,"output_tokens":492,"total_tokens":1442}}
1068
1069data: {"event":"message","content":" tài","usage_metadata":{"input_tokens":950,"output_tokens":493,"total_tokens":1443}}
1070
1071data: {"event":"message","content":" chính","usage_metadata":{"input_tokens":950,"output_tokens":494,"total_tokens":1444}}
1072
1073data: {"event":"message","content":" hàng","usage_metadata":{"input_tokens":950,"output_tokens":495,"total_tokens":1445}}
1074
1075data: {"event":"message","content":" đầu","usage_metadata":{"input_tokens":950,"output_tokens":496,"total_tokens":1446}}
1076
1077data: {"event":"message","content":" tại","usage_metadata":{"input_tokens":950,"output_tokens":497,"total_tokens":1447}}
1078
1079data: {"event":"message","content":" Nhật","usage_metadata":{"input_tokens":950,"output_tokens":498,"total_tokens":1448}}
1080
1081data: {"event":"message","content":" Bản,","usage_metadata":{"input_tokens":950,"output_tokens":499,"total_tokens":1449}}
1082
1083data: {"event":"message","content":" nơi","usage_metadata":{"input_tokens":950,"output_tokens":500,"total_tokens":1450}}
1084
1085data: {"event":"message","content":" có","usage_metadata":{"input_tokens":950,"output_tokens":501,"total_tokens":1451}}
1086
1087data: {"event":"message","content":" yêu","usage_metadata":{"input_tokens":950,"output_tokens":502,"total_tokens":1452}}
1088
1089data: {"event":"message","content":" cầu","usage_metadata":{"input_tokens":950,"output_tokens":503,"total_tokens":1453}}
1090
1091data: {"event":"message","content":" đặc","usage_metadata":{"input_tokens":950,"output_tokens":504,"total_tokens":1454}}
1092
1093data: {"event":"message","content":" biệt","usage_metadata":{"input_tokens":950,"output_tokens":505,"total_tokens":1455}}
1094
1095data: {"event":"message","content":" cao","usage_metadata":{"input_tokens":950,"output_tokens":506,"total_tokens":1456}}
1096
1097data: {"event":"message","content":" về","usage_metadata":{"input_tokens":950,"output_tokens":507,"total_tokens":1457}}
1098
1099data: {"event":"message","content":" chất","usage_metadata":{"input_tokens":950,"output_tokens":508,"total_tokens":1458}}
1100
1101data: {"event":"message","content":" lượng,","usage_metadata":{"input_tokens":950,"output_tokens":509,"total_tokens":1459}}
1102
1103data: {"event":"message","content":" bảo","usage_metadata":{"input_tokens":950,"output_tokens":510,"total_tokens":1460}}
1104
1105data: {"event":"message","content":" mật","usage_metadata":{"input_tokens":950,"output_tokens":511,"total_tokens":1461}}
1106
1107data: {"event":"message","content":" và","usage_metadata":{"input_tokens":950,"output_tokens":512,"total_tokens":1462}}
1108
1109data: {"event":"message","content":" quy","usage_metadata":{"input_tokens":950,"output_tokens":513,"total_tokens":1463}}
1110
1111data: {"event":"message","content":" trình.","usage_metadata":{"input_tokens":950,"output_tokens":514,"total_tokens":1464}}
1112
1113data: {"event":"message","content":" Công","usage_metadata":{"input_tokens":950,"output_tokens":515,"total_tokens":1465}}
1114
1115data: {"event":"message","content":" ty","usage_metadata":{"input_tokens":950,"output_tokens":516,"total_tokens":1466}}
1116
1117data: {"event":"message","content":" vận","usage_metadata":{"input_tokens":950,"output_tokens":517,"total_tokens":1467}}
1118
1119data: {"event":"message","content":" hành","usage_metadata":{"input_tokens":950,"output_tokens":518,"total_tokens":1468}}
1120
1121data: {"event":"message","content":" theo","usage_metadata":{"input_tokens":950,"output_tokens":519,"total_tokens":1469}}
1122
1123data: {"event":"message","content":" **Japanese","usage_metadata":{"input_tokens":950,"output_tokens":520,"total_tokens":1470}}
1124
1125data: {"event":"message","content":" Business","usage_metadata":{"input_tokens":950,"output_tokens":521,"total_tokens":1471}}
1126
1127data: {"event":"message","content":" Style**,","usage_metadata":{"input_tokens":950,"output_tokens":522,"total_tokens":1472}}
1128
1129data: {"event":"message","content":" đã","usage_metadata":{"input_tokens":950,"output_tokens":523,"total_tokens":1473}}
1130
1131data: {"event":"message","content":" đạt","usage_metadata":{"input_tokens":950,"output_tokens":524,"total_tokens":1474}}
1132
1133data: {"event":"message","content":" chứng","usage_metadata":{"input_tokens":950,"output_tokens":525,"total_tokens":1475}}
1134
1135data: {"event":"message","content":" nhận","usage_metadata":{"input_tokens":950,"output_tokens":526,"total_tokens":1476}}
1136
1137data: {"event":"message","content":" **ISO/IEC","usage_metadata":{"input_tokens":950,"output_tokens":527,"total_tokens":1477}}
1138
1139data: {"event":"message","content":" 27001**","usage_metadata":{"input_tokens":950,"output_tokens":528,"total_tokens":1478}}
1140
1141data: {"event":"message","content":" và","usage_metadata":{"input_tokens":950,"output_tokens":529,"total_tokens":1479}}
1142
1143data: {"event":"message","content":" **ISO","usage_metadata":{"input_tokens":950,"output_tokens":530,"total_tokens":1480}}
1144
1145data: {"event":"message","content":" 9001**","usage_metadata":{"input_tokens":950,"output_tokens":531,"total_tokens":1481}}
1146
1147data: {"event":"message","content":" từ","usage_metadata":{"input_tokens":950,"output_tokens":532,"total_tokens":1482}}
1148
1149data: {"event":"message","content":" năm","usage_metadata":{"input_tokens":950,"output_tokens":533,"total_tokens":1483}}
1150
1151data: {"event":"message","content":" 2022,","usage_metadata":{"input_tokens":950,"output_tokens":534,"total_tokens":1484}}
1152
1153data: {"event":"message","content":" đồng","usage_metadata":{"input_tokens":950,"output_tokens":535,"total_tokens":1485}}
1154
1155data: {"event":"message","content":" thời","usage_metadata":{"input_tokens":950,"output_tokens":536,"total_tokens":1486}}
1156
1157data: {"event":"message","content":" đang","usage_metadata":{"input_tokens":950,"output_tokens":537,"total_tokens":1487}}
1158
1159data: {"event":"message","content":" triển","usage_metadata":{"input_tokens":950,"output_tokens":538,"total_tokens":1488}}
1160
1161data: {"event":"message","content":" khai","usage_metadata":{"input_tokens":950,"output_tokens":539,"total_tokens":1489}}
1162
1163data: {"event":"message","content":" chứng","usage_metadata":{"input_tokens":950,"output_tokens":540,"total_tokens":1490}}
1164
1165data: {"event":"message","content":" nhận","usage_metadata":{"input_tokens":950,"output_tokens":541,"total_tokens":1491}}
1166
1167data: {"event":"message","content":" **ISO/IEC","usage_metadata":{"input_tokens":950,"output_tokens":542,"total_tokens":1492}}
1168
1169data: {"event":"message","content":" 42001**","usage_metadata":{"input_tokens":950,"output_tokens":543,"total_tokens":1493}}
1170
1171data: {"event":"message","content":" dành","usage_metadata":{"input_tokens":950,"output_tokens":544,"total_tokens":1494}}
1172
1173data: {"event":"message","content":" riêng","usage_metadata":{"input_tokens":950,"output_tokens":545,"total_tokens":1495}}
1174
1175data: {"event":"message","content":" cho","usage_metadata":{"input_tokens":950,"output_tokens":546,"total_tokens":1496}}
1176
1177data: {"event":"message","content":" hệ","usage_metadata":{"input_tokens":950,"output_tokens":547,"total_tokens":1497}}
1178
1179data: {"event":"message","content":" thống","usage_metadata":{"input_tokens":950,"output_tokens":548,"total_tokens":1498}}
1180
1181data: {"event":"message","content":" quản","usage_metadata":{"input_tokens":950,"output_tokens":549,"total_tokens":1499}}
1182
1183data: {"event":"message","content":" lý","usage_metadata":{"input_tokens":950,"output_tokens":550,"total_tokens":1500}}
1184
1185data: {"event":"message","content":" AI.","usage_metadata":{"input_tokens":950,"output_tokens":551,"total_tokens":1501}}
1186
1187data: {"event":"complete","content":"<|stop|>","usage_metadata":{"input_tokens":950,"output_tokens":552,"total_tokens":1502}}
1188
1189`,"React Plus ứng dụng AI vào phát triển như thế nào?":`data: {"event": "start", "content": "<|start|>", "usage_metadata": {"input_tokens": 0, "output_tokens": 0, "total_tokens": 0}}
1190
1191data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 0, "output_tokens": 0, "total_tokens": 0}}
1192
1193data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1194
1195data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1196
1197data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1198
1199data: {"event": "message", "content": "React", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1200
1201data: {"event": "message", "content": "Plus", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1202
1203data: {"event": "message", "content": " là", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1204
1205data: {"event": "message", "content": " công", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1206
1207data: {"event": "message", "content": " ty", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1208
1209data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1210
1211data: {"event": "message", "content": "-native", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1212
1213data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1214
1215data: {"event": "message", "content": " ứng", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1216
1217data: {"event": "message", "content": " dụng", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1218
1219data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1220
1221data: {"event": "message", "content": " làm", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1222
1223data: {"event": "message", "content": " c", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1224
1225data: {"event": "message", "content": "ốt", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1226
1227data: {"event": "message", "content": " lõ", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1228
1229data: {"event": "message", "content": "i", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1230
1231data: {"event": "message", "content": " trong", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1232
1233data: {"event": "message", "content": " mọi", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1234
1235data: {"event": "message", "content": " quy", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1236
1237data: {"event": "message", "content": " trình", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1238
1239data: {"event": "message", "content": " phát", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1240
1241data: {"event": "message", "content": " triển", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1242
1243data: {"event": "message", "content": " và", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1244
1245data: {"event": "message", "content": " vận", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1246
1247data: {"event": "message", "content": " hành", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1248
1249data: {"event": "message", "content": ".", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1250
1251data: {"event": "message", "content": " Công", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1252
1253data: {"event": "message", "content": " ty", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1254
1255data: {"event": "message", "content": " tập", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1256
1257data: {"event": "message", "content": " trung", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1258
1259data: {"event": "message", "content": " vào", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1260
1261data: {"event": "message", "content": " lĩnh", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1262
1263data: {"event": "message", "content": " vá»±c", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1264
1265data: {"event": "message", "content": " Fin", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1266
1267data: {"event": "message", "content": "tech", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1268
1269data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1270
1271data: {"event": "message", "content": " cung", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1272
1273data: {"event": "message", "content": " cấp", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1274
1275data: {"event": "message", "content": " các", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1276
1277data: {"event": "message", "content": " giải", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1278
1279data: {"event": "message", "content": " pháp", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1280
1281data: {"event": "message", "content": " như", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1282
1283data: {"event": "message", "content": " hệ", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1284
1285data: {"event": "message", "content": " thống", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1286
1287data: {"event": "message", "content": " scoring", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1288
1289data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1290
1291data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1292
1293data: {"event": "message", "content": " agent", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1294
1295data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1296
1297data: {"event": "message", "content": " workflow", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1298
1299data: {"event": "message", "content": " tá»±", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1300
1301data: {"event": "message", "content": " động", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1302
1303data: {"event": "message", "content": " hóa", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1304
1305data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1306
1307data: {"event": "message", "content": " dashboard", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1308
1309data: {"event": "message", "content": " dá»±", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1310
1311data: {"event": "message", "content": " báo", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1312
1313data: {"event": "message", "content": " và", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1314
1315data: {"event": "message", "content": " nh", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1316
1317data: {"event": "message", "content": "úng", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1318
1319data: {"event": "message", "content": " trí", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1320
1321data: {"event": "message", "content": " tu", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1322
1323data: {"event": "message", "content": "ệ", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1324
1325data: {"event": "message", "content": " nhân", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1326
1327data: {"event": "message", "content": " tạo", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1328
1329data: {"event": "message", "content": " vào", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1330
1331data: {"event": "message", "content": " sản", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1332
1333data: {"event": "message", "content": " phẩm", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1334
1335data: {"event": "message", "content": " thá»±c", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1336
1337data: {"event": "message", "content": " tế", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1338
1339data: {"event": "message", "content": ".\\n\\n", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1340
1341data: {"event": "message", "content": "React", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1342
1343data: {"event": "message", "content": "Plus", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1344
1345data: {"event": "message", "content": " giúp", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1346
1347data: {"event": "message", "content": " doanh", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1348
1349data: {"event": "message", "content": " nghiệp", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1350
1351data: {"event": "message", "content": " xác", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1352
1353data: {"event": "message", "content": " định", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1354
1355data: {"event": "message", "content": " đúng", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1356
1357data: {"event": "message", "content": " điểm", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1358
1359data: {"event": "message", "content": " cần", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1360
1361data: {"event": "message", "content": " chuyển", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1362
1363data: {"event": "message", "content": " đổi", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1364
1365data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1366
1367data: {"event": "message", "content": " (", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1368
1369data: {"event": "message", "content": "AX", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1370
1371data: {"event": "message", "content": "),", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1372
1373data: {"event": "message", "content": " ưu", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1374
1375data: {"event": "message", "content": " tiên", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1376
1377data: {"event": "message", "content": " các", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1378
1379data: {"event": "message", "content": " bài", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1380
1381data: {"event": "message", "content": " toán", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1382
1383data: {"event": "message", "content": " có", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1384
1385data: {"event": "message", "content": " hiệu", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1386
1387data: {"event": "message", "content": " quả", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1388
1389data: {"event": "message", "content": " đầu", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1390
1391data: {"event": "message", "content": " tư", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1392
1393data: {"event": "message", "content": " thá»±c", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1394
1395data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1396
1397data: {"event": "message", "content": " xây", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1398
1399data: {"event": "message", "content": " dá»±ng", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1400
1401data: {"event": "message", "content": " sản", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1402
1403data: {"event": "message", "content": " phẩm", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1404
1405data: {"event": "message", "content": " và", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1406
1407data: {"event": "message", "content": " hệ", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1408
1409data: {"event": "message", "content": " thống", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1410
1411data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1412
1413data: {"event": "message", "content": " vận", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1414
1415data: {"event": "message", "content": " hành", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1416
1417data: {"event": "message", "content": " thá»±c", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1418
1419data: {"event": "message", "content": " tế", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1420
1421data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1422
1423data: {"event": "message", "content": " đồng", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1424
1425data: {"event": "message", "content": " thời", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1426
1427data: {"event": "message", "content": " triển", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1428
1429data: {"event": "message", "content": " khai", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1430
1431data: {"event": "message", "content": " phù", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1432
1433data: {"event": "message", "content": " hợp", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1434
1435data: {"event": "message", "content": " với", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1436
1437data: {"event": "message", "content": " đặc", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1438
1439data: {"event": "message", "content": " th", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1440
1441data: {"event": "message", "content": "ù", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1442
1443data: {"event": "message", "content": " doanh", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1444
1445data: {"event": "message", "content": " nghiệp", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1446
1447data: {"event": "message", "content": " Nhật", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1448
1449data: {"event": "message", "content": " B", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1450
1451data: {"event": "message", "content": "ản", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1452
1453data: {"event": "message", "content": ".", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1454
1455data: {"event": "message", "content": " Đ", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1456
1457data: {"event": "message", "content": "ội", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1458
1459data: {"event": "message", "content": " ng", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1460
1461data: {"event": "message", "content": "Å©", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1462
1463data: {"event": "message", "content": " hơn", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1464
1465data: {"event": "message", "content": " ", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1466
1467data: {"event": "message", "content": "50", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1468
1469data: {"event": "message", "content": " chuyên", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1470
1471data: {"event": "message", "content": " gia", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1472
1473data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1474
1475data: {"event": "message", "content": " và", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1476
1477data: {"event": "message", "content": " hàng", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1478
1479data: {"event": "message", "content": " tr", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1480
1481data: {"event": "message", "content": "ăm", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1482
1483data: {"event": "message", "content": " kỹ", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1484
1485data: {"event": "message", "content": " s", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1486
1487data: {"event": "message", "content": "ư", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1488
1489data: {"event": "message", "content": " già", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1490
1491data: {"event": "message", "content": "u", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1492
1493data: {"event": "message", "content": " kinh", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1494
1495data: {"event": "message", "content": " nghiệm", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1496
1497data: {"event": "message", "content": " giúp", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1498
1499data: {"event": "message", "content": " r", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1500
1501data: {"event": "message", "content": "út", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1502
1503data: {"event": "message", "content": " ng", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1504
1505data: {"event": "message", "content": "ắn", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1506
1507data: {"event": "message", "content": " thời", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1508
1509data: {"event": "message", "content": " gian", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1510
1511data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1512
1513data: {"event": "message", "content": " tối", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1514
1515data: {"event": "message", "content": " ưu", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1516
1517data: {"event": "message", "content": " chi", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1518
1519data: {"event": "message", "content": " phí", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1520
1521data: {"event": "message", "content": " và", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1522
1523data: {"event": "message", "content": " nâng", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1524
1525data: {"event": "message", "content": " cao", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1526
1527data: {"event": "message", "content": " năng", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1528
1529data: {"event": "message", "content": " suất", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1530
1531data: {"event": "message", "content": " cho", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1532
1533data: {"event": "message", "content": " khách", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1534
1535data: {"event": "message", "content": " hàng", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1536
1537data: {"event": "message", "content": ".\\n\\n", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1538
1539data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1540
1541data: {"event": "message", "content": " tại", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1542
1543data: {"event": "message", "content": " React", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1544
1545data: {"event": "message", "content": "Plus", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1546
1547data: {"event": "message", "content": " không", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1548
1549data: {"event": "message", "content": " chỉ", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1550
1551data: {"event": "message", "content": " là", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1552
1553data: {"event": "message", "content": " công", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1554
1555data: {"event": "message", "content": " cụ", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1556
1557data: {"event": "message", "content": " hỗ", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1558
1559data: {"event": "message", "content": " trợ", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1560
1561data: {"event": "message", "content": " mà", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1562
1563data: {"event": "message", "content": " là", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1564
1565data: {"event": "message", "content": " nền", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1566
1567data: {"event": "message", "content": " t", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1568
1569data: {"event": "message", "content": "ảng", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1570
1571data: {"event": "message", "content": " để", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1572
1573data: {"event": "message", "content": " tăng", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1574
1575data: {"event": "message", "content": " tốc", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1576
1577data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1578
1579data: {"event": "message", "content": " nâng", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1580
1581data: {"event": "message", "content": " cao", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1582
1583data: {"event": "message", "content": " hiệu", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1584
1585data: {"event": "message", "content": " quả", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1586
1587data: {"event": "message", "content": " cho", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1588
1589data: {"event": "message", "content": " các", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1590
1591data: {"event": "message", "content": " hệ", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1592
1593data: {"event": "message", "content": " thống", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1594
1595data: {"event": "message", "content": " Fin", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1596
1597data: {"event": "message", "content": "tech", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1598
1599data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1600
1601data: {"event": "message", "content": " Logistics", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1602
1603data: {"event": "message", "content": " và", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1604
1605data: {"event": "message", "content": " sản", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1606
1607data: {"event": "message", "content": " phẩm", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1608
1609data: {"event": "message", "content": " số", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1610
1611data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1612
1613data: {"event": "message", "content": " giúp", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1614
1615data: {"event": "message", "content": " doanh", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1616
1617data: {"event": "message", "content": " nghiệp", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1618
1619data: {"event": "message", "content": " vận", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1620
1621data: {"event": "message", "content": " hành", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1622
1623data: {"event": "message", "content": " thông", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1624
1625data: {"event": "message", "content": " minh", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1626
1627data: {"event": "message", "content": " hơn", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1628
1629data: {"event": "message", "content": " trong", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1630
1631data: {"event": "message", "content": " k", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1632
1633data: {"event": "message", "content": "á»·", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1634
1635data: {"event": "message", "content": " nguyên", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1636
1637data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1638
1639data: {"event": "message", "content": " Transformation", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1640
1641data: {"event": "message", "content": ".", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1642
1643data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 965, "output_tokens": 32, "total_tokens": 997}}
1644
1645data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 6328, "output_tokens": 255, "total_tokens": 6583}}
1646
1647data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 6328, "output_tokens": 255, "total_tokens": 6583}}
1648
1649data: {"event": "complete", "content": "<|stop|>", "usage_metadata": {"input_tokens": 6328, "output_tokens": 255, "total_tokens": 6583}}
1650
1651`,"React Plus có thể cung cấp những giải pháp AI / Fintech nào?":`data: {"event": "start", "content": "<|start|>", "usage_metadata": {"input_tokens": 0, "output_tokens": 0, "total_tokens": 0}}
1652
1653data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 0, "output_tokens": 0, "total_tokens": 0}}
1654
1655data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1656
1657data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1658
1659data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1660
1661data: {"event": "message", "content": "React", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1662
1663data: {"event": "message", "content": " Plus", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1664
1665data: {"event": "message", "content": " cung", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1666
1667data: {"event": "message", "content": " cấp", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1668
1669data: {"event": "message", "content": " nhiều", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1670
1671data: {"event": "message", "content": " giải", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1672
1673data: {"event": "message", "content": " pháp", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1674
1675data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1676
1677data: {"event": "message", "content": " và", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1678
1679data: {"event": "message", "content": " Fin", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1680
1681data: {"event": "message", "content": "tech", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1682
1683data: {"event": "message", "content": " đa", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1684
1685data: {"event": "message", "content": " dạng", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1686
1687data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1688
1689data: {"event": "message", "content": " tập", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1690
1691data: {"event": "message", "content": " trung", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1692
1693data: {"event": "message", "content": " vào", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1694
1695data: {"event": "message", "content": " việc", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1696
1697data: {"event": "message", "content": " ứng", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1698
1699data: {"event": "message", "content": " dụng", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1700
1701data: {"event": "message", "content": " trí", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1702
1703data: {"event": "message", "content": " tu", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1704
1705data: {"event": "message", "content": "ệ", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1706
1707data: {"event": "message", "content": " nhân", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1708
1709data: {"event": "message", "content": " tạo", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1710
1711data: {"event": "message", "content": " để", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1712
1713data: {"event": "message", "content": " nâng", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1714
1715data: {"event": "message", "content": " cao", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1716
1717data: {"event": "message", "content": " hiệu", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1718
1719data: {"event": "message", "content": " quả", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1720
1721data: {"event": "message", "content": " vận", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1722
1723data: {"event": "message", "content": " hành", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1724
1725data: {"event": "message", "content": " cho", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1726
1727data: {"event": "message", "content": " các", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1728
1729data: {"event": "message", "content": " tổ", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1730
1731data: {"event": "message", "content": " chức", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1732
1733data: {"event": "message", "content": " tài", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1734
1735data: {"event": "message", "content": " chính", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1736
1737data: {"event": "message", "content": " và", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1738
1739data: {"event": "message", "content": " doanh", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1740
1741data: {"event": "message", "content": " nghiệp", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1742
1743data: {"event": "message", "content": ".", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1744
1745data: {"event": "message", "content": " Một", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1746
1747data: {"event": "message", "content": " số", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1748
1749data: {"event": "message", "content": " giải", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1750
1751data: {"event": "message", "content": " pháp", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1752
1753data: {"event": "message", "content": " tiêu", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1754
1755data: {"event": "message", "content": " biểu", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1756
1757data: {"event": "message", "content": " bao", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1758
1759data: {"event": "message", "content": " gồm", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1760
1761data: {"event": "message", "content": ":\\n\\n", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1762
1763data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1764
1765data: {"event": "message", "content": " Ph", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1766
1767data: {"event": "message", "content": "át", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1768
1769data: {"event": "message", "content": " hiện", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1770
1771data: {"event": "message", "content": " gian", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1772
1773data: {"event": "message", "content": " l", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1774
1775data: {"event": "message", "content": "ận", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1776
1777data: {"event": "message", "content": " giao", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1778
1779data: {"event": "message", "content": " dịch", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1780
1781data: {"event": "message", "content": " theo", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1782
1783data: {"event": "message", "content": " thời", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1784
1785data: {"event": "message", "content": " gian", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1786
1787data: {"event": "message", "content": " thá»±c", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1788
1789data: {"event": "message", "content": " bằng", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1790
1791data: {"event": "message", "content": " deep", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1792
1793data: {"event": "message", "content": " learning", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1794
1795data: {"event": "message", "content": ".\\n", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1796
1797data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1798
1799data: {"event": "message", "content": " D", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1800
1801data: {"event": "message", "content": "á»±", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1802
1803data: {"event": "message", "content": " báo", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1804
1805data: {"event": "message", "content": " thị", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1806
1807data: {"event": "message", "content": " trường", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1808
1809data: {"event": "message", "content": " chứng", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1810
1811data: {"event": "message", "content": " kho", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1812
1813data: {"event": "message", "content": "án", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1814
1815data: {"event": "message", "content": " kết", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1816
1817data: {"event": "message", "content": " hợp", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1818
1819data: {"event": "message", "content": " phân", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1820
1821data: {"event": "message", "content": " tích", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1822
1823data: {"event": "message", "content": " tin", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1824
1825data: {"event": "message", "content": " tức", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1826
1827data: {"event": "message", "content": " và", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1828
1829data: {"event": "message", "content": " dữ", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1830
1831data: {"event": "message", "content": " liệu", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1832
1833data: {"event": "message", "content": " thời", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1834
1835data: {"event": "message", "content": " gian", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1836
1837data: {"event": "message", "content": " thá»±c", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1838
1839data: {"event": "message", "content": ".\\n", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1840
1841data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1842
1843data: {"event": "message", "content": " Ch", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1844
1845data: {"event": "message", "content": "ấm", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1846
1847data: {"event": "message", "content": " điểm", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1848
1849data: {"event": "message", "content": " tín", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1850
1851data: {"event": "message", "content": " dụng", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1852
1853data: {"event": "message", "content": " thông", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1854
1855data: {"event": "message", "content": " minh", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1856
1857data: {"event": "message", "content": " dá»±", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1858
1859data: {"event": "message", "content": "a", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1860
1861data: {"event": "message", "content": " trên", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1862
1863data: {"event": "message", "content": " dữ", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1864
1865data: {"event": "message", "content": " liệu", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1866
1867data: {"event": "message", "content": " phi", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1868
1869data: {"event": "message", "content": " truyền", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1870
1871data: {"event": "message", "content": " thống", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1872
1873data: {"event": "message", "content": ".\\n", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1874
1875data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1876
1877data: {"event": "message", "content": " Chat", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1878
1879data: {"event": "message", "content": "bot", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1880
1881data: {"event": "message", "content": " tư", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1882
1883data: {"event": "message", "content": " vấn", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1884
1885data: {"event": "message", "content": " tài", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1886
1887data: {"event": "message", "content": " chính", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1888
1889data: {"event": "message", "content": " cá", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1890
1891data: {"event": "message", "content": " nhân", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1892
1893data: {"event": "message", "content": " hóa", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1894
1895data: {"event": "message", "content": ".\\n", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1896
1897data: {"event": "message", "content": "-", "usage_metadata": {"input_token
1897s": 968, "output_tokens": 35, "total_tokens": 1003}}
1898
1899data: {"event": "message", "content": " T", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1900
1901data: {"event": "message", "content": "ối", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1902
1903data: {"event": "message", "content": " ưu", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1904
1905data: {"event": "message", "content": " hóa", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1906
1907data: {"event": "message", "content": " danh", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1908
1909data: {"event": "message", "content": " mục", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1910
1911data: {"event": "message", "content": " đầu", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1912
1913data: {"event": "message", "content": " tư", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1914
1915data: {"event": "message", "content": " bằng", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1916
1917data: {"event": "message", "content": " học", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1918
1919data: {"event": "message", "content": " tăng", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1920
1921data: {"event": "message", "content": " c", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1922
1923data: {"event": "message", "content": "ường", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1924
1925data: {"event": "message", "content": " (", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1926
1927data: {"event": "message", "content": "rein", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1928
1929data: {"event": "message", "content": "forcement", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1930
1931data: {"event": "message", "content": " learning", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1932
1933data: {"event": "message", "content": ").\\n", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1934
1935data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1936
1937data: {"event": "message", "content": " D", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1938
1939data: {"event": "message", "content": "á»±", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1940
1941data: {"event": "message", "content": " báo", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1942
1943data: {"event": "message", "content": " r", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1944
1945data: {"event": "message", "content": "á»§", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1946
1947data: {"event": "message", "content": "i", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1948
1949data: {"event": "message", "content": " ro", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1950
1951data: {"event": "message", "content": " v", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1952
1953data: {"event": "message", "content": "ỡ", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1954
1955data: {"event": "message", "content": " n", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1956
1957data: {"event": "message", "content": "ợ", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1958
1959data: {"event": "message", "content": " trong", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1960
1961data: {"event": "message", "content": " lĩnh", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1962
1963data: {"event": "message", "content": " vá»±c", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1964
1965data: {"event": "message", "content": " P", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1966
1967data: {"event": "message", "content": "2", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1968
1969data: {"event": "message", "content": "P", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1970
1971data: {"event": "message", "content": " lending", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1972
1973data: {"event": "message", "content": ".\\n", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1974
1975data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1976
1977data: {"event": "message", "content": " Ph", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1978
1979data: {"event": "message", "content": "ân", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1980
1981data: {"event": "message", "content": " tích", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1982
1983data: {"event": "message", "content": " báo", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1984
1985data: {"event": "message", "content": " cáo", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1986
1987data: {"event": "message", "content": " tài", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1988
1989data: {"event": "message", "content": " chính", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1990
1991data: {"event": "message", "content": " tá»±", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1992
1993data: {"event": "message", "content": " động", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1994
1995data: {"event": "message", "content": " bằng", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1996
1997data: {"event": "message", "content": " NLP", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
1998
1999data: {"event": "message", "content": ".\\n", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2000
2001data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2002
2003data: {"event": "message", "content": " Đ", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2004
2005data: {"event": "message", "content": "ịnh", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2006
2007data: {"event": "message", "content": " giá", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2008
2009data: {"event": "message", "content": " bất", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2010
2011data: {"event": "message", "content": " động", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2012
2013data: {"event": "message", "content": " sản", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2014
2015data: {"event": "message", "content": " dá»±", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2016
2017data: {"event": "message", "content": "a", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2018
2019data: {"event": "message", "content": " trên", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2020
2021data: {"event": "message", "content": " machine", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2022
2023data: {"event": "message", "content": " learning", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2024
2025data: {"event": "message", "content": ".\\n\\n", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2026
2027data: {"event": "message", "content": "Ngo", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2028
2029data: {"event": "message", "content": "ài", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2030
2031data: {"event": "message", "content": " ra", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2032
2033data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2034
2035data: {"event": "message", "content": " React", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2036
2037data: {"event": "message", "content": " Plus", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2038
2039data: {"event": "message", "content": " còn", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2040
2041data: {"event": "message", "content": " cung", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2042
2043data: {"event": "message", "content": " cấp", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2044
2045data: {"event": "message", "content": " các", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2046
2047data: {"event": "message", "content": " hệ", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2048
2049data: {"event": "message", "content": " thống", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2050
2051data: {"event": "message", "content": " quản", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2052
2053data: {"event": "message", "content": " lý", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2054
2055data: {"event": "message", "content": " tài", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2056
2057data: {"event": "message", "content": " chính", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2058
2059data: {"event": "message", "content": " cá", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2060
2061data: {"event": "message", "content": " nhân", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2062
2063data: {"event": "message", "content": "/do", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2064
2065data: {"event": "message", "content": "anh", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2066
2067data: {"event": "message", "content": " nghiệp", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2068
2069data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2070
2071data: {"event": "message", "content": " dá»±", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2072
2073data: {"event": "message", "content": " báo", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2074
2075data: {"event": "message", "content": " tài", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2076
2077data: {"event": "message", "content": " chính", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2078
2079data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2080
2081data: {"event": "message", "content": " Ins", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2082
2083data: {"event": "message", "content": "ur", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2084
2085data: {"event": "message", "content": "Tech", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2086
2087data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2088
2089data: {"event": "message", "content": " phân", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2090
2091data: {"event": "message", "content": " tích", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2092
2093data: {"event": "message", "content": " dữ", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2094
2095data: {"event": "message", "content": " liệu", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2096
2097data: {"event": "message", "content": " tài", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2098
2099data: {"event": "message", "content": " chính", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2100
2101data: {"event": "message", "content": " lớn", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2102
2103data: {"event": "message", "content": " (", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2104
2105data: {"event": "message", "content": "big", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2106
2107data: {"event": "message", "content": " data", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2108
2109data: {"event": "message", "content": " analytics", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2110
2111data: {"event": "message", "content": "),", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2112
2113data: {"event": "message", "content": " và", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2114
2115data: {"event": "message", "content": " robo", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2116
2117data: {"event": "message", "content": "-ad", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2118
2119data: {"event": "message", "content": "visor", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2120
2121data: {"event": "message", "content": " tối", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2122
2123data: {"event": "message", "content": " ưu", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2124
2125data: {"event": "message", "content": " hóa", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2126
2127data: {"event": "message", "content": " đầu", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2128
2129data: {"event": "message", "content": " tư", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2130
2131data: {"event": "message", "content": ".\\n\\n", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2132
2133data: {"event": "message", "content": "Các", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2134
2135data: {"event": "message", "content": " giải", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2136
2137data: {"event": "message", "content": " pháp", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2138
2139data: {"event": "message", "content": " này", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2140
2141data: {"event": "message", "content": " được", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2142
2143data: {"event": "message", "content": " xây", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2144
2145data: {"event": "message", "content": " dá»±ng", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003
2145}}
2146
2147data: {"event": "message", "content": " với", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2148
2149data: {"event": "message", "content": " kiến", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2150
2151data: {"event": "message", "content": " tr", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2152
2153data: {"event": "message", "content": "úc", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2154
2155data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2156
2157data: {"event": "message", "content": " hiện", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2158
2159data: {"event": "message", "content": " đại", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2160
2161data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2162
2163data: {"event": "message", "content": " phù", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2164
2165data: {"event": "message", "content": " hợp", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2166
2167data: {"event": "message", "content": " với", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2168
2169data: {"event": "message", "content": " các", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2170
2171data: {"event": "message", "content": " yêu", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2172
2173data: {"event": "message", "content": " cầu", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2174
2175data: {"event": "message", "content": " kh", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2176
2177data: {"event": "message", "content": "ắt", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2178
2179data: {"event": "message", "content": " khe", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2180
2181data: {"event": "message", "content": " cá»§a", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2182
2183data: {"event": "message", "content": " ngành", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2184
2185data: {"event": "message", "content": " tài", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2186
2187data: {"event": "message", "content": " chính", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2188
2189data: {"event": "message", "content": " và", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2190
2191data: {"event": "message", "content": " doanh", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2192
2193data: {"event": "message", "content": " nghiệp", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2194
2195data: {"event": "message", "content": " Nhật", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2196
2197data: {"event": "message", "content": " B", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2198
2199data: {"event": "message", "content": "ản", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2200
2201data: {"event": "message", "content": ".", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2202
2203data: {"event": "message", "content": " Nếu", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2204
2205data: {"event": "message", "content": " bạn", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2206
2207data: {"event": "message", "content": " cần", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2208
2209data: {"event": "message", "content": " tư", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2210
2211data: {"event": "message", "content": " vấn", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2212
2213data: {"event": "message", "content": " cụ", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2214
2215data: {"event": "message", "content": " thể", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2216
2217data: {"event": "message", "content": " về", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2218
2219data: {"event": "message", "content": " một", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2220
2221data: {"event": "message", "content": " giải", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2222
2223data: {"event": "message", "content": " pháp", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2224
2225data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2226
2227data: {"event": "message", "content": " React", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2228
2229data: {"event": "message", "content": " Plus", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2230
2231data: {"event": "message", "content": " có", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2232
2233data: {"event": "message", "content": " thể", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2234
2235data: {"event": "message", "content": " đề", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2236
2237data: {"event": "message", "content": " xuất", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2238
2239data: {"event": "message", "content": " kiến", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2240
2241data: {"event": "message", "content": " tr", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2242
2243data: {"event": "message", "content": "úc", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2244
2245data: {"event": "message", "content": " và", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2246
2247data: {"event": "message", "content": " phương", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2248
2249data: {"event": "message", "content": " pháp", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2250
2251data: {"event": "message", "content": " triển", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2252
2253data: {"event": "message", "content": " khai", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2254
2255data: {"event": "message", "content": " phù", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2256
2257data: {"event": "message", "content": " hợp", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2258
2259data: {"event": "message", "content": " nhất", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2260
2261data: {"event": "message", "content": " với", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2262
2263data: {"event": "message", "content": " nhu", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2264
2265data: {"event": "message", "content": " cầu", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2266
2267data: {"event": "message", "content": " cá»§a", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2268
2269data: {"event": "message", "content": " bạn", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2270
2271data: {"event": "message", "content": ".", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2272
2273data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 968, "output_tokens": 35, "total_tokens": 1003}}
2274
2275data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 6408, "output_tokens": 342, "total_tokens": 6750}}
2276
2277data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 6408, "output_tokens": 342, "total_tokens": 6750}}
2278
2279data: {"event": "complete", "content": "<|stop|>", "usage_metadata": {"input_tokens": 6408, "output_tokens": 342, "total_tokens": 6750}}
2280
2281`,"React Plus hiện có những product nào?":`data: {"event": "start", "content": "<|start|>", "usage_metadata": {"input_tokens": 0, "output_tokens": 0, "total_tokens": 0}}
2282
2283data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 0, "output_tokens": 0, "total_tokens": 0}}
2284
2285data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2286
2287data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2288
2289data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2290
2291data: {"event": "message", "content": "Hi", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2292
2293data: {"event": "message", "content": "ện", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2294
2295data: {"event": "message", "content": " tại", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2296
2297data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2298
2299data: {"event": "message", "content": " React", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2300
2301data: {"event": "message", "content": "Plus", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2302
2303data: {"event": "message", "content": " có", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2304
2305data: {"event": "message", "content": " các", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2306
2307data: {"event": "message", "content": " sản", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2308
2309data: {"event": "message", "content": " phẩm", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2310
2311data: {"event": "message", "content": " sau", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2312
2313data: {"event": "message", "content": ":\\n\\n", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2314
2315data: {"event": "message", "content": "1", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2316
2317data: {"event": "message", "content": ".", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2318
2319data: {"event": "message", "content": " Alternative", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2320
2321data: {"event": "message", "content": " Data", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2322
2323data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2324
2325data: {"event": "message", "content": " Sc", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2326
2327data: {"event": "message", "content": "oring", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2328
2329data: {"event": "message", "content": ":\\n", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2330
2331data: {"event": "message", "content": "  ", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2332
2333data: {"event": "message", "content": " -", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2334
2335data: {"event": "message", "content": " At", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2336
2337data: {"event": "message", "content": "obar", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2338
2339data: {"event": "message", "content": ".ai", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2340
2341data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2342
2343data: {"event": "message", "content": "  ", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2344
2345data: {"event": "message", "content": " -", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2346
2347data: {"event": "message", "content": " AD", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2348
2349data: {"event": "message", "content": " Housing", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2350
2351data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2352
2353data: {"event": "message", "content": "  ", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2354
2355data: {"event": "message", "content": " -", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2356
2357data: {"event": "message", "content": " AD", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2358
2359data: {"event": "message", "content": " Passport", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2360
2361data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2362
2363data: {"event": "message", "content": "  ", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2364
2365data: {"event": "message", "content": " -", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2366
2367data: {"event": "message", "content": " Live", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2368
2369data: {"event": "message", "content": " Now", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2370
2371data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2372
2373data: {"event": "message", "content": " Pay", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2374
2375data: {"event": "message", "content": " Later", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2376
2377data: {"event": "message", "content": " (", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2378
2379data: {"event": "message", "content": "LN", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2380
2381data: {"event": "message", "content": "PL", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2382
2383data: {"event": "message", "content": ")\\n\\n", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2384
2385data: {"event": "message", "content": "2", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2386
2387data: {"event": "message", "content": ".", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2388
2389data: {"event": "message", "content": " App", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2390
2391data: {"event": "message", "content": "OS", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2392
2393data: {"event": "message", "content": ":", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2394
2395data: {"event": "message", "content": " N", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2396
2397data: {"event": "message", "content": "ền", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2398
2399data: {"event": "message", "content": " t", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2400
2401data: {"event": "message", "content": "ảng", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2402
2403data: {"event": "message", "content": " đa", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2404
2405data: {"event": "message", "content": " tác", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2406
2407data: {"event": "message", "content": " tá»­", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2408
2409data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2410
2411data: {"event": "message", "content": " giúp", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2412
2413data: {"event": "message", "content": " chuyển", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2414
2415data: {"event": "message", "content": " đổi", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2416
2417data: {"event": "message", "content": " ý", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2418
2419data: {"event": "message", "content": " tưởng", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2420
2421data: {"event": "message", "content": " kinh", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2422
2423data: {"event": "message", "content": " doanh", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2424
2425data: {"event": "message", "content": " thành", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2426
2427data: {"event": "message", "content": " ứng", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2428
2429data: {"event": "message", "content": " dụng", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2430
2431data: {"event": "message", "content": " thá»±c", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2432
2433data: {"event": "message", "content": " tế", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2434
2435data: {"event": "message", "content": ".\\n\\n", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2436
2437data: {"event": "message", "content": "3", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2438
2439data: {"event": "message", "content": ".", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2440
2441data: {"event": "message", "content": " CV", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2442
2443data: {"event": "message", "content": "Agent", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2444
2445data: {"event": "message", "content": "\\n\\n", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2446
2447data: {"event": "message", "content": "Nếu", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2448
2449data: {"event": "message", "content": " bạn", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2450
2451data: {"event": "message", "content": " cần", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2452
2453data: {"event": "message", "content": " thông", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2454
2455data: {"event": "message", "content": " tin", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2456
2457data: {"event": "message", "content": " chi", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2458
2459data: {"event": "message", "content": " tiết", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2460
2461data: {"event": "message", "content": " về", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2462
2463data: {"event": "message", "content": " từng", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2464
2465data: {"event": "message", "content": " sản", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2466
2467data: {"event": "message", "content": " phẩm", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2468
2469data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2470
2471data: {"event": "message", "content": " vui", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2472
2473data: {"event": "message", "content": " lòng", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2474
2475data: {"event": "message", "content": " cho", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2476
2477data: {"event": "message", "content": " biết", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2478
2479data: {"event": "message", "content": " thêm", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2480
2481data: {"event": "message", "content": " nhé", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2482
2483data: {"event": "message", "content": "!", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2484
2485data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 961, "output_tokens": 28, "total_tokens": 989}}
2486
2487data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 5336, "output_tokens": 126, "total_tokens": 5462}}
2488
2489data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 5336, "output_tokens": 126, "total_tokens": 5462}}
2490
2491data: {"event": "complete", "content": "<|stop|>", "usage_metadata": {"input_tokens": 5336, "output_tokens": 126, "total_tokens": 5462}}
2492
2493`,"Năng lực AI":`data: {"event": "start", "content": "<|start|>", "usage_metadata": {"input_tokens": 0, "output_tokens": 0, "total_tokens": 0}}
2494
2495data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 0, "output_tokens": 0, "total_tokens": 0}}
2496
2497data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2498
2499data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2500
2501data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2502
2503data: {"event": "message", "content": "React", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2504
2505data: {"event": "message", "content": "Plus", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2506
2507data: {"event": "message", "content": " là", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2508
2509data: {"event": "message", "content": " công", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2510
2511data: {"event": "message", "content": " ty", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2512
2513data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2514
2515data: {"event": "message", "content": "-native", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2516
2517data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2518
2519data: {"event": "message", "content": " lấy", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2520
2521data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2522
2523data: {"event": "message", "content": " làm", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2524
2525data: {"event": "message", "content": " c", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2526
2527data: {"event": "message", "content": "ốt", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2528
2529data: {"event": "message", "content": " lõ", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2530
2531data: {"event": "message", "content": "i", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2532
2533data: {"event": "message", "content": " trong", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2534
2535data: {"event": "message", "content": " mọi", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2536
2537data: {"event": "message", "content": " quy", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2538
2539data: {"event": "message", "content": " trình", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2540
2541data: {"event": "message", "content": " phát", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2542
2543data: {"event": "message", "content": " triển", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2544
2545data: {"event": "message", "content": " và", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2546
2547data: {"event": "message", "content": " vận", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2548
2549data: {"event": "message", "content": " hành", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2550
2551data: {"event": "message", "content": ".", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2552
2553data: {"event": "message", "content": " N", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2554
2555data: {"event": "message", "content": "ăng", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2556
2557data: {"event": "message", "content": " lá»±c", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2558
2559data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2560
2561data: {"event": "message", "content": " cá»§a", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2562
2563data: {"event": "message", "content": " React", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2564
2565data: {"event": "message", "content": "Plus", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2566
2567data: {"event": "message", "content": " bao", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2568
2569data: {"event": "message", "content": " gồm", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2570
2571data: {"event": "message", "content": ":\\n\\n", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2572
2573data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2574
2575data: {"event": "message", "content": " ", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2576
2577data: {"event": "message", "content": "Ứ", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2578
2579data: {"event": "message", "content": "ng", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2580
2581data: {"event": "message", "content": " dụng", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2582
2583data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2584
2585data: {"event": "message", "content": " toàn", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2586
2587data: {"event": "message", "content": " diện", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2588
2589data: {"event": "message", "content": " trong", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2590
2591data: {"event": "message", "content": " phát", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2592
2593data: {"event": "message", "content": " triển", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2594
2595data: {"event": "message", "content": " phần", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2596
2597data: {"event": "message", "content": " mềm", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2598
2599data: {"event": "message", "content": ":", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2600
2601data: {"event": "message", "content": " từ", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2602
2603data: {"event": "message", "content": " định", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2604
2605data: {"event": "message", "content": " nghĩa", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2606
2607data: {"event": "message", "content": " yêu", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2608
2609data: {"event": "message", "content": " cầu", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2610
2611data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2612
2613data: {"event": "message", "content": " thiết", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2614
2615data: {"event": "message", "content": " kế", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2616
2617data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2618
2619data: {"event": "message", "content": " phát", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2620
2621data: {"event": "message", "content": " triển", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2622
2623data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2624
2625data: {"event": "message", "content": " kiểm", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2626
2627data: {"event": "message", "content": " thá»­", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2628
2629data: {"event": "message", "content": " đến", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2630
2631data: {"event": "message", "content": " vận", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2632
2633data: {"event": "message", "content": " hành", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2634
2635data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2636
2637data: {"event": "message", "content": " giúp", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2638
2639data: {"event": "message", "content": " tăng", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2640
2641data: {"event": "message", "content": " tốc", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2642
2643data: {"event": "message", "content": " độ", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2644
2645data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2646
2647data: {"event": "message", "content": " tối", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2648
2649data: {"event": "message", "content": " ưu", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2650
2651data: {"event": "message", "content": " hóa", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2652
2653data: {"event": "message", "content": " hiệu", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2654
2655data: {"event": "message", "content": " quả", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2656
2657data: {"event": "message", "content": " và", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2658
2659data: {"event": "message", "content": " hỗ", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2660
2661data: {"event": "message", "content": " trợ", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2662
2663data: {"event": "message", "content": " sáng", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2664
2665data: {"event": "message", "content": " tạo", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2666
2667data: {"event": "message", "content": ".\\n", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2668
2669data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2670
2671data: {"event": "message", "content": " S", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2672
2673data: {"event": "message", "content": "ở", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2674
2675data: {"event": "message", "content": " hữu", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2676
2677data: {"event": "message", "content": " đội", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2678
2679data: {"event": "message", "content": " ng", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2680
2681data: {"event": "message", "content": "Å©", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2682
2683data: {"event": "message", "content": " hơn", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2684
2685data: {"event": "message", "content": " ", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2686
2687data: {"event": "message", "content": "50", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2688
2689data: {"event": "message", "content": " chuyên", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2690
2691data: {"event": "message", "content": " gia", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2692
2693data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2694
2695data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2696
2697data: {"event": "message", "content": " triển", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2698
2699data: {"event": "message", "content": " khai", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2700
2701data: {"event": "message", "content": " thá»±c", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2702
2703data: {"event": "message", "content": " tế", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2704
2705data: {"event": "message", "content": " các", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2706
2707data: {"event": "message", "content": " giải", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2708
2709data: {"event": "message", "content": " pháp", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2710
2711data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2712
2713data: {"event": "message", "content": " Agents", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2714
2715data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2716
2717data: {"event": "message", "content": " L", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2718
2719data: {"event": "message", "content": "LM", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2720
2721data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2722
2723data: {"event": "message", "content": " Edge", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2724
2725data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2726
2727data: {"event": "message", "content": " cho", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2728
2729data: {"event": "message", "content": " nhiều", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2730
2731data: {"event": "message", "content": " tập", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2732
2733data: {"event": "message", "content": " đoàn", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2734
2735data: {"event": "message", "content": " lớn", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2736
2737data: {"event": "message", "content": " tại", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2738
2739data: {"event": "message", "content": " Nhật", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2740
2741data: {"event": "message", "content": " B", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2742
2743data: {"event": "message", "content": "ản", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2744
2745data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2746
2747data: {"event": "message", "content": " đặc", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2748
2749data: {"event": "message", "content": " biệt", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2750
2751data: {"event": "message", "content": " trong", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2752
2753data: {"event": "message", "content": " lĩnh", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2754
2755data: {"event": "message", "content": " vá»±c", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2756
2757data: {"event": "message", "content": " Fin", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2758
2759data: {"event": "message", "content": "tech", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2760
2761data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2762
2763data: {"event": "message", "content": " Logistics", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2764
2765data: {"event": "message", "content": " và", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2766
2767data: {"event": "message", "content": " sản", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2768
2769data: {"event": "message", "content": " phẩm", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2770
2771data: {"event": "message", "content": " số", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2772
2773data: {"event": "message", "content": ".\\n", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2774
2775data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2776
2777data: {"event": "message", "content": " T", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2778
2779data: {"event": "message", "content": "ích", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2780
2781data: {"event": "message", "content": " hợp", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2782
2783data: {"event": "message", "content": " các", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2784
2785data: {"event": "message", "content": " nền", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2786
2787data: {"event": "message", "content": " t", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2788
2789data: {"event": "message", "content": "ảng", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2790
2791data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2792
2793data: {"event": "message", "content": " như", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2794
2795data: {"event": "message", "content": " Chat", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2796
2797data: {"event": "message", "content": "GPT", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2798
2799data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2800
2801data: {"event": "message", "content": " Claude", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2802
2803data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2804
2805data: {"event": "message", "content": " Gemini", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2806
2807data: {"event": "message", "content": " để", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2808
2809data: {"event": "message", "content": " hỗ", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2810
2811data: {"event": "message", "content": " trợ", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2812
2813data: {"event": "message", "content": " coding", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2814
2815data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2816
2817data: {"event": "message", "content": " phân", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2818
2819data: {"event": "message", "content": " tích", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2820
2821data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2822
2823data: {"event": "message", "content": " kiểm", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2824
2825data: {"event": "message", "content": " thá»­", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2826
2827data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2828
2829data: {"event": "message", "content": " tạo", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2830
2831data: {"event": "message", "content": " tài", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2832
2833data: {"event": "message", "content": " liệu", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2834
2835data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2836
2837data: {"event": "message", "content": " ref", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2838
2839data: {"event": "message", "content": "actoring", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2840
2841data: {"event": "message", "content": " mã", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2842
2843data: {"event": "message", "content": " nguồn", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2844
2845data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2846
2847data: {"event": "message", "content": " tá»±", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2848
2849data: {"event": "message", "content": " động", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2850
2851data: {"event": "message", "content": " hóa", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2852
2853data: {"event": "message", "content": " quy", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2854
2855data: {"event": "message", "content": " trình", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2856
2857data: {"event": "message", "content": " phát", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2858
2859data: {"event": "message", "content": " triển", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2860
2861data: {"event": "message", "content": ".\\n", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2862
2863data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2864
2865data: {"event": "message", "content": " Đ", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2866
2867data: {"event": "message", "content": "ịnh", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2868
2869data: {"event": "message", "content": " hướng", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2870
2871data: {"event": "message", "content": " phát", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2872
2873data: {"event": "message", "content": " triển", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2874
2875data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2876
2877data: {"event": "message", "content": " Agent", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2878
2879data: {"event": "message", "content": " nội", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2880
2881data: {"event": "message", "content": " bộ", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2882
2883data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2884
2885data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2886
2887data: {"event": "message", "content": " plugin", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2888
2889data: {"event": "message", "content": " cho", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2890
2891data: {"event": "message", "content": " IDE", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2892
2893data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2894
2895data: {"event": "message", "content": " tá»±", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2896
2897data: {"event": "message", "content": " động", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2898
2899data: {"event": "message", "content": " hóa", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2900
2901data: {"event": "message", "content": " end", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2902
2903data: {"event": "message", "content": "-to", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2904
2905data: {"event": "message", "content": "-end", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2906
2907data: {"event": "message", "content": " tài", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2908
2909data: {"event": "message", "content": " liệu", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2910
2911data: {"event": "message", "content": " và", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2912
2913data: {"event": "message", "content": " workflow", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2914
2915data: {"event": "message", "content": " phát", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2916
2917data: {"event": "message", "content": " triển", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2918
2919data: {"event": "message", "content": ".\\n", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2920
2921data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2922
2923data: {"event": "message", "content": " N", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2924
2925data: {"event": "message", "content": "ăng", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2926
2927data: {"event": "message", "content": " lá»±c", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2928
2929data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2930
2931data: {"event": "message", "content": " đa", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2932
2933data: {"event": "message", "content": " lĩnh", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2934
2935data: {"event": "message", "content": " vá»±c", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2936
2937data: {"event": "message", "content": ":", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2938
2939data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2940
2941data: {"event": "message", "content": " Agents", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2942
2943data: {"event": "message", "content": " &", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2944
2945data: {"event": "message", "content": " Decision", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2946
2947data: {"event": "message", "content": " Automation", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2948
2949data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2950
2951data: {"event": "message", "content": " Edge", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2952
2953data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2954
2955data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2956
2957data: {"event": "message", "content": " Embedded", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2958
2959data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2960
2961data: {"event": "message", "content": " cho", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2962
2963data: {"event": "message", "content": " sản", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2964
2965data: {"event": "message", "content": " phẩm", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2966
2967data: {"event": "message", "content": " phần", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2968
2969data: {"event": "message", "content": " mềm", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2970
2971data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2972
2973data: {"event": "message", "content": " hệ", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2974
2975data: {"event": "message", "content": " thống", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2976
2977data: {"event": "message", "content": " scoring", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2978
2979data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2980
2981data: {"event": "message", "content": " dashboard", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2982
2983data: {"event": "message", "content": " dá»±", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2984
2985data: {"event": "message", "content": " báo", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2986
2987data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2988
2989data: {"event": "message", "content": " workflow", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2990
2991data: {"event": "message", "content": " tá»±", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2992
2993data: {"event": "message", "content": " động", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2994
2995data: {"event": "message", "content": " hóa", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2996
2997data: {"event": "message", "content": ".\\n", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
2998
2999data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3000
3001data: {"event": "message", "content": " ", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3002
3003data: {"event": "message", "content": "Ứ", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3004
3005data: {"event": "message", "content": "ng", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3006
3007data: {"event": "message", "content": " dụng", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3008
3009data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3010
3011data: {"event": "message", "content": " vào", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3012
3013data: {"event": "message", "content": " các", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3014
3015data: {"event": "message", "content": " bài", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3016
3017data: {"event": "message", "content": " toán", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3018
3019data: {"event": "message", "content": " thá»±c", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3020
3021data: {"event": "message", "content": " tế", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3022
3023data: {"event": "message", "content": " như", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3024
3025data: {"event": "message", "content": ":", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3026
3027data: {"event": "message", "content": " phân", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3028
3029data: {"event": "message", "content": " tích", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3030
3031data: {"event": "message", "content": " r", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3032
3033data: {"event": "message", "content": "á»§", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3034
3035data: {"event": "message", "content": "i", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3036
3037data: {"event": "message", "content": " ro", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3038
3039data: {"event": "message", "content": " tài", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3040
3041data: {"event": "message", "content": " chính", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3042
3043data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3044
3045data: {"event": "message", "content": " phát", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3046
3047data: {"event": "message", "content": " hiện", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3048
3049data: {"event": "message", "content": " gian", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3050
3051data: {"event": "message", "content": " l", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3052
3053data: {"event": "message", "content": "ận", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3054
3055data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3056
3057data: {"event": "message", "content": " quản", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3058
3059data: {"event": "message", "content": " lý", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3060
3061data: {"event": "message", "content": " nhân", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3062
3063data: {"event": "message", "content": " sá»±", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3064
3065data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3066
3067data: {"event": "message", "content": " dá»±", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3068
3069data: {"event": "message", "content": " đo", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3070
3071data: {"event": "message", "content": "án", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3072
3073data: {"event": "message", "content": " nhu", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3074
3075data: {"event": "message", "content": " cầu", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3076
3077data: {"event": "message", "content": " khách", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3078
3079data: {"event": "message", "content": " hàng", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3080
3081data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3082
3083data: {"event": "message", "content": " tối", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3084
3085data: {"event": "message", "content": " ưu", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3086
3087data: {"event": "message", "content": " hóa", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3088
3089data: {"event": "message", "content": " sản", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3090
3091data: {"event": "message", "content": " xuất", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3092
3093data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3094
3095data: {"event": "message", "content": " truyền", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3096
3097data: {"event": "message", "content": " thông", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3098
3099data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3100
3101data: {"event": "message", "content": " giáo", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3102
3103data: {"event": "message", "content": " dục", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3104
3105data: {"event": "message", "content": ".\\n\\n", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3106
3107data: {"event": "message", "content": "React", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3108
3109data: {"event": "message", "content": "Plus", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3110
3111data: {"event": "message", "content": " cam", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3112
3113data: {"event": "message", "content": " kết", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3114
3115data: {"event": "message", "content": " giúp", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3116
3117data: {"event": "message", "content": " doanh", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3118
3119data: {"event": "message", "content": " nghiệp", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3120
3121data: {"event": "message", "content": " Nhật", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3122
3123data: {"event": "message", "content": " B", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3124
3125data: {"event": "message", "content": "ản", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3126
3127data: {"event": "message", "content": " chuyển", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3128
3129data: {"event": "message", "content": " đổi", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3130
3131data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3132
3133data: {"event": "message", "content": " (", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3134
3135data: {"event": "message", "content": "AX", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3136
3137data: {"event": "message", "content": ")", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3138
3139data: {"event": "message", "content": " thành", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3140
3141data: {"event": "message", "content": " năng", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3142
3143data: {"event": "message", "content": " lá»±c", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3144
3145data: {"event": "message", "content": " vận", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3146
3147data: {"event": "message", "content": " hành", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3148
3149data: {"event": "message", "content": " thá»±c", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3150
3151data: {"event": "message", "content": " tế", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3152
3153data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3154
3155data: {"event": "message", "content": " không", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3156
3157data: {"event": "message", "content": " chỉ", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3158
3159data: {"event": "message", "content": " là", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3160
3161data: {"event": "message", "content": " demo", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3162
3163data: {"event": "message", "content": " hay", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3164
3165data: {"event": "message", "content": " thá»­", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3166
3167data: {"event": "message", "content": " nghiệm", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3168
3169data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3170
3171data: {"event": "message", "content": " mà", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3172
3173data: {"event": "message", "content": " là", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3174
3175data: {"event": "message", "content": " giải", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3176
3177data: {"event": "message", "content": " pháp", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3178
3179data: {"event": "message", "content": " thá»±c", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3180
3181data: {"event": "message", "content": " sá»±", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3182
3183data: {"event": "message", "content": " tạo", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3184
3185data: {"event": "message", "content": " giá", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3186
3187data: {"event": "message", "content": " trị", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3188
3189data: {"event": "message", "content": " và", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3190
3191data: {"event": "message", "content": " hiệu", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3192
3193data: {"event": "message", "content": " quả", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3194
3195data: {"event": "message", "content": " lâu", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3196
3197data: {"event": "message", "content": " dài", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3198
3199data: {"event": "message", "content": ".", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3200
3201data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 957, "output_tokens": 24, "total_tokens": 981}}
3202
3203data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 7784, "output_tokens": 374, "total_tokens": 8158}}
3204
3205data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 7784, "output_tokens": 374, "total_tokens": 8158}}
3206
3207data: {"event": "complete", "content": "<|stop|>", "usage_metadata": {"input_tokens": 7784, "output_tokens": 374, "total_tokens": 8158}}
3208
3209`,"React Plusについて":`data: {"event":"start","content":"<|start|>","usage_metadata":{"input_tokens":0,"output_tokens":0,"total_tokens":0}}
3210
3211data: {"event":"message","content":"","usage_metadata":{"input_tokens":950,"output_tokens":1,"total_tokens":951}}
3212
3213data: {"event":"message","content":"React","usage_metadata":{"input_tokens":950,"output_tokens":1,"total_tokens":951}}
3214
3215data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":2,"total_tokens":952}}
3216
3217data: {"event":"message","content":"Plus","usage_metadata":{"input_tokens":950,"output_tokens":3,"total_tokens":953}}
3218
3219data: {"event":"message","content":"は","usage_metadata":{"input_tokens":950,"output_tokens":4,"total_tokens":954}}
3220
3221data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":5,"total_tokens":955}}
3222
3223data: {"event":"message","content":"企業","usage_metadata":{"input_tokens":950,"output_tokens":6,"total_tokens":956}}
3224
3225data: {"event":"message","content":"向け","usage_metadata":{"input_tokens":950,"output_tokens":7,"total_tokens":957}}
3226
3227data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":8,"total_tokens":958}}
3228
3229data: {"event":"message","content":"ソリューション","usage_metadata":{"input_tokens":950,"output_tokens":9,"total_tokens":959}}
3230
3231data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":10,"total_tokens":960}}
3232
3233data: {"event":"message","content":"開発","usage_metadata":{"input_tokens":950,"output_tokens":11,"total_tokens":961}}
3234
3235data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":12,"total_tokens":962}}
3236
3237data: {"event":"message","content":"行う","usage_metadata":{"input_tokens":950,"output_tokens":13,"total_tokens":963}}
3238
3239data: {"event":"message","content":"とともに","usage_metadata":{"input_tokens":950,"output_tokens":14,"total_tokens":964}}
3240
3241data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":15,"total_tokens":965}}
3242
3243data: {"event":"message","content":"自社","usage_metadata":{"input_tokens":950,"output_tokens":16,"total_tokens":966}}
3244
3245data: {"event":"message","content":"で","usage_metadata":{"input_tokens":950,"output_tokens":17,"total_tokens":967}}
3246
3247data: {"event":"message","content":"開発","usage_metadata":{"input_tokens":950,"output_tokens":18,"total_tokens":968}}
3248
3249data: {"event":"message","content":"した","usage_metadata":{"input_tokens":950,"output_tokens":19,"total_tokens":969}}
3250
3251data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":20,"total_tokens":970}}
3252
3253data: {"event":"message","content":"プロダクト","usage_metadata":{"input_tokens":950,"output_tokens":21,"total_tokens":971}}
3254
3255data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":22,"total_tokens":972}}
3256
3257data: {"event":"message","content":"保有","usage_metadata":{"input_tokens":950,"output_tokens":23,"total_tokens":973}}
3258
3259data: {"event":"message","content":"し","usage_metadata":{"input_tokens":950,"output_tokens":24,"total_tokens":974}}
3260
3261data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":25,"total_tokens":975}}
3262
3263data: {"event":"message","content":"事業","usage_metadata":{"input_tokens":950,"output_tokens":26,"total_tokens":976}}
3264
3265data: {"event":"message","content":"化","usage_metadata":{"input_tokens":950,"output_tokens":27,"total_tokens":977}}
3266
3267data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":28,"total_tokens":978}}
3268
3269data: {"event":"message","content":"進","usage_metadata":{"input_tokens":950,"output_tokens":29,"total_tokens":979}}
3270
3271data: {"event":"message","content":"め","usage_metadata":{"input_tokens":950,"output_tokens":30,"total_tokens":980}}
3272
3273data: {"event":"message","content":"て","usage_metadata":{"input_tokens":950,"output_tokens":31,"total_tokens":981}}
3274
3275data: {"event":"message","content":"いる","usage_metadata":{"input_tokens":950,"output_tokens":32,"total_tokens":982}}
3276
3277data: {"event":"message","content":"企業","usage_metadata":{"input_tokens":950,"output_tokens":33,"total_tokens":983}}
3278
3279data: {"event":"message","content":"です","usage_metadata":{"input_tokens":950,"output_tokens":34,"total_tokens":984}}
3280
3281data: {"event":"message","content":"。","usage_metadata":{"input_tokens":950,"output_tokens":35,"total_tokens":985}}
3282
3283data: {"event":"message","content":"現在","usage_metadata":{"input_tokens":950,"output_tokens":36,"total_tokens":986}}
3284
3285data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":37,"total_tokens":987}}
3286
3287data: {"event":"message","content":"事業","usage_metadata":{"input_tokens":950,"output_tokens":38,"total_tokens":988}}
3288
3289data: {"event":"message","content":"は","usage_metadata":{"input_tokens":950,"output_tokens":39,"total_tokens":989}}
3290
3291data: {"event":"message","content":"主に","usage_metadata":{"input_tokens":950,"output_tokens":40,"total_tokens":990}}
3292
3293data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":41,"total_tokens":991}}
3294
3295data: {"event":"message","content":"企業","usage_metadata":{"input_tokens":950,"output_tokens":42,"total_tokens":992}}
3296
3297data: {"event":"message","content":"向け","usage_metadata":{"input_tokens":950,"output_tokens":43,"total_tokens":993}}
3298
3299data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":44,"total_tokens":994}}
3300
3301data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":45,"total_tokens":995}}
3302
3303data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":46,"total_tokens":996}}
3304
3305data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":47,"total_tokens":997}}
3306
3307data: {"event":"message","content":"Solutions","usage_metadata":{"input_tokens":950,"output_tokens":48,"total_tokens":998}}
3308
3309data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":49,"total_tokens":999}}
3310
3311data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":50,"total_tokens":1000}}
3312
3313data: {"event":"message","content":"提供","usage_metadata":{"input_tokens":950,"output_tokens":51,"total_tokens":1001}}
3314
3315data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":52,"total_tokens":1002}}
3316
3317data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":53,"total_tokens":1003}}
3318
3319data: {"event":"message","content":"React","usage_metadata":{"input_tokens":950,"output_tokens":54,"total_tokens":1004}}
3320
3321data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":55,"total_tokens":1005}}
3322
3323data: {"event":"message","content":"Plus","usage_metadata":{"input_tokens":950,"output_tokens":56,"total_tokens":1006}}
3324
3325data: {"event":"message","content":"が","usage_metadata":{"input_tokens":950,"output_tokens":57,"total_tokens":1007}}
3326
3327data: {"event":"message","content":"保有","usage_metadata":{"input_tokens":950,"output_tokens":58,"total_tokens":1008}}
3328
3329data: {"event":"message","content":"する","usage_metadata":{"input_tokens":950,"output_tokens":59,"total_tokens":1009}}
3330
3331data: {"event":"message","content":"自社","usage_metadata":{"input_tokens":950,"output_tokens":60,"total_tokens":1010}}
3332
3333data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":61,"total_tokens":1011}}
3334
3335data: {"event":"message","content":"プロダクト","usage_metadata":{"input_tokens":950,"output_tokens":62,"total_tokens":1012}}
3336
3337data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":63,"total_tokens":1013}}
3338
3339data: {"event":"message","content":"開発","usage_metadata":{"input_tokens":950,"output_tokens":64,"total_tokens":1014}}
3340
3341data: {"event":"message","content":"・","usage_metadata":{"input_tokens":950,"output_tokens":65,"total_tokens":1015}}
3342
3343data: {"event":"message","content":"事業","usage_metadata":{"input_tokens":950,"output_tokens":66,"total_tokens":1016}}
3344
3345data: {"event":"message","content":"化","usage_metadata":{"input_tokens":950,"output_tokens":67,"total_tokens":1017}}
3346
3347data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":68,"total_tokens":1018}}
3348
3349data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":69,"total_tokens":1019}}
3350
3351data: {"event":"message","content":"そして","usage_metadata":{"input_tokens":950,"output_tokens":70,"total_tokens":1020}}
3352
3353data: {"event":"message","content":"ソフトウェア","usage_metadata":{"input_tokens":950,"output_tokens":71,"total_tokens":1021}}
3354
3355data: {"event":"message","content":"開発","usage_metadata":{"input_tokens":950,"output_tokens":72,"total_tokens":1022}}
3355
3356
3357data: {"event":"message","content":"プロセス","usage_metadata":{"input_tokens":950,"output_tokens":73,"total_tokens":1023}}
3358
3359data: {"event":"message","content":"へ","usage_metadata":{"input_tokens":950,"output_tokens":74,"total_tokens":1024}}
3360
3361data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":75,"total_tokens":1025}}
3362
3363data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":76,"total_tokens":1026}}
3364
3365data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":77,"total_tokens":1027}}
3366
3367data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":78,"total_tokens":1028}}
3368
3369data: {"event":"message","content":"Agent","usage_metadata":{"input_tokens":950,"output_tokens":79,"total_tokens":1029}}
3370
3371data: {"event":"message","content":"および","usage_metadata":{"input_tokens":950,"output_tokens":80,"total_tokens":1030}}
3372
3373data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":81,"total_tokens":1031}}
3374
3375data: {"event":"message","content":"-","usage_metadata":{"input_tokens":950,"output_tokens":82,"total_tokens":1032}}
3376
3377data: {"event":"message","content":"driven","usage_metadata":{"input_tokens":950,"output_tokens":83,"total_tokens":1033}}
3378
3379data: {"event":"message","content":"手法","usage_metadata":{"input_tokens":950,"output_tokens":84,"total_tokens":1034}}
3380
3381data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":85,"total_tokens":1035}}
3382
3383data: {"event":"message","content":"導入","usage_metadata":{"input_tokens":950,"output_tokens":86,"total_tokens":1036}}
3384
3385data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":87,"total_tokens":1037}}
3386
3387data: {"event":"message","content":"という","usage_metadata":{"input_tokens":950,"output_tokens":88,"total_tokens":1038}}
3388
3389data: {"event":"message","content":"3","usage_metadata":{"input_tokens":950,"output_tokens":89,"total_tokens":1039}}
3390
3391data: {"event":"message","content":"つ","usage_metadata":{"input_tokens":950,"output_tokens":90,"total_tokens":1040}}
3392
3393data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":91,"total_tokens":1041}}
3394
3395data: {"event":"message","content":"領域","usage_metadata":{"input_tokens":950,"output_tokens":92,"total_tokens":1042}}
3396
3397data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":93,"total_tokens":1043}}
3398
3399data: {"event":"message","content":"中心","usage_metadata":{"input_tokens":950,"output_tokens":94,"total_tokens":1044}}
3400
3401data: {"event":"message","content":"に","usage_metadata":{"input_tokens":950,"output_tokens":95,"total_tokens":1045}}
3402
3403data: {"event":"message","content":"展開","usage_metadata":{"input_tokens":950,"output_tokens":96,"total_tokens":1046}}
3404
3405data: {"event":"message","content":"し","usage_metadata":{"input_tokens":950,"output_tokens":97,"total_tokens":1047}}
3406
3407data: {"event":"message","content":"てい","usage_metadata":{"input_tokens":950,"output_tokens":98,"total_tokens":1048}}
3408
3409data: {"event":"message","content":"ます","usage_metadata":{"input_tokens":950,"output_tokens":99,"total_tokens":1049}}
3410
3411data: {"event":"message","content":"。","usage_metadata":{"input_tokens":950,"output_tokens":100,"total_tokens":1050}}
3412
3413data: {"event":"message","content":"\\n\\n","usage_metadata":{"input_tokens":950,"output_tokens":101,"total_tokens":1051}}
3414
3415data: {"event":"message","content":"React","usage_metadata":{"input_tokens":950,"output_tokens":102,"total_tokens":1052}}
3416
3417data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":103,"total_tokens":1053}}
3418
3419data: {"event":"message","content":"Plus","usage_metadata":{"input_tokens":950,"output_tokens":104,"total_tokens":1054}}
3420
3421data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":105,"total_tokens":1055}}
3422
3423data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":106,"total_tokens":1056}}
3424
3425data: {"event":"message","content":"開発","usage_metadata":{"input_tokens":950,"output_tokens":107,"total_tokens":1057}}
3426
3427data: {"event":"message","content":"力","usage_metadata":{"input_tokens":950,"output_tokens":108,"total_tokens":1058}}
3428
3429data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":109,"total_tokens":1059}}
3430
3431data: {"event":"message","content":"支え","usage_metadata":{"input_tokens":950,"output_tokens":110,"total_tokens":1060}}
3432
3433data: {"event":"message","content":"て","usage_metadata":{"input_tokens":950,"output_tokens":111,"total_tokens":1061}}
3434
3435data: {"event":"message","content":"いる","usage_metadata":{"input_tokens":950,"output_tokens":112,"total_tokens":1062}}
3436
3437data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":113,"total_tokens":1063}}
3438
3439data: {"event":"message","content":"は","usage_metadata":{"input_tokens":950,"output_tokens":114,"total_tokens":1064}}
3440
3441data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":115,"total_tokens":1065}}
3442
3443data: {"event":"message","content":"170","usage_metadata":{"input_tokens":950,"output_tokens":116,"total_tokens":1066}}
3444
3445data: {"event":"message","content":"名","usage_metadata":{"input_tokens":950,"output_tokens":117,"total_tokens":1067}}
3446
3447data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":118,"total_tokens":1068}}
3448
3449data: {"event":"message","content":"超える","usage_metadata":{"input_tokens":950,"output_tokens":119,"total_tokens":1069}}
3450
3451data: {"event":"message","content":"全","usage_metadata":{"input_tokens":950,"output_tokens":120,"total_tokens":1070}}
3452
3453data: {"event":"message","content":"社員","usage_metadata":{"input_tokens":950,"output_tokens":121,"total_tokens":1071}}
3454
3455data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":122,"total_tokens":1072}}
3456
3457data: {"event":"message","content":"うち","usage_metadata":{"input_tokens":950,"output_tokens":123,"total_tokens":1073}}
3457
3458
3459data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":124,"total_tokens":1074}}
3460
3461data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":125,"total_tokens":1075}}
3462
3463data: {"event":"message","content":"40","usage_metadata":{"input_tokens":950,"output_tokens":126,"total_tokens":1076}}
3464
3465data: {"event":"message","content":"名","usage_metadata":{"input_tokens":950,"output_tokens":127,"total_tokens":1077}}
3466
3467data: {"event":"message","content":"以上","usage_metadata":{"input_tokens":950,"output_tokens":128,"total_tokens":1078}}
3468
3469data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":129,"total_tokens":1079}}
3470
3471data: {"event":"message","content":"フルタイム","usage_metadata":{"input_tokens":950,"output_tokens":130,"total_tokens":1080}}
3472
3473data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":131,"total_tokens":1081}}
3474
3475data: {"event":"message","content":"エンジニア","usage_metadata":{"input_tokens":950,"output_tokens":132,"total_tokens":1082}}
3476
3477data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":133,"total_tokens":1083}}
3478
3479data: {"event":"message","content":"で","usage_metadata":{"input_tokens":950,"output_tokens":134,"total_tokens":1084}}
3480
3481data: {"event":"message","content":"構成","usage_metadata":{"input_tokens":950,"output_tokens":135,"total_tokens":1085}}
3482
3483data: {"event":"message","content":"さ","usage_metadata":{"input_tokens":950,"output_tokens":136,"total_tokens":1086}}
3484
3485data: {"event":"message","content":"れる","usage_metadata":{"input_tokens":950,"output_tokens":137,"total_tokens":1087}}
3486
3487data: {"event":"message","content":"専門","usage_metadata":{"input_tokens":950,"output_tokens":138,"total_tokens":1088}}
3488
3489data: {"event":"message","content":"チーム","usage_metadata":{"input_tokens":950,"output_tokens":139,"total_tokens":1089}}
3490
3491data: {"event":"message","content":"です","usage_metadata":{"input_tokens":950,"output_tokens":140,"total_tokens":1090}}
3492
3493data: {"event":"message","content":"。","usage_metadata":{"input_tokens":950,"output_tokens":141,"total_tokens":1091}}
3494
3495data: {"event":"message","content":"各","usage_metadata":{"input_tokens":950,"output_tokens":142,"total_tokens":1092}}
3496
3497data: {"event":"message","content":"業務","usage_metadata":{"input_tokens":950,"output_tokens":143,"total_tokens":1093}}
3498
3499data: {"event":"message","content":"に","usage_metadata":{"input_tokens":950,"output_tokens":144,"total_tokens":1094}}
3500
3501data: {"event":"message","content":"特","usage_metadata":{"input_tokens":950,"output_tokens":145,"total_tokens":1095}}
3502
3503data: {"event":"message","content":"化","usage_metadata":{"input_tokens":950,"output_tokens":146,"total_tokens":1096}}
3504
3505data: {"event":"message","content":"した","usage_metadata":{"input_tokens":950,"output_tokens":147,"total_tokens":1097}}
3506
3507data: {"event":"message","content":"モデル","usage_metadata":{"input_tokens":950,"output_tokens":148,"total_tokens":1098}}
3508
3509data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":149,"total_tokens":1099}}
3510
3511data: {"event":"message","content":"ファ","usage_metadata":{"input_tokens":950,"output_tokens":150,"total_tokens":1100}}
3512
3513data: {"event":"message","content":"インチ","usage_metadata":{"input_tokens":950,"output_tokens":151,"total_tokens":1101}}
3514
3515data: {"event":"message","content":"ュ","usage_metadata":{"input_tokens":950,"output_tokens":152,"total_tokens":1102}}
3516
3517data: {"event":"message","content":"ー","usage_metadata":{"input_tokens":950,"output_tokens":153,"total_tokens":1103}}
3518
3519data: {"event":"message","content":"ニ","usage_metadata":{"input_tokens":950,"output_tokens":154,"total_tokens":1104}}
3520
3521data: {"event":"message","content":"ン","usage_metadata":{"input_tokens":950,"output_tokens":155,"total_tokens":1105}}
3522
3523data: {"event":"message","content":"グ","usage_metadata":{"input_tokens":950,"output_tokens":156,"total_tokens":1106}}
3524
3525data: {"event":"message","content":"に","usage_metadata":{"input_tokens":950,"output_tokens":157,"total_tokens":1107}}
3526
3527data: {"event":"message","content":"加","usage_metadata":{"input_tokens":950,"output_tokens":158,"total_tokens":1108}}
3528
3529data: {"event":"message","content":"え","usage_metadata":{"input_tokens":950,"output_tokens":159,"total_tokens":1109}}
3530
3531data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":160,"total_tokens":1110}}
3532
3533data: {"event":"message","content":"Engine","usage_metadata":{"input_tokens":950,"output_tokens":161,"total_tokens":1111}}
3534
3535data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":162,"total_tokens":1112}}
3536
3537data: {"event":"message","content":"RAG","usage_metadata":{"input_tokens":950,"output_tokens":163,"total_tokens":1113}}
3538
3539data: {"event":"message","content":"基盤","usage_metadata":{"input_tokens":950,"output_tokens":164,"total_tokens":1114}}
3540
3541data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":165,"total_tokens":1115}}
3542
3543data: {"event":"message","content":"Agent","usage_metadata":{"input_tokens":950,"output_tokens":166,"total_tokens":1116}}
3544
3545data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":167,"total_tokens":1117}}
3546
3547data: {"event":"message","content":"Orchestration","usage_metadata":{"input_tokens":950,"output_tokens":168,"total_tokens":1118}}
3548
3549data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":169,"total_tokens":1119}}
3550
3551data: {"event":"message","content":"Framework","usage_metadata":{"input_tokens":950,"output_tokens":170,"total_tokens":1120}}
3552
3553data: {"event":"message","content":"など","usage_metadata":{"input_tokens":950,"output_tokens":171,"total_tokens":1121}}
3554
3555data: {"event":"message","content":"から","usage_metadata":{"input_tokens":950,"output_tokens":172,"total_tokens":1122}}
3556
3557data: {"event":"message","content":"構成","usage_metadata":{"input_tokens":950,"output_tokens":173,"total_tokens":1123}}
3558
3559data: {"event":"message","content":"さ","usage_metadata":{"input_tokens":950,"output_tokens":174,"total_tokens":1124}}
3560
3561data: {"event":"message","content":"れる","usage_metadata":{"input_tokens":950,"output_tokens":175,"total_tokens":1125}}
3562
3563data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":176,"total_tokens":1126}}
3564
3565data: {"event":"message","content":"プラットフォーム","usage_metadata":{"input_tokens":950,"output_tokens":177,"total_tokens":1127}}
3566
3567data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":178,"total_tokens":1128}}
3568
3569data: {"event":"message","content":"構築","usage_metadata":{"input_tokens":950,"output_tokens":179,"total_tokens":1129}}
3570
3571data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":180,"total_tokens":1130}}
3572
3573data: {"event":"message","content":"さらに","usage_metadata":{"input_tokens":950,"output_tokens":181,"total_tokens":1131}}
3574
3575data: {"event":"message","content":"企業","usage_metadata":{"input_tokens":950,"output_tokens":182,"total_tokens":1132}}
3576
3577data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":183,"total_tokens":1133}}
3578
3579data: {"event":"message","content":"業務","usage_metadata":{"input_tokens":950,"output_tokens":184,"total_tokens":1134}}
3580
3581data: {"event":"message","content":"プロセス","usage_metadata":{"input_tokens":950,"output_tokens":185,"total_tokens":1135}}
3582
3583data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":186,"total_tokens":1136}}
3584
3585data: {"event":"message","content":"直接","usage_metadata":{"input_tokens":950,"output_tokens":187,"total_tokens":1137}}
3586
3587data: {"event":"message","content":"処理","usage_metadata":{"input_tokens":950,"output_tokens":188,"total_tokens":1138}}
3588
3589data: {"event":"message","content":"する","usage_metadata":{"input_tokens":950,"output_tokens":189,"total_tokens":1139}}
3590
3591data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":190,"total_tokens":1140}}
3592
3593data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":191,"total_tokens":1141}}
3594
3595data: {"event":"message","content":"Agent","usage_metadata":{"input_tokens":950,"output_tokens":192,"total_tokens":1142}}
3596
3597data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":193,"total_tokens":1143}}
3598
3599data: {"event":"message","content":"開発","usage_metadata":{"input_tokens":950,"output_tokens":194,"total_tokens":1144}}
3600
3601data: {"event":"message","content":"まで","usage_metadata":{"input_tokens":950,"output_tokens":195,"total_tokens":1145}}
3602
3603data: {"event":"message","content":"対応","usage_metadata":{"input_tokens":950,"output_tokens":196,"total_tokens":1146}}
3604
3605data: {"event":"message","content":"し","usage_metadata":{"input_tokens":950,"output_tokens":197,"total_tokens":1147}}
3606
3607data: {"event":"message","content":"てい","usage_metadata":{"input_tokens":950,"output_tokens":198,"total_tokens":1148}}
3608
3609data: {"event":"message","content":"ます","usage_metadata":{"input_tokens":950,"output_tokens":199,"total_tokens":1149}}
3610
3611data: {"event":"message","content":"。","usage_metadata":{"input_tokens":950,"output_tokens":200,"total_tokens":1150}}
3612
3613data: {"event":"message","content":"これ","usage_metadata":{"input_tokens":950,"output_tokens":201,"total_tokens":1151}}
3614
3615data: {"event":"message","content":"は","usage_metadata":{"input_tokens":950,"output_tokens":202,"total_tokens":1152}}
3616
3617data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":203,"total_tokens":1153}}
3618
3619data: {"event":"message","content":"既存","usage_metadata":{"input_tokens":950,"output_tokens":204,"total_tokens":1154}}
3620
3621data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":205,"total_tokens":1155}}
3622
3623data: {"event":"message","content":"商用","usage_metadata":{"input_tokens":950,"output_tokens":206,"total_tokens":1156}}
3624
3625data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":207,"total_tokens":1157}}
3626
3627data: {"event":"message","content":"ツール","usage_metadata":{"input_tokens":950,"output_tokens":208,"total_tokens":1158}}
3628
3629data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":209,"total_tokens":1159}}
3630
3631data: {"event":"message","content":"導入","usage_metadata":{"input_tokens":950,"output_tokens":210,"total_tokens":1160}}
3632
3633data: {"event":"message","content":"や","usage_metadata":{"input_tokens":950,"output_tokens":211,"total_tokens":1161}}
3634
3635data: {"event":"message","content":"利用","usage_metadata":{"input_tokens":950,"output_tokens":212,"total_tokens":1162}}
3636
3637data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":213,"total_tokens":1163}}
3638
3639data: {"event":"message","content":"中心","usage_metadata":{"input_tokens":950,"output_tokens":214,"total_tokens":1164}}
3640
3641data: {"event":"message","content":"と","usage_metadata":{"input_tokens":950,"output_tokens":215,"total_tokens":1165}}
3642
3643data: {"event":"message","content":"する","usage_metadata":{"input_tokens":950,"output_tokens":216,"total_tokens":1166}}
3644
3645data: {"event":"message","content":"企業","usage_metadata":{"input_tokens":950,"output_tokens":217,"total_tokens":1167}}
3646
3647data: {"event":"message","content":"と","usage_metadata":{"input_tokens":950,"output_tokens":218,"total_tokens":1168}}
3648
3649data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":219,"total_tokens":1169}}
3650
3651data: {"event":"message","content":"重要","usage_metadata":{"input_tokens":950,"output_tokens":220,"total_tokens":1170}}
3652
3653data: {"event":"message","content":"な","usage_metadata":{"input_tokens":950,"output_tokens":221,"total_tokens":1171}}
3654
3655data: {"event":"message","content":"違い","usage_metadata":{"input_tokens":950,"output_tokens":222,"total_tokens":1172}}
3656
3657data: {"event":"message","content":"です","usage_metadata":{"input_tokens":950,"output_tokens":223,"total_tokens":1173}}
3658
3659data: {"event":"message","content":"。","usage_metadata":{"input_tokens":950,"output_tokens":224,"total_tokens":1174}}
3660
3661data: {"event":"message","content":"\\n\\n","usage_metadata":{"input_tokens":950,"output_tokens":225,"total_tokens":1175}}
3662
3663data: {"event":"message","content":"技術","usage_metadata":{"input_tokens":950,"output_tokens":226,"total_tokens":1176}}
3664
3665data: {"event":"message","content":"面","usage_metadata":{"input_tokens":950,"output_tokens":227,"total_tokens":1177}}
3666
3667data: {"event":"message","content":"では","usage_metadata":{"input_tokens":950,"output_tokens":228,"total_tokens":1178}}
3668
3669data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":229,"total_tokens":1179}}
3670
3671data: {"event":"message","content":"React","usage_metadata":{"input_tokens":950,"output_tokens":230,"total_tokens":1180}}
3672
3673data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":231,"total_tokens":1181}}
3674
3675data: {"event":"message","content":"Plus","usage_metadata":{"input_tokens":950,"output_tokens":232,"total_tokens":1182}}
3676
3677data: {"event":"message","content":"は","usage_metadata":{"input_tokens":950,"output_tokens":233,"total_tokens":1183}}
3678
3679data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":234,"total_tokens":1184}}
3680
3681data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":235,"total_tokens":1185}}
3682
3683data: {"event":"message","content":"モデル","usage_metadata":{"input_tokens":950,"output_tokens":236,"total_tokens":1186}}
3684
3685data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":237,"total_tokens":1187}}
3686
3687data: {"event":"message","content":"実際","usage_metadata":{"input_tokens":950,"output_tokens":238,"total_tokens":1188}}
3688
3689data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":239,"total_tokens":1189}}
3690
3691data: {"event":"message","content":"課題","usage_metadata":{"input_tokens":950,"output_tokens":240,"total_tokens":1190}}
3692
3693data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":241,"total_tokens":1191}}
3694
3695data: {"event":"message","content":"解決","usage_metadata":{"input_tokens":950,"output_tokens":242,"total_tokens":1192}}
3696
3697data: {"event":"message","content":"できる","usage_metadata":{"input_tokens":950,"output_tokens":243,"total_tokens":1193}}
3698
3699data: {"event":"message","content":"プロダクト","usage_metadata":{"input_tokens":950,"output_tokens":244,"total_tokens":1194}}
3700
3701data: {"event":"message","content":"へ","usage_metadata":{"input_tokens":950,"output_tokens":245,"total_tokens":1195}}
3702
3703data: {"event":"message","content":"と","usage_metadata":{"input_tokens":950,"output_tokens":246,"total_tokens":1196}}
3704
3705data: {"event":"message","content":"発展","usage_metadata":{"input_tokens":950,"output_tokens":247,"total_tokens":1197}}
3706
3707data: {"event":"message","content":"させる","usage_metadata":{"input_tokens":950,"output_tokens":248,"total_tokens":1198}}
3708
3709data: {"event":"message","content":"ため","usage_metadata":{"input_tokens":950,"output_tokens":249,"total_tokens":1199}}
3710
3711data: {"event":"message","content":"に","usage_metadata":{"input_tokens":950,"output_tokens":250,"total_tokens":1200}}
3712
3713data: {"event":"message","content":"必要","usage_metadata":{"input_tokens":950,"output_tokens":251,"total_tokens":1201}}
3714
3715data: {"event":"message","content":"な","usage_metadata":{"input_tokens":950,"output_tokens":252,"total_tokens":1202}}
3716
3717data: {"event":"message","content":"技術","usage_metadata":{"input_tokens":950,"output_tokens":253,"total_tokens":1203}}
3718
3719data: {"event":"message","content":"レ","usage_metadata":{"input_tokens":950,"output_tokens":254,"total_tokens":1204}}
3720
3721data: {"event":"message","content":"イヤー","usage_metadata":{"input_tokens":950,"output_tokens":255,"total_tokens":1205}}
3722
3723data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":256,"total_tokens":1206}}
3724
3725data: {"event":"message"
3725,"content":"自社","usage_metadata":{"input_tokens":950,"output_tokens":257,"total_tokens":1207}}
3726
3727data: {"event":"message","content":"で","usage_metadata":{"input_tokens":950,"output_tokens":258,"total_tokens":1208}}
3728
3729data: {"event":"message","content":"開発","usage_metadata":{"input_tokens":950,"output_tokens":259,"total_tokens":1209}}
3730
3731data: {"event":"message","content":"し","usage_metadata":{"input_tokens":950,"output_tokens":260,"total_tokens":1210}}
3732
3733data: {"event":"message","content":"てい","usage_metadata":{"input_tokens":950,"output_tokens":261,"total_tokens":1211}}
3734
3735data: {"event":"message","content":"ます","usage_metadata":{"input_tokens":950,"output_tokens":262,"total_tokens":1212}}
3736
3737data: {"event":"message","content":"。","usage_metadata":{"input_tokens":950,"output_tokens":263,"total_tokens":1213}}
3738
3739data: {"event":"message","content":"当社","usage_metadata":{"input_tokens":950,"output_tokens":264,"total_tokens":1214}}
3740
3741data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":265,"total_tokens":1215}}
3742
3743data: {"event":"message","content":"コア","usage_metadata":{"input_tokens":950,"output_tokens":266,"total_tokens":1216}}
3744
3745data: {"event":"message","content":"技術","usage_metadata":{"input_tokens":950,"output_tokens":267,"total_tokens":1217}}
3746
3747data: {"event":"message","content":"基盤","usage_metadata":{"input_tokens":950,"output_tokens":268,"total_tokens":1218}}
3748
3749data: {"event":"message","content":"は","usage_metadata":{"input_tokens":950,"output_tokens":269,"total_tokens":1219}}
3750
3751data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":270,"total_tokens":1220}}
3752
3753data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":271,"total_tokens":1221}}
3754
3755data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":272,"total_tokens":1222}}
3756
3757data: {"event":"message","content":"Agent","usage_metadata":{"input_tokens":950,"output_tokens":273,"total_tokens":1223}}
3758
3759data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":274,"total_tokens":1224}}
3760
3761data: {"event":"message","content":"Architecture","usage_metadata":{"input_tokens":950,"output_tokens":275,"total_tokens":1225}}
3762
3763data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":276,"total_tokens":1226}}
3764
3765data: {"event":"message","content":"Orchestration","usage_metadata":{"input_tokens":950,"output_tokens":277,"total_tokens":1227}}
3766
3767data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":278,"total_tokens":1228}}
3768
3769data: {"event":"message","content":"System","usage_metadata":{"input_tokens":950,"output_tokens":279,"total_tokens":1229}}
3770
3771data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":280,"total_tokens":1230}}
3772
3773data: {"event":"message","content":"RAG","usage_metadata":{"input_tokens":950,"output_tokens":281,"total_tokens":1231}}
3774
3775data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":282,"total_tokens":1232}}
3776
3777data: {"event":"message","content":"Workflow","usage_metadata":{"input_tokens":950,"output_tokens":283,"total_tokens":1233}}
3778
3779data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":284,"total_tokens":1234}}
3780
3781data: {"event":"message","content":"Business","usage_metadata":{"input_tokens":950,"output_tokens":285,"total_tokens":1235}}
3782
3783data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":286,"total_tokens":1236}}
3784
3785data: {"event":"message","content":"Engine","usage_metadata":{"input_tokens":950,"output_tokens":287,"total_tokens":1237}}
3786
3787data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":288,"total_tokens":1238}}
3788
3789data: {"event":"message","content":"Evaluation","usage_metadata":{"input_tokens":950,"output_tokens":289,"total_tokens":1239}}
3790
3791data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":290,"total_tokens":1240}}
3792
3793data: {"event":"message","content":"System","usage_metadata":{"input_tokens":950,"output_tokens":291,"total_tokens":1241}}
3794
3795data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":292,"total_tokens":1242}}
3796
3797data: {"event":"message","content":"および","usage_metadata":{"input_tokens":950,"output_tokens":293,"total_tokens":1243}}
3798
3799data: {"event":"message","content":"各種","usage_metadata":{"input_tokens":950,"output_tokens":294,"total_tokens":1244}}
3800
3801data: {"event":"message","content":"共通","usage_metadata":{"input_tokens":950,"output_tokens":295,"total_tokens":1245}}
3802
3803data: {"event":"message","content":"Module","usage_metadata":{"input_tokens":950,"output_tokens":296,"total_tokens":1246}}
3804
3805data: {"event":"message","content":"で","usage_metadata":{"input_tokens":950,"output_tokens":297,"total_tokens":1247}}
3806
3807data: {"event":"message","content":"構成","usage_metadata":{"input_tokens":950,"output_tokens":298,"total_tokens":1248}}
3808
3809data: {"event":"message","content":"さ","usage_metadata":{"input_tokens":950,"output_tokens":299,"total_tokens":1249}}
3810
3811data: {"event":"message","content":"れ","usage_metadata":{"input_tokens":950,"output_tokens":300,"total_tokens":1250}}
3812
3813data: {"event":"message","content":"てい","usage_metadata":{"input_tokens":950,"output_tokens":301,"total_tokens":1251}}
3814
3815data: {"event":"message","content":"ます","usage_metadata":{"input_tokens":950,"output_tokens":302,"total_tokens":1252}}
3816
3817data: {"event":"message","content":"。","usage_metadata":{"input_tokens":950,"output_tokens":303,"total_tokens":1253}}
3818
3819data: {"event":"message","content":"React","usage_metadata":{"input_tokens":950,"output_tokens":304,"total_tokens":1254}}
3820
3821data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":305,"total_tokens":1255}}
3822
3823data: {"event":"message","content":"Plus","usage_metadata":{"input_tokens":950,"output_tokens":306,"total_tokens":1256}}
3824
3825data: {"event":"message","content":"では","usage_metadata":{"input_tokens":950,"output_tokens":307,"total_tokens":1257}}
3826
3827data: {"event":"message","content":"Foundation","usage_metadata":{"input_tokens":950,"output_tokens":308,"total_tokens":1258}}
3828
3829data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":309,"total_tokens":1259}}
3830
3831data: {"event":"message","content":"LLM","usage_metadata":{"input_tokens":950,"output_tokens":310,"total_tokens":1260}}
3832
3833data: {"event":"message","content":"そのもの","usage_metadata":{"input_tokens":950,"output_tokens":311,"total_tokens":1261}}
3834
3835data: {"event":"message","content":"は","usage_metadata":{"input_tokens":950,"output_tokens":312,"total_tokens":1262}}
3836
3837data: {"event":"message","content":"開発","usage_metadata":{"input_tokens":950,"output_tokens":313,"total_tokens":1263}}
3838
3839data: {"event":"message","content":"せ","usage_metadata":{"input_tokens":950,"output_tokens":314,"total_tokens":1264}}
3840
3841data: {"event":"message","content":"ず","usage_metadata":{"input_tokens":950,"output_tokens":315,"total_tokens":1265}}
3842
3843data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":316,"total_tokens":1266}}
3844
3845data: {"event":"message","content":"商用","usage_metadata":{"input_tokens":950,"output_tokens":317,"total_tokens":1267}}
3846
3847data: {"event":"message","content":"モデル","usage_metadata":{"input_tokens":950,"output_tokens":318,"total_tokens":1268}}
3848
3849data: {"event":"message","content":"と","usage_metadata":{"input_tokens":950,"output_tokens":319,"total_tokens":1269}}
3850
3851data: {"event":"message","content":"Open","usage_metadata":{"input_tokens":950,"output_tokens":320,"total_tokens":1270}}
3852
3853data: {"event":"message","content":"-","usage_metadata":{"input_tokens":950,"output_tokens":321,"total_tokens":1271}}
3854
3855data: {"event":"message","content":"weight","usage_metadata":{"input_tokens":950,"output_tokens":322,"total_tokens":1272}}
3856
3857data: {"event":"message","content":"モデル","usage_metadata":{"input_tokens":950,"output_tokens":323,"total_tokens":1273}}
3858
3859data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":324,"total_tokens":1274}}
3860
3861data: {"event":"message","content":"組み合わせ","usage_metadata":{"input_tokens":950,"output_tokens":325,"total_tokens":1275}}
3862
3863data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":326,"total_tokens":1276}}
3864
3865data: {"event":"message","content":"その","usage_metadata":{"input_tokens":950,"output_tokens":327,"total_tokens":1277}}
3866
3867data: {"event":"message","content":"上位","usage_metadata":{"input_tokens":950,"output_tokens":328,"total_tokens":1278}}
3868
3869data: {"event":"message","content":"レ","usage_metadata":{"input_tokens":950,"output_tokens":329,"total_tokens":1279}}
3870
3871data: {"event":"message","content":"イヤー","usage_metadata":{"input_tokens":950,"output_tokens":330,"total_tokens":1280}}
3872
3873data: {"event":"message","content":"として","usage_metadata":{"input_tokens":950,"output_tokens":331,"total_tokens":1281}}
3874
3875data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":332,"total_tokens":1282}}
3876
3877data: {"event":"message","content":"ファ","usage_metadata":{"input_tokens":950,"output_tokens":333,"total_tokens":1283}}
3878
3879data: {"event":"message","content":"インチ","usage_metadata":{"input_tokens":950,"output_tokens":334,"total_tokens":1284}}
3880
3881data: {"event":"message","content":"ュ","usage_metadata":{"input_tokens":950,"output_tokens":335,"total_tokens":1285}}
3882
3883data: {"event":"message","content":"ー","usage_metadata":{"input_tokens":950,"output_tokens":336,"total_tokens":1286}}
3884
3885data: {"event":"message","content":"ニ","usage_metadata":{"input_tokens":950,"output_tokens":337,"total_tokens":1287}}
3886
3887data: {"event":"message","content":"ン","usage_metadata":{"input_tokens":950,"output_tokens":338,"total_tokens":1288}}
3888
3889data: {"event":"message","content":"グ","usage_metadata":{"input_tokens":950,"output_tokens":339,"total_tokens":1289}}
3890
3891data: {"event":"message","content":"した","usage_metadata":{"input_tokens":950,"output_tokens":340,"total_tokens":1290}}
3892
3893data: {"event":"message","content":"特","usage_metadata":{"input_tokens":950,"output_tokens":341,"total_tokens":1291}}
3894
3895data: {"event":"message","content":"化","usage_metadata":{"input_tokens":950,"output_tokens":342,"total_tokens":1292}}
3896
3897data: {"event":"message","content":"型","usage_metadata":{"input_tokens":950,"output_tokens":343,"total_tokens":1293}}
3898
3899data: {"event":"message","content":"モデル","usage_metadata":{"input_tokens":950,"output_tokens":344,"total_tokens":1294}}
3900
3901data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":345,"total_tokens":1295}}
3902
3903data: {"event":"message","content":"データ","usage_metadata":{"input_tokens":950,"output_tokens":346,"total_tokens":1296}}
3904
3905data: {"event":"message","content":"処理","usage_metadata":{"input_tokens":950,"output_tokens":347,"total_tokens":1297}}
3906
3907data: {"event":"message","content":"フロー","usage_metadata":{"input_tokens":950,"output_tokens":348,"total_tokens":1298}}
3908
3909data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":349,"total_tokens":1299}}
3910
3911data: {"event":"message","content":"Knowledge","usage_metadata":{"input_tokens":950,"output_tokens":350,"total_tokens":1300}}
3912
3913data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":351,"total_tokens":1301}}
3914
3915data: {"event":"message","content":"Layer","usage_metadata":{"input_tokens":950,"output_tokens":352,"total_tokens":1302}}
3916
3917data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":353,"total_tokens":1303}}
3918
3919data: {"event":"message","content":"Agent","usage_metadata":{"input_tokens":950,"output_tokens":354,"total_tokens":1304}}
3920
3921data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":355,"total_tokens":1305}}
3922
3923data: {"event":"message","content":"Tools","usage_metadata":{"input_tokens":950,"output_tokens":356,"total_tokens":1306}}
3924
3925data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":357,"total_tokens":1307}}
3926
3927data: {"event":"message","content":"各","usage_metadata":{"input_tokens":950,"output_tokens":358,"total_tokens":1308}}
3928
3929data: {"event":"message","content":"業務","usage_metadata":{"input_tokens":950,"output_tokens":359,"total_tokens":1309}}
3930
3931data: {"event":"message","content":"課題","usage_metadata":{"input_tokens":950,"output_tokens":360,"total_tokens":1310}}
3932
3933data: {"event":"message","content":"に","usage_metadata":{"input_tokens":950,"output_tokens":361,"total_tokens":1311}}
3934
3935data: {"event":"message","content":"応","usage_metadata":{"input_tokens":950,"output_tokens":362,"total_tokens":1312}}
3936
3937data: {"event":"message","content":"じ","usage_metadata":{"input_tokens":950,"output_tokens":363,"total_tokens":1313}}
3938
3939data: {"event":"message","content":"た","usage_metadata":{"input_tokens":950,"output_tokens":364,"total_tokens":1314}}
3940
3941data: {"event":"message","content":"Business","usage_metadata":{"input_tokens":950,"output_tokens":365,"total_tokens":1315}}
3942
3943data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":366,"total_tokens":1316}}
3944
3945data: {"event":"message","content":"Logic","usage_metadata":{"input_tokens":950,"output_tokens":367,"total_tokens":1317}}
3946
3947data: {"event":"message","content":"など","usage_metadata":{"input_tokens":950,"output_tokens":368,"total_tokens":1318}}
3948
3949data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":369,"total_tokens":1319}}
3950
3951data: {"event":"message","content":"技術","usage_metadata":{"input_tokens":950,"output_tokens":370,"total_tokens":1320}}
3952
3953data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":371,"total_tokens":1321}}
3954
3955data: {"event":"message","content":"構築","usage_metadata":{"input_tokens":950,"output_tokens":372,"total_tokens":1322}}
3956
3957data: {"event":"message","content":"し","usage_metadata":{"input_tokens":950,"output_tokens":373,"total_tokens":1323}}
3958
3959data: {"event":"message","content":"てい","usage_metadata":{"input_tokens":950,"output_tokens":374,"total_tokens":1324}}
3960
3961data: {"event":"message","content":"ます","usage_metadata":{"input_tokens":950,"output_tokens":375,"total_tokens":1325}}
3962
3963data: {"event":"message","content":"。","usage_metadata":{"input_tokens":950,"output_tokens":376,"total_tokens":1326}}
3964
3965data: {"event":"message","content":"\\n\\n","usage_metadata":{"input_tokens":950,"output_tokens":377,"total_tokens":1327}}
3966
3967data: {"event":"message","content":"こうした","usage_metadata":{"input_tokens":950,"output_tokens":378,"total_tokens":1328}}
3968
3969data: {"event":"message","content":"技術","usage_metadata":{"input_tokens":950,"output_tokens":379,"total_tokens":1329}}
3970
3971data: {"event":"message","content":"基盤","usage_metadata":{"input_tokens":950,"output_tokens":380,"total_tokens":1330}}
3972
3973data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":381,"total_tokens":1331}}
3974
3975data: {"event":"message","content":"も","usage_metadata":{"input_tokens":950,"output_tokens":382,"total_tokens":1332}}
3976
3977data: {"event":"message","content":"と","usage_metadata":{"input_tokens":950,"output_tokens":383,"total_tokens":1333}}
3978
3979data: {"event":"message","content":"に","usage_metadata":{"input_tokens":950,"output_tokens":384,"total_tokens":1334}}
3980
3981data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":385,"total_tokens":1335}}
3982
3983data: {"event":"message","content":"React","usage_metadata":{"input_tokens":950,"output_tokens":386,"total_tokens":1336}}
3984
3985data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":387,"total_tokens":1337}}
3986
3987data: {"event":"message","content":"Plus","usage_metadata":{"input_tokens":950,"output_tokens":388,"total_tokens":1338}}
3988
3989data: {"event":"message","content":"では","usage_metadata":{"input_tokens":950,"output_tokens":389,"total_tokens":1339}}
3990
3991data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":390,"total_tokens":1340}}
3992
3993data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":391,"total_tokens":1341}}
3994
3995data: {"event":"message","content":"AppOS","usage_metadata":{"input_tokens":950,"output_tokens":392,"total_tokens":1342}}
3996
3997data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":393,"total_tokens":1343}}
3998
3999data: {"event":"message","content":"BabelTalk","usage_metadata":{"input_tokens":950,"output_tokens":394,"total_tokens":1344}}
4000
4001data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":395,"total_tokens":1345}}
4002
4003data: {"event":"message","content":"TFA","usage_metadata":{"input_tokens":950,"output_tokens":396,"total_tokens":1346}}
4004
4005data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":397,"total_tokens":1347}}
4006
4007data: {"event":"message","content":"Scoring","usage_metadata":{"input_tokens":950,"output_tokens":398,"total_tokens":1348}}
4008
4009data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":399,"total_tokens":1349}}
4010
4011data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":400,"total_tokens":1350}
4011}
4012
4013data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":401,"total_tokens":1351}}
4014
4015data: {"event":"message","content":"Hodai","usage_metadata":{"input_tokens":950,"output_tokens":402,"total_tokens":1352}}
4016
4017data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":403,"total_tokens":1353}}
4018
4019data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":404,"total_tokens":1354}}
4020
4021data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":405,"total_tokens":1355}}
4022
4023data: {"event":"message","content":"Konbini","usage_metadata":{"input_tokens":950,"output_tokens":406,"total_tokens":1356}}
4024
4025data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":407,"total_tokens":1357}}
4026
4027data: {"event":"message","content":"BrSE.ai","usage_metadata":{"input_tokens":950,"output_tokens":408,"total_tokens":1358}}
4028
4029data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":409,"total_tokens":1359}}
4030
4031data: {"event":"message","content":"GenSlide.jp","usage_metadata":{"input_tokens":950,"output_tokens":410,"total_tokens":1360}}
4032
4033data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":411,"total_tokens":1361}}
4034
4035data: {"event":"message","content":"Mamori","usage_metadata":{"input_tokens":950,"output_tokens":412,"total_tokens":1362}}
4036
4037data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":413,"total_tokens":1363}}
4038
4039data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":414,"total_tokens":1364}}
4040
4041data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":415,"total_tokens":1365}}
4042
4043data: {"event":"message","content":"など","usage_metadata":{"input_tokens":950,"output_tokens":416,"total_tokens":1366}}
4044
4045data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":417,"total_tokens":1367}}
4046
4047data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":418,"total_tokens":1368}}
4048
4049data: {"event":"message","content":"プロダクト","usage_metadata":{"input_tokens":950,"output_tokens":419,"total_tokens":1369}}
4050
4051data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":420,"total_tokens":1370}}
4052
4053data: {"event":"message","content":"開発","usage_metadata":{"input_tokens":950,"output_tokens":421,"total_tokens":1371}}
4054
4055data: {"event":"message","content":"し","usage_metadata":{"input_tokens":950,"output_tokens":422,"total_tokens":1372}}
4056
4057data: {"event":"message","content":"てい","usage_metadata":{"input_tokens":950,"output_tokens":423,"total_tokens":1373}}
4058
4059data: {"event":"message","content":"ます","usage_metadata":{"input_tokens":950,"output_tokens":424,"total_tokens":1374}}
4060
4061data: {"event":"message","content":"。","usage_metadata":{"input_tokens":950,"output_tokens":425,"total_tokens":1375}}
4062
4063data: {"event":"message","content":"一部","usage_metadata":{"input_tokens":950,"output_tokens":426,"total_tokens":1376}}
4064
4065data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":427,"total_tokens":1377}}
4066
4067data: {"event":"message","content":"プロダクト","usage_metadata":{"input_tokens":950,"output_tokens":428,"total_tokens":1378}}
4068
4069data: {"event":"message","content":"について","usage_metadata":{"input_tokens":950,"output_tokens":429,"total_tokens":1379}}
4070
4071data: {"event":"message","content":"は","usage_metadata":{"input_tokens":950,"output_tokens":430,"total_tokens":1380}}
4072
4073data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":431,"total_tokens":1381}}
4074
4075data: {"event":"message","content":"現在","usage_metadata":{"input_tokens":950,"output_tokens":432,"total_tokens":1382}}
4076
4077data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":433,"total_tokens":1383}}
4078
4079data: {"event":"message","content":"日本","usage_metadata":{"input_tokens":950,"output_tokens":434,"total_tokens":1384}}
4080
4081data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":435,"total_tokens":1385}}
4082
4083data: {"event":"message","content":"お客様","usage_metadata":{"input_tokens":950,"output_tokens":436,"total_tokens":1386}}
4084
4085data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":437,"total_tokens":1387}}
4086
4087data: {"event":"message","content":"プロダクト","usage_metadata":{"input_tokens":950,"output_tokens":438,"total_tokens":1388}}
4088
4089data: {"event":"message","content":"エコ","usage_metadata":{"input_tokens":950,"output_tokens":439,"total_tokens":1389}}
4090
4091data: {"event":"message","content":"システム","usage_metadata":{"input_tokens":950,"output_tokens":440,"total_tokens":1390}}
4092
4093data: {"event":"message","content":"へ","usage_metadata":{"input_tokens":950,"output_tokens":441,"total_tokens":1391}}
4094
4095data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":442,"total_tokens":1392}}
4096
4097data: {"event":"message","content":"組み込み","usage_metadata":{"input_tokens":950,"output_tokens":443,"total_tokens":1393}}
4098
4099data: {"event":"message","content":"に","usage_metadata":{"input_tokens":950,"output_tokens":444,"total_tokens":1394}}
4100
4101data: {"event":"message","content":"向け","usage_metadata":{"input_tokens":950,"output_tokens":445,"total_tokens":1395}}
4102
4103data: {"event":"message","content":"た","usage_metadata":{"input_tokens":950,"output_tokens":446,"total_tokens":1396}}
4104
4105data: {"event":"message","content":"検証","usage_metadata":{"input_tokens":950,"output_tokens":447,"total_tokens":1397}}
4106
4107data: {"event":"message","content":"が","usage_metadata":{"input_tokens":950,"output_tokens":448,"total_tokens":1398}}
4108
4109data: {"event":"message","content":"進","usage_metadata":{"input_tokens":950,"output_tokens":449,"total_tokens":1399}}
4110
4111data: {"event":"message","content":"め","usage_metadata":{"input_tokens":950,"output_tokens":450,"total_tokens":1400}}
4112
4113data: {"event":"message","content":"ら","usage_metadata":{"input_tokens":950,"output_tokens":451,"total_tokens":1401}}
4114
4115data: {"event":"message","content":"れ","usage_metadata":{"input_tokens":950,"output_tokens":452,"total_tokens":1402}}
4116
4117data: {"event":"message","content":"て","usage_metadata":{"input_tokens":950,"output_tokens":453,"total_tokens":1403}}
4118
4119data: {"event":"message","content":"おり","usage_metadata":{"input_tokens":950,"output_tokens":454,"total_tokens":1404}}
4120
4121data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":455,"total_tokens":1405}}
4122
4123data: {"event":"message","content":"セット","usage_metadata":{"input_tokens":950,"output_tokens":456,"total_tokens":1406}}
4124
4125data: {"event":"message","content":"販売","usage_metadata":{"input_tokens":950,"output_tokens":457,"total_tokens":1407}}
4126
4127data: {"event":"message","content":"や","usage_metadata":{"input_tokens":950,"output_tokens":458,"total_tokens":1408}}
4128
4129data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":459,"total_tokens":1409}}
4130
4131data: {"event":"message","content":"お客様","usage_metadata":{"input_tokens":950,"output_tokens":460,"total_tokens":1410}}
4132
4133data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":461,"total_tokens":1411}}
4134
4135data: {"event":"message","content":"エンド","usage_metadata":{"input_tokens":950,"output_tokens":462,"total_tokens":1412}}
4136
4137data: {"event":"message","content":"ユーザー","usage_metadata":{"input_tokens":950,"output_tokens":463,"total_tokens":1413}}
4138
4139data: {"event":"message","content":"向け","usage_metadata":{"input_tokens":950,"output_tokens":464,"total_tokens":1414}}
4140
4141data: {"event":"message","content":"ソリューション","usage_metadata":{"input_tokens":950,"output_tokens":465,"total_tokens":1415}}
4142
4143data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":466,"total_tokens":1416}}
4144
4145data: {"event":"message","content":"一部","usage_metadata":{"input_tokens":950,"output_tokens":467,"total_tokens":1417}}
4146
4147data: {"event":"message","content":"として","usage_metadata":{"input_tokens":950,"output_tokens":468,"total_tokens":1418}}
4148
4149data: {"event":"message","content":"提供","usage_metadata":{"input_tokens":950,"output_tokens":469,"total_tokens":1419}}
4150
4151data: {"event":"message","content":"する","usage_metadata":{"input_tokens":950,"output_tokens":470,"total_tokens":1420}}
4152
4153data: {"event":"message","content":"ビジネス","usage_metadata":{"input_tokens":950,"output_tokens":471,"total_tokens":1421}}
4154
4155data: {"event":"message","content":"モデル","usage_metadata":{"input_tokens":950,"output_tokens":472,"total_tokens":1422}}
4156
4157data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":473,"total_tokens":1423}}
4158
4159data: {"event":"message","content":"目指","usage_metadata":{"input_tokens":950,"output_tokens":474,"total_tokens":1424}}
4160
4161data: {"event":"message","content":"し","usage_metadata":{"input_tokens":950,"output_tokens":475,"total_tokens":1425}
4161}
4162
4163data: {"event":"message","content":"てい","usage_metadata":{"input_tokens":950,"output_tokens":476,"total_tokens":1426}}
4164
4165data: {"event":"message","content":"ます","usage_metadata":{"input_tokens":950,"output_tokens":477,"total_tokens":1427}}
4166
4167data: {"event":"message","content":"。","usage_metadata":{"input_tokens":950,"output_tokens":478,"total_tokens":1428}}
4168
4169data: {"event":"message","content":"\\n\\n","usage_metadata":{"input_tokens":950,"output_tokens":479,"total_tokens":1429}}
4170
4171data: {"event":"message","content":"また","usage_metadata":{"input_tokens":950,"output_tokens":480,"total_tokens":1430}}
4172
4173data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":481,"total_tokens":1431}}
4174
4175data: {"event":"message","content":"React","usage_metadata":{"input_tokens":950,"output_tokens":482,"total_tokens":1432}}
4176
4177data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":483,"total_tokens":1433}}
4178
4179data: {"event":"message","content":"Plus","usage_metadata":{"input_tokens":950,"output_tokens":484,"total_tokens":1434}}
4180
4181data: {"event":"message","content":"では","usage_metadata":{"input_tokens":950,"output_tokens":485,"total_tokens":1435}}
4182
4183data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":486,"total_tokens":1436}}
4184
4185data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":487,"total_tokens":1437}}
4186
4187data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":488,"total_tokens":1438}}
4188
4189data: {"event":"message","content":"プロダクト","usage_metadata":{"input_tokens":950,"output_tokens":489,"total_tokens":1439}}
4190
4191data: {"event":"message","content":"開発","usage_metadata":{"input_tokens":950,"output_tokens":490,"total_tokens":1440}}
4192
4193data: {"event":"message","content":"だけ","usage_metadata":{"input_tokens":950,"output_tokens":491,"total_tokens":1441}}
4194
4195data: {"event":"message","content":"で","usage_metadata":{"input_tokens":950,"output_tokens":492,"total_tokens":1442}}
4196
4197data: {"event":"message","content":"なく","usage_metadata":{"input_tokens":950,"output_tokens":493,"total_tokens":1443}}
4198
4199data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":494,"total_tokens":1444}}
4200
4201data: {"event":"message","content":"開発","usage_metadata":{"input_tokens":950,"output_tokens":495,"total_tokens":1445}}
4202
4203data: {"event":"message","content":"・","usage_metadata":{"input_tokens":950,"output_tokens":496,"total_tokens":1446}}
4204
4205data: {"event":"message","content":"運用","usage_metadata":{"input_tokens":950,"output_tokens":497,"total_tokens":1447}}
4206
4207data: {"event":"message","content":"・","usage_metadata":{"input_tokens":950,"output_tokens":498,"total_tokens":1448}}
4208
4209data: {"event":"message","content":"営業","usage_metadata":{"input_tokens":950,"output_tokens":499,"total_tokens":1449}}
4210
4211data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":500,"total_tokens":1450}}
4212
4213data: {"event":"message","content":"含む","usage_metadata":{"input_tokens":950,"output_tokens":501,"total_tokens":1451}}
4214
4215data: {"event":"message","content":"社内","usage_metadata":{"input_tokens":950,"output_tokens":502,"total_tokens":1452}}
4216
4217data: {"event":"message","content":"業務","usage_metadata":{"input_tokens":950,"output_tokens":503,"total_tokens":1453}}
4218
4219data: {"event":"message","content":"全体","usage_metadata":{"input_tokens":950,"output_tokens":504,"total_tokens":1454}}
4220
4221data: {"event":"message","content":"に","usage_metadata":{"input_tokens":950,"output_tokens":505,"total_tokens":1455}}
4222
4223data: {"event":"message","content":"活用","usage_metadata":{"input_tokens":950,"output_tokens":506,"total_tokens":1456}}
4224
4225data: {"event":"message","content":"し","usage_metadata":{"input_tokens":950,"output_tokens":507,"total_tokens":1457}}
4226
4227data: {"event":"message","content":"てい","usage_metadata":{"input_tokens":950,"output_tokens":508,"total_tokens":1458}}
4228
4229data: {"event":"message","content":"ます","usage_metadata":{"input_tokens":950,"output_tokens":509,"total_tokens":1459}}
4230
4231data: {"event":"message","content":"。","usage_metadata":{"input_tokens":950,"output_tokens":510,"total_tokens":1460}}
4232
4233data: {"event":"message","content":"技術","usage_metadata":{"input_tokens":950,"output_tokens":511,"total_tokens":1461}}
4234
4235data: {"event":"message","content":"チーム","usage_metadata":{"input_tokens":950,"output_tokens":512,"total_tokens":1462}}
4236
4237data: {"event":"message","content":"では","usage_metadata":{"input_tokens":950,"output_tokens":513,"total_tokens":1463}}
4238
4239data: {"event":"message","content":"日常","usage_metadata":{"input_tokens":950,"output_tokens":514,"total_tokens":1464}}
4240
4241data: {"event":"message","content":"業務","usage_metadata":{"input_tokens":950,"output_tokens":515,"total_tokens":1465}}
4242
4243data: {"event":"message","content":"に","usage_metadata":{"input_tokens":950,"output_tokens":516,"total_tokens":1466}}
4244
4245data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":517,"total_tokens":1467}}
4246
4247data: {"event":"message","content":"BrSE.ai","usage_metadata":{"input_tokens":950,"output_tokens":518,"total_tokens":1468}}
4248
4249data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":519,"total_tokens":1469}}
4250
4251data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":520,"total_tokens":1470}}
4252
4253data: {"event":"message","content":"活用","usage_metadata":{"input_tokens":950,"output_tokens":521,"total_tokens":1471}}
4254
4255data: {"event":"message","content":"し","usage_metadata":{"input_tokens":950,"output_tokens":522,"total_tokens":1472}}
4256
4257data: {"event":"message","content":"て","usage_metadata":{"input_tokens":950,"output_tokens":523,"total_tokens":1473}}
4258
4259data: {"event":"message","content":"いる","usage_metadata":{"input_tokens":950,"output_tokens":524,"total_tokens":1474}}
4260
4261data: {"event":"message","content":"ほか","usage_metadata":{"input_tokens":950,"output_tokens":525,"total_tokens":1475}}
4262
4263data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":526,"total_tokens":1476}}
4264
4265data: {"event":"message","content":"運用","usage_metadata":{"input_tokens":950,"output_tokens":527,"total_tokens":1477}}
4266
4267data: {"event":"message","content":"・","usage_metadata":{"input_tokens":950,"output_tokens":528,"total_tokens":1478}}
4268
4269data: {"event":"message","content":"営業","usage_metadata":{"input_tokens":950,"output_tokens":529,"total_tokens":1479}}
4270
4271data: {"event":"message","content":"部門","usage_metadata":{"input_tokens":950,"output_tokens":530,"total_tokens":1480}}
4272
4273data: {"event":"message","content":"では","usage_metadata":{"input_tokens":950,"output_tokens":531,"total_tokens":1481}}
4274
4275data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":532,"total_tokens":1482}}
4276
4277data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":533,"total_tokens":1483}}
4278
4279data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":534,"total_tokens":1484}}
4280
4281data: {"event":"message","content":"Hodai","usage_metadata":{"input_tokens":950,"output_tokens":535,"total_tokens":1485}}
4282
4283data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":536,"total_tokens":1486}}
4284
4285data: {"event":"message","content":"Customer","usage_metadata":{"input_tokens":950,"output_tokens":537,"total_tokens":1487}}
4286
4287data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":538,"total_tokens":1488}}
4288
4289data: {"event":"message","content":"Intelligence","usage_metadata":{"input_tokens":950,"output_tokens":539,"total_tokens":1489}}
4290
4291data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":540,"total_tokens":1490}}
4292
4293data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":541,"total_tokens":1491}}
4294
4295data: {"event":"message","content":"はじめ","usage_metadata":{"input_tokens":950,"output_tokens":542,"total_tokens":1492}}
4296
4297data: {"event":"message","content":"と","usage_metadata":{"input_tokens":950,"output_tokens":543,"total_tokens":1493}}
4298
4299data: {"event":"message","content":"する","usage_metadata":{"input_tokens":950,"output_tokens":544,"total_tokens":1494}}
4300
4301data: {"event":"message","content":"複数","usage_metadata":{"input_tokens":950,"output_tokens":545,"total_tokens":1495}}
4302
4303data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":546,"total_tokens":1496}}
4304
4305data: {"event":"message","content":"社内","usage_metadata":{"input_tokens":950,"output_tokens":547,"total_tokens":1497}}
4306
4307data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":548,"total_tokens":1498}}
4308
4309data: {"event":"message","content":"ツール","usage_metadata":{"input_tokens":950,"output_tokens":549,"total_tokens":1499}}
4310
4311data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":550,"total_tokens":1500}}
4312
4313data: {"event":"message","content":"活用","usage_metadata":{"input_tokens":950,"output_tokens":551,"total_tokens":1501}}
4314
4315data: {"event":"message","content":"し","usage_metadata":{"input_tokens":950,"output_tokens":552,"total_tokens":1502}}
4316
4317data: {"event":"message","content":"てい","usage_metadata":{"input_tokens":950,"output_tokens":553,"total_tokens":1503}}
4318
4319data: {"event":"message","content":"ます","usage_metadata":{"input_tokens":950,"output_tokens":554,"total_tokens":1504}}
4320
4321data: {"event":"message","content":"。","usage_metadata":{"input_tokens":950,"output_tokens":555,"total_tokens":1505}}
4322
4323data: {"event":"message","content":"これ","usage_metadata":{"input_tokens":950,"output_tokens":556,"total_tokens":1506}}
4324
4325data: {"event":"message","content":"により","usage_metadata":{"input_tokens":950,"output_tokens":557,"total_tokens":1507}}
4326
4327data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":558,"total_tokens":1508}}
4328
4329data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":559,"total_tokens":1509}}
4330
4331data: {"event":"message","content":"プロダクト","usage_metadata":{"input_tokens":950,"output_tokens":560,"total_tokens":1510}}
4332
4333data: {"event":"message","content":"および","usage_metadata":{"input_tokens":950,"output_tokens":561,"total_tokens":1511}}
4334
4335data: {"event":"message","content":"技術","usage_metadata":{"input_tokens":950,"output_tokens":562,"total_tokens":1512}}
4336
4337data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":563,"total_tokens":1513}}
4338
4339data: {"event":"message","content":"市場","usage_metadata":{"input_tokens":950,"output_tokens":564,"total_tokens":1514}}
4340
4341data: {"event":"message","content":"へ","usage_metadata":{"input_tokens":950,"output_tokens":565,"total_tokens":1515}}
4342
4343data: {"event":"message","content":"提供","usage_metadata":{"input_tokens":950,"output_tokens":566,"total_tokens":1516}}
4344
4345data: {"event":"message","content":"する","usage_metadata":{"input_tokens":950,"output_tokens":567,"total_tokens":1517}}
4346
4347data: {"event":"message","content":"前","usage_metadata":{"input_tokens":950,"output_tokens":568,"total_tokens":1518}}
4348
4349data: {"event":"message","content":"に","usage_metadata":{"input_tokens":950,"output_tokens":569,"total_tokens":1519}}
4350
4351data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":570,"total_tokens":1520}}
4352
4353data: {"event":"message","content":"自社","usage_metadata":{"input_tokens":950,"output_tokens":571,"total_tokens":1521}}
4354
4355data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":572,"total_tokens":1522}}
4356
4357data: {"event":"message","content":"実際","usage_metadata":{"input_tokens":950,"output_tokens":573,"total_tokens":1523}}
4358
4359data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":574,"total_tokens":1524}}
4360
4361data: {"event":"message","content":"業務","usage_metadata":{"input_tokens":950,"output_tokens":575,"total_tokens":1525}}
4362
4363data: {"event":"message","content":"環境","usage_metadata":{"input_tokens":950,"output_tokens":576,"total_tokens":1526}}
4364
4365data: {"event":"message","content":"において","usage_metadata":{"input_tokens":950,"output_tokens":577,"total_tokens":1527}}
4366
4367data: {"event":"message","content":"検証","usage_metadata":{"input_tokens":950,"output_tokens":578,"total_tokens":1528}}
4368
4369data: {"event":"message","content":"し","usage_metadata":{"input_tokens":950,"output_tokens":579,"total_tokens":1529}}
4370
4371data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":580,"total_tokens":1530}}
4372
4373data: {"event":"message","content":"継続","usage_metadata":{"input_tokens":950,"output_tokens":581,"total_tokens":1531}}
4374
4375data: {"event":"message","content":"的","usage_metadata":{"input_tokens":950,"output_tokens":582,"total_tokens":1532}}
4376
4377data: {"event":"message","content":"に","usage_metadata":{"input_tokens":950,"output_tokens":583,"total_tokens":1533}}
4378
4379data: {"event":"message","content":"改善","usage_metadata":{"input_tokens":950,"output_tokens":584,"total_tokens":1534}}
4380
4381data: {"event":"message","content":"・","usage_metadata":{"input_tokens":950,"output_tokens":585,"total_tokens":1535}}
4382
4383data: {"event":"message","content":"完成","usage_metadata":{"input_tokens":950,"output_tokens":586,"total_tokens":1536}}
4384
4385data: {"event":"message","content":"度","usage_metadata":{"input_tokens":950,"output_tokens":587,"total_tokens":1537}}
4386
4387data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":588,"total_tokens":1538}}
4388
4389data: {"event":"message","content":"高め","usage_metadata":{"input_tokens":950,"output_tokens":589,"total_tokens":1539}}
4390
4391data: {"event":"message","content":"てい","usage_metadata":{"input_tokens":950,"output_tokens":590,"total_tokens":1540}}
4392
4393data: {"event":"message","content":"ます","usage_metadata":{"input_tokens":950,"output_tokens":591,"total_tokens":1541}}
4394
4395data: {"event":"message","content":"。","usage_metadata":{"input_tokens":950,"output_tokens":592,"total_tokens":1542}}
4396
4397data: {"event":"message","content":"\\n\\n","usage_metadata":{"input_tokens":950,"output_tokens":593,"total_tokens":1543}}
4398
4399data: {"event":"message","content":"React","usage_metadata":{"input_tokens":950,"output_tokens":594,"total_tokens":1544}}
4400
4401data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":595,"total_tokens":1545}}
4402
4403data: {"event":"message","content":"Plus","usage_metadata":{"input_tokens":950,"output_tokens":596,"total_tokens":1546}}
4404
4405data: {"event":"message","content":"は","usage_metadata":{"input_tokens":950,"output_tokens":597,"total_tokens":1547}}
4406
4407data: {"event":"message","content":"現在","usage_metadata":{"input_tokens":950,"output_tokens":598,"total_tokens":1548}}
4408
4409data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":599,"total_tokens":1549}}
4410
4411data: {"event":"message","content":"日本","usage_metadata":{"input_tokens":950,"output_tokens":600,"total_tokens":1550}}
4412
4413data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":601,"total_tokens":1551}}
4414
4415data: {"event":"message","content":"大手","usage_metadata":{"input_tokens":950,"output_tokens":602,"total_tokens":1552}}
4416
4417data: {"event":"message","content":"企業","usage_metadata":{"input_tokens":950,"output_tokens":603,"total_tokens":1553}}
4418
4419data: {"event":"message","content":"および","usage_metadata":{"input_tokens":950,"output_tokens":604,"total_tokens":1554}}
4420
4421data: {"event":"message","content":"主要","usage_metadata":{"input_tokens":950,"output_tokens":605,"total_tokens":1555}}
4422
4423data: {"event":"message","content":"金融","usage_metadata":{"input_tokens":950,"output_tokens":606,"total_tokens":1556}}
4424
4425data: {"event":"message","content":"機関","usage_metadata":{"input_tokens":950,"output_tokens":607,"total_tokens":1557}}
4426
4427data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":608,"total_tokens":1558}}
4428
4429data: {"event":"message","conten
4429t":"含む","usage_metadata":{"input_tokens":950,"output_tokens":609,"total_tokens":1559}}
4430
4431data: {"event":"message","content":"お客様","usage_metadata":{"input_tokens":950,"output_tokens":610,"total_tokens":1560}}
4432
4433data: {"event":"message","content":"と","usage_metadata":{"input_tokens":950,"output_tokens":611,"total_tokens":1561}}
4434
4435data: {"event":"message","content":"取引","usage_metadata":{"input_tokens":950,"output_tokens":612,"total_tokens":1562}}
4436
4437data: {"event":"message","content":"し","usage_metadata":{"input_tokens":950,"output_tokens":613,"total_tokens":1563}}
4438
4439data: {"event":"message","content":"て","usage_metadata":{"input_tokens":950,"output_tokens":614,"total_tokens":1564}}
4440
4441data: {"event":"message","content":"おり","usage_metadata":{"input_tokens":950,"output_tokens":615,"total_tokens":1565}}
4442
4443data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":616,"total_tokens":1566}}
4444
4445data: {"event":"message","content":"品質","usage_metadata":{"input_tokens":950,"output_tokens":617,"total_tokens":1567}}
4446
4447data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":618,"total_tokens":1568}}
4448
4449data: {"event":"message","content":"セキュリティ","usage_metadata":{"input_tokens":950,"output_tokens":619,"total_tokens":1569}}
4450
4451data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":620,"total_tokens":1570}}
4452
4453data: {"event":"message","content":"プロセス","usage_metadata":{"input_tokens":950,"output_tokens":621,"total_tokens":1571}}
4454
4455data: {"event":"message","content":"に対する","usage_metadata":{"input_tokens":950,"output_tokens":622,"total_tokens":1572}}
4456
4457data: {"event":"message","content":"特に","usage_metadata":{"input_tokens":950,"output_tokens":623,"total_tokens":1573}}
4458
4459data: {"event":"message","content":"高い","usage_metadata":{"input_tokens":950,"output_tokens":624,"total_tokens":1574}}
4460
4461data: {"event":"message","content":"要求","usage_metadata":{"input_tokens":950,"output_tokens":625,"total_tokens":1575}}
4462
4463data: {"event":"message","content":"水準","usage_metadata":{"input_tokens":950,"output_tokens":626,"total_tokens":1576}}
4464
4465data: {"event":"message","content":"に","usage_metadata":{"input_tokens":950,"output_tokens":627,"total_tokens":1577}}
4466
4467data: {"event":"message","content":"対応","usage_metadata":{"input_tokens":950,"output_tokens":628,"total_tokens":1578}}
4468
4469data: {"event":"message","content":"し","usage_metadata":{"input_tokens":950,"output_tokens":629,"total_tokens":1579}}
4470
4471data: {"event":"message","content":"てい","usage_metadata":{"input_tokens":950,"output_tokens":630,"total_tokens":1580}}
4472
4473data: {"event":"message","content":"ます","usage_metadata":{"input_tokens":950,"output_tokens":631,"total_tokens":1581}}
4474
4475data: {"event":"message","content":"。","usage_metadata":{"input_tokens":950,"output_tokens":632,"total_tokens":1582}}
4476
4477data: {"event":"message","content":"当社","usage_metadata":{"input_tokens":950,"output_tokens":633,"total_tokens":1583}}
4478
4479data: {"event":"message","content":"は","usage_metadata":{"input_tokens":950,"output_tokens":634,"total_tokens":1584}}
4480
4481data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":635,"total_tokens":1585}}
4482
4483data: {"event":"message","content":"Japanese","usage_metadata":{"input_tokens":950,"output_tokens":636,"total_tokens":1586}}
4484
4485data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":637,"total_tokens":1587}}
4486
4487data: {"event":"message","content":"Business","usage_metadata":{"input_tokens":950,"output_tokens":638,"total_tokens":1588}}
4488
4489data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":639,"total_tokens":1589}}
4490
4491data: {"event":"message","content":"Style","usage_metadata":{"input_tokens":950,"output_tokens":640,"total_tokens":1590}}
4492
4493data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":641,"total_tokens":1591}}
4494
4495data: {"event":"message","content":"に","usage_metadata":{"input_tokens":950,"output_tokens":642,"total_tokens":1592}}
4496
4497data: {"event":"message","content":"基","usage_metadata":{"input_tokens":950,"output_tokens":643,"total_tokens":1593}}
4498
4499data: {"event":"message","content":"づ","usage_metadata":{"input_tokens":950,"output_tokens":644,"total_tokens":1594}}
4500
4501data: {"event":"message","content":"い","usage_metadata":{"input_tokens":950,"output_tokens":645,"total_tokens":1595}}
4502
4503data: {"event":"message","content":"た","usage_metadata":{"input_tokens":950,"output_tokens":646,"total_tokens":1596}}
4504
4505data: {"event":"message","content":"事業","usage_metadata":{"input_tokens":950,"output_tokens":647,"total_tokens":1597}}
4506
4507data: {"event":"message","content":"運営","usage_metadata":{"input_tokens":950,"output_tokens":648,"total_tokens":1598}}
4508
4509data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":649,"total_tokens":1599}}
4510
4511data: {"event":"message","content":"行い","usage_metadata":{"input_tokens":950,"output_tokens":650,"total_tokens":1600}}
4512
4513data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":651,"total_tokens":1601}}
4514
4515data: {"event":"message","content":"2022","usage_metadata":{"input_tokens":950,"output_tokens":652,"total_tokens":1602}}
4516
4517data: {"event":"message","content":"å¹´","usage_metadata":{"input_tokens":950,"output_tokens":653,"total_tokens":1603}}
4518
4519data: {"event":"message","content":"より","usage_metadata":{"input_tokens":950,"output_tokens":654,"total_tokens":1604}}
4520
4521data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":655,"total_tokens":1605}}
4522
4523data: {"event":"message","content":"ISO","usage_metadata":{"input_tokens":950,"output_tokens":656,"total_tokens":1606}
4523}
4524
4525data: {"event":"message","content":"/","usage_metadata":{"input_tokens":950,"output_tokens":657,"total_tokens":1607}}
4526
4527data: {"event":"message","content":"IEC","usage_metadata":{"input_tokens":950,"output_tokens":658,"total_tokens":1608}}
4528
4529data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":659,"total_tokens":1609}}
4530
4531data: {"event":"message","content":"27001","usage_metadata":{"input_tokens":950,"output_tokens":660,"total_tokens":1610}}
4532
4533data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":661,"total_tokens":1611}}
4534
4535data: {"event":"message","content":"および","usage_metadata":{"input_tokens":950,"output_tokens":662,"total_tokens":1612}}
4536
4537data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":663,"total_tokens":1613}}
4538
4539data: {"event":"message","content":"ISO","usage_metadata":{"input_tokens":950,"output_tokens":664,"total_tokens":1614}}
4540
4541data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":665,"total_tokens":1615}}
4542
4543data: {"event":"message","content":"9001","usage_metadata":{"input_tokens":950,"output_tokens":666,"total_tokens":1616}}
4544
4545data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":667,"total_tokens":1617}}
4546
4547data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":668,"total_tokens":1618}}
4548
4549data: {"event":"message","content":"認証","usage_metadata":{"input_tokens":950,"output_tokens":669,"total_tokens":1619}}
4550
4551data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":670,"total_tokens":1620}}
4552
4553data: {"event":"message","content":"取得","usage_metadata":{"input_tokens":950,"output_tokens":671,"total_tokens":1621}}
4554
4555data: {"event":"message","content":"し","usage_metadata":{"input_tokens":950,"output_tokens":672,"total_tokens":1622}}
4556
4557data: {"event":"message","content":"てい","usage_metadata":{"input_tokens":950,"output_tokens":673,"total_tokens":1623}}
4558
4559data: {"event":"message","content":"ます","usage_metadata":{"input_tokens":950,"output_tokens":674,"total_tokens":1624}}
4560
4561data: {"event":"message","content":"。","usage_metadata":{"input_tokens":950,"output_tokens":675,"total_tokens":1625}}
4562
4563data: {"event":"message","content":"また","usage_metadata":{"input_tokens":950,"output_tokens":676,"total_tokens":1626}}
4564
4565data: {"event":"message","content":"現在","usage_metadata":{"input_tokens":950,"output_tokens":677,"total_tokens":1627}}
4566
4567data: {"event":"message","content":"、","usage_metadata":{"input_tokens":950,"output_tokens":678,"total_tokens":1628}}
4568
4569data: {"event":"message","content":"AI","usage_metadata":{"input_tokens":950,"output_tokens":679,"total_tokens":1629}}
4570
4571data: {"event":"message","content":"マネジメント","usage_metadata":{"input_tokens":950,"output_tokens":680,"total_tokens":1630}}
4572
4573data: {"event":"message","content":"システム","usage_metadata":{"input_tokens":950,"output_tokens":681,"total_tokens":1631}}
4574
4575data: {"event":"message","content":"に関する","usage_metadata":{"input_tokens":950,"output_tokens":682,"total_tokens":1632}}
4576
4577data: {"event":"message","content":"国際","usage_metadata":{"input_tokens":950,"output_tokens":683,"total_tokens":1633}}
4578
4579data: {"event":"message","content":"規格","usage_metadata":{"input_tokens":950,"output_tokens":684,"total_tokens":1634}}
4580
4581data: {"event":"message","content":"で","usage_metadata":{"input_tokens":950,"output_tokens":685,"total_tokens":1635}}
4582
4583data: {"event":"message","content":"ある","usage_metadata":{"input_tokens":950,"output_tokens":686,"total_tokens":1636}}
4584
4585data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":687,"total_tokens":1637}}
4586
4587data: {"event":"message","content":"ISO","usage_metadata":{"input_tokens":950,"output_tokens":688,"total_tokens":1638}}
4588
4589data: {"event":"message","content":"/","usage_metadata":{"input_tokens":950,"output_tokens":689,"total_tokens":1639}}
4590
4591data: {"event":"message","content":"IEC","usage_metadata":{"input_tokens":950,"output_tokens":690,"total_tokens":1640}}
4592
4593data: {"event":"message","content":" ","usage_metadata":{"input_tokens":950,"output_tokens":691,"total_tokens":1641}}
4594
4595data: {"event":"message","content":"42001","usage_metadata":{"input_tokens":950,"output_tokens":692,"total_tokens":1642}}
4596
4597data: {"event":"message","content":"**","usage_metadata":{"input_tokens":950,"output_tokens":693,"total_tokens":1643}}
4598
4599data: {"event":"message","content":"の","usage_metadata":{"input_tokens":950,"output_tokens":694,"total_tokens":1644}}
4600
4601data: {"event":"message","content":"認証","usage_metadata":{"input_tokens":950,"output_tokens":695,"total_tokens":1645}}
4602
4603data: {"event":"message","content":"取得","usage_metadata":{"input_tokens":950,"output_tokens":696,"total_tokens":1646}}
4604
4605data: {"event":"message","content":"に","usage_metadata":{"input_tokens":950,"output_tokens":697,"total_tokens":1647}}
4606
4607data: {"event":"message","content":"向け","usage_metadata":{"input_tokens":950,"output_tokens":698,"total_tokens":1648}}
4608
4609data: {"event":"message","content":"た","usage_metadata":{"input_tokens":950,"output_tokens":699,"total_tokens":1649}}
4610
4611data: {"event":"message","content":"取り組み","usage_metadata":{"input_tokens":950,"output_tokens":700,"total_tokens":1650}}
4612
4613data: {"event":"message","content":"を","usage_metadata":{"input_tokens":950,"output_tokens":701,"total_tokens":1651}}
4614
4615data: {"event":"message","content":"進","usage_metadata":{"input_tokens":950,"output_tokens":702,"total_tokens":1652}}
4616
4617data: {"event":"message","content":"め","usage_metadata":{"input_tokens":950,"output_tokens":703,"total_tokens":1653}}
4618
4619data: {"event":"message","content":"てい","usage_metadata":{"input_tokens":950,"output_tokens":704,"total_tokens":1654}}
4620
4621data: {"event":"message","content":"ます","usage_metadata":{"input_tokens":950,"output_tokens":705,"total_tokens":1655}}
4622
4623data: {"event":"message","content":"。","usage_metadata":{"input_tokens":950,"output_tokens":706,"total_tokens":1656}}
4624
4625data: {"event":"complete","content":"<|stop|>","usage_metadata":{"input_tokens":950,"output_tokens":707,"total_tokens":1657}}
4626
4627`,"React PlusはどのようにAIを開発に活用しているのか。":`data: {"event": "start", "content": "<|start|>", "usage_metadata": {"input_tokens": 0, "output_tokens": 0, "total_tokens": 0}}
4628
4629data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 0, "output_tokens": 0, "total_tokens": 0}}
4630
4631data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4632
4633data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4634
4635data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4636
4637data: {"event": "message", "content": "React", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4638
4639data: {"event": "message", "content": " Plus", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4640
4641data: {"event": "message", "content": "は", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4642
4643data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4644
4645data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4646
4647data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4648
4649data: {"event": "message", "content": "開", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4650
4651data: {"event": "message", "content": "発", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4652
4653data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4654
4655data: {"event": "message", "content": "中", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4656
4657data: {"event": "message", "content": "æ ¸", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4658
4659data: {"event": "message", "content": "に", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4660
4661data: {"event": "message", "content": "据", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4662
4663data: {"event": "message", "content": "え", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4664
4665data: {"event": "message", "content": "た", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4666
4667data: {"event": "message", "content": "「", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4668
4669data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4670
4671data: {"event": "message", "content": "-N", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4672
4673data: {"event": "message", "content": "ative", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4674
4675data: {"event": "message", "content": "」", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4676
4677data: {"event": "message", "content": "企業", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4678
4679data: {"event": "message", "content": "です", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4680
4681data: {"event": "message", "content": "。", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4682
4683data: {"event": "message", "content": "単", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4684
4685data: {"event": "message", "content": "なる", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4686
4687data: {"event": "message", "content": "ツ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4688
4689data: {"event": "message", "content": "ール", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4690
4691data: {"event": "message", "content": "として", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4692
4693data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4694
4695data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4696
4697data: {"event": "message", "content": "使", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4698
4699data: {"event": "message", "content": "う", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4700
4701data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4702
4703data: {"event": "message", "content": "では", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4704
4705data: {"event": "message", "content": "なく", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4706
4707data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4708
4709data: {"event": "message", "content": "業", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4710
4711data: {"event": "message", "content": "務", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4712
4713data: {"event": "message", "content": "プロ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4714
4715data: {"event": "message", "content": "セ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4716
4717data: {"event": "message", "content": "ス", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4718
4719data: {"event": "message", "content": "や", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4720
4721data: {"event": "message", "content": "シ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4722
4723data: {"event": "message", "content": "ステ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4724
4725data: {"event": "message", "content": "ム", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4726
4727data: {"event": "message", "content": "開", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4728
4729data: {"event": "message", "content": "発", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4730
4731data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4732
4733data: {"event": "message", "content": "あ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4734
4735data: {"event": "message", "content": "ら", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4736
4737data: {"event": "message", "content": "ゆ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4738
4739data: {"event": "message", "content": "る", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4740
4741data: {"event": "message", "content": "段", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4742
4743data: {"event": "message", "content": "階", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4744
4745data: {"event": "message", "content": "に", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4746
4747data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4748
4749data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4750
4751data: {"event": "message", "content": "組", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4752
4753data: {"event": "message", "content": "み", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4754
4755data: {"event": "message", "content": "è¾¼", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4756
4757data: {"event": "message", "content": "ん", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4758
4759data: {"event": "message", "content": "で", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4760
4761data: {"event": "message", "content": "います", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4762
4763data: {"event": "message", "content": "。", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4764
4765data: {"event": "message", "content": "主", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4766
4767data: {"event": "message", "content": "な", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4768
4769data: {"event": "message", "content": "æ´»", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4770
4771data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4772
4773data: {"event": "message", "content": "方法", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4774
4775data: {"event": "message", "content": "は", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4776
4777data: {"event": "message", "content": "以下", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4778
4779data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4780
4781data: {"event": "
4781message", "content": "通", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4782
4783data: {"event": "message", "content": "り", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4784
4785data: {"event": "message", "content": "です", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4786
4787data: {"event": "message", "content": "。\\n\\n", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4788
4789data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4790
4791data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4792
4793data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4794
4795data: {"event": "message", "content": "æ´»", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4796
4797data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4798
4799data: {"event": "message", "content": "した", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4800
4801data: {"event": "message", "content": "ワ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4802
4803data: {"event": "message", "content": "ーク", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4804
4805data: {"event": "message", "content": "フ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4806
4807data: {"event": "message", "content": "ロー", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4808
4809data: {"event": "message", "content": "や", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4810
4811data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4812
4813data: {"event": "message", "content": "エ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4814
4815data: {"event": "message", "content": "ージ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4816
4817data: {"event": "message", "content": "ェ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4818
4819data: {"event": "message", "content": "ント", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4820
4821data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4822
4823data: {"event": "message", "content": "オ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4824
4825data: {"event": "message", "content": "ート", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4826
4827data: {"event": "message", "content": "メ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4828
4829data: {"event": "message", "content": "ーション", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4830
4831data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4832
4833data: {"event": "message", "content": "導", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4834
4835data: {"event": "message", "content": "入", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4836
4837data: {"event": "message", "content": "に", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4838
4839data: {"event": "message", "content": "より", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4840
4841data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4842
4843data: {"event": "message", "content": "従", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4844
4845data: {"event": "message", "content": "来", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4846
4847data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4848
4849data: {"event": "message", "content": "手", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4850
4851data: {"event": "message", "content": "作", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4852
4853data: {"event": "message", "content": "業", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4854
4855data: {"event": "message", "content": "や", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4856
4857data: {"event": "message", "content": "固定", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4858
4859data: {"event": "message", "content": "的", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4860
4861data: {"event": "message", "content": "な", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4862
4863data: {"event": "message", "content": "業", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4864
4865data: {"event": "message", "content": "務", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4866
4867data: {"event": "message", "content": "フ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4868
4869data: {"event": "message", "content": "ロー", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4870
4871data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4872
4873data: {"event": "message", "content": "柔", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4874
4875data: {"event": "message", "content": "軟", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4876
4877data: {"event": "message", "content": "か", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4878
4879data: {"event": "message", "content": "つ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4880
4881data: {"event": "message", "content": "効", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4882
4883data: {"event": "message", "content": "率", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4884
4885data: {"event": "message", "content": "的", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4886
4887data: {"event": "message", "content": "に", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4888
4889data: {"event": "message", "content": "変", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4890
4891data: {"event": "message", "content": "革", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4892
4893data: {"event": "message", "content": "しています", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4894
4895data: {"event": "message", "content": "。\\n", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4896
4897data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4898
4899data: {"event": "message", "content": " デ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4900
4901data: {"event": "message", "content": "ータ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4902
4903data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4904
4905data: {"event": "message", "content": "単", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4906
4907data: {"event": "message", "content": "なる", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4908
4909data: {"event": "message", "content": "デ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4910
4911data: {"event": "message", "content": "ジ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4912
4913data: {"event": "message", "content": "タ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4914
4915data: {"event": "message", "content": "ル", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4916
4917data: {"event": "message", "content": "化", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4918
4919data: {"event": "message", "content": "に", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4920
4921data: {"event": "message", "content": "と", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4922
4923data: {"event": "message", "content": "ど", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4924
4925data: {"event": "message", "content": "ま", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4926
4927data: {"event": "message", "content": "ら", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4928
4929data: {"event": "message", "content": "ず", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4930
4931data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4932
4933data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4934
4935data: {"event": "message", "content": "によ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4936
4937data: {"event": "message", "content": "る", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4938
4939data: {"event": "message", "content": "分析", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4940
4941data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4942
4943data: {"event": "message", "content": "意思", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4944
4945data: {"event": "message", "content": "決", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4946
4947data: {"event": "message", "content": "定", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4948
4949data: {"event": "message", "content": "支", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4950
4951data: {"event": "message", "content": "援", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4952
4953data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4954
4955data: {"event": "message", "content": "実", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4956
4957data: {"event": "message", "content": "現", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4958
4959data: {"event": "message", "content": "し", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4960
4961data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4962
4963data: {"event": "message", "content": "組", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4964
4965data: {"event": "message", "content": "織", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4966
4967data: {"event": "message", "content": "全", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4968
4969data: {"event": "message", "content": "体", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4970
4971data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4972
4973data: {"event": "message", "content": "生", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4974
4975data: {"event": "message", "content": "産", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4976
4977data: {"event": "message", "content": "性", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4978
4979data: {"event": "message", "content": "向", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4980
4981data: {"event": "message", "content": "上", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4982
4983data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4984
4985data: {"event": "message", "content": "目", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4986
4987data: {"event": "message", "content": "指", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4988
4989data: {"event": "message", "content": "しています", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4990
4991data: {"event": "message", "content": "。\\n", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4992
4993data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4994
4995data: {"event": "message", "content": " フ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4996
4997data: {"event": "message", "content": "ィ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
4998
4999data: {"event": "message", "content": "ン", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5000
5001data: {"event": "message", "content": "テ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5002
5003data: {"event": "message", "content": "ック", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5004
5005data: {"event": "message", "content": "分", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5006
5007data: {"event": "message", "content": "野", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5008
5009data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5010
5011data: {"event": "message", "content": "中心", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5012
5013data: {"event": "message", "content": "に", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5014
5015data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5016
5017data: {"event": "message", "content": "ス", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5018
5019data: {"event": "message", "content": "コ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5020
5021data: {"event": "message", "content": "ア", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5022
5023data: {"event": "message", "content": "リング", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5024
5025data: {"event": "message", "content": "シ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5026
5027data: {"event": "message", "content": "ステ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5028
5029data: {"event": "message", "content": "ム", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5030
5031data: {"event": "message", "content": "や", "usage_
5031metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5032
5033data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5034
5035data: {"event": "message", "content": "エ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5036
5037data: {"event": "message", "content": "ージ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5038
5039data: {"event": "message", "content": "ェ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5040
5041data: {"event": "message", "content": "ント", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5042
5043data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5044
5045data: {"event": "message", "content": "予", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5046
5047data: {"event": "message", "content": "測", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5048
5049data: {"event": "message", "content": "ダ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5050
5051data: {"event": "message", "content": "ッシュ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5052
5053data: {"event": "message", "content": "ボ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5054
5055data: {"event": "message", "content": "ード", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5056
5057data: {"event": "message", "content": "など", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5058
5059data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5060
5061data: {"event": "message", "content": "実", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5062
5063data: {"event": "message", "content": "運", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5064
5065data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5066
5067data: {"event": "message", "content": "可能", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5068
5069data: {"event": "message", "content": "な", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5070
5071data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5072
5073data: {"event": "message", "content": "プロ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5074
5075data: {"event": "message", "content": "ダ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5076
5077data: {"event": "message", "content": "クト", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5078
5079data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5080
5081data: {"event": "message", "content": "開", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5082
5083data: {"event": "message", "content": "発", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5084
5085data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5086
5087data: {"event": "message", "content": "提供", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5088
5089data: {"event": "message", "content": "しています", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5090
5091data: {"event": "message", "content": "。\\n", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5092
5093data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5094
5095data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5096
5097data: {"event": "message", "content": "ド", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5098
5099data: {"event": "message", "content": "リ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5100
5101data: {"event": "message", "content": "ブ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5102
5103data: {"event": "message", "content": "ン", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5104
5105data: {"event": "message", "content": "な", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5106
5107data: {"event": "message", "content": "エ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5108
5109data: {"event": "message", "content": "ン", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5110
5111data: {"event": "message", "content": "ジ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5112
5113data: {"event": "message", "content": "ニ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5114
5115data: {"event": "message", "content": "ア", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5116
5117data: {"event": "message", "content": "リング", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5118
5119data: {"event": "message", "content": "手", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5120
5121data: {"event": "message", "content": "法", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5122
5123data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5124
5125data: {"event": "message", "content": "採", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5126
5127data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5128
5129data: {"event": "message", "content": "し", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5130
5131data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5132
5133data: {"event": "message", "content": "従", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5134
5135data: {"event": "message", "content": "来", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5136
5137data: {"event": "message", "content": "より", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5138
5139data: {"event": "message", "content": "も", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5140
5141data: {"event": "message", "content": "短", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5142
5143data: {"event": "message", "content": "期間", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5144
5145data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5146
5147data: {"event": "message", "content": "低", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5148
5149data: {"event": "message", "content": "コ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5150
5151data: {"event": "message", "content": "スト", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5152
5153data: {"event": "message", "content": "で", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5154
5155data: {"event": "message", "content": "高", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5156
5157data: {"event": "message", "content": "品質", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5158
5159data: {"event": "message", "content": "な", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5160
5161data: {"event": "message", "content": "シ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5162
5163data: {"event": "message", "content": "ステ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5164
5165data: {"event": "message", "content": "ム", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5166
5167data: {"event": "message", "content": "開", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5168
5169data: {"event": "message", "content": "発", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5170
5171data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5172
5173data: {"event": "message", "content": "実", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5174
5175data: {"event": "message", "content": "現", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5176
5177data: {"event": "message", "content": "しています", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5178
5179data: {"event": "message", "content": "。\\n\\n", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5180
5181data: {"event": "message", "content": "React", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5182
5183data: {"event": "message", "content": " Plus", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5184
5185data: {"event": "message", "content": "は", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5186
5187data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5188
5189data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5190
5191data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5192
5193data: {"event": "message", "content": "æ´»", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5194
5195data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5196
5197data: {"event": "message", "content": "して", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5198
5199data: {"event": "message", "content": "日本", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5200
5201data: {"event": "message", "content": "企業", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5202
5203data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5204
5205data: {"event": "message", "content": "業", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5206
5207data: {"event": "message", "content": "務", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5208
5209data: {"event": "message", "content": "変", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5210
5211data: {"event": "message", "content": "革", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5212
5213data: {"event": "message", "content": "(", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5214
5215data: {"event": "message", "content": "AX", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5216
5217data: {"event": "message", "content": ":", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5218
5219data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5220
5221data: {"event": "message", "content": " Transformation", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5222
5223data: {"event": "message", "content": ")", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5224
5225data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5226
5227data: {"event": "message", "content": "支", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5228
5229data: {"event": "message", "content": "援", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5230
5231data: {"event": "message", "content": "し", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5232
5233data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5234
5235data: {"event": "message", "content": "単", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5236
5237data: {"event": "message", "content": "なる", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5238
5239data: {"event": "message", "content": "デ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5240
5241data: {"event": "message", "content": "モ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5242
5243data: {"event": "message", "content": "や", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5244
5245data: {"event": "message", "content": "プロ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5246
5247data: {"event": "message", "content": "ト", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5248
5249data: {"event": "message", "content": "タイプ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5250
5251data: {"event": "message", "content": "では", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5252
5253data: {"event": "message", "content": "なく", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5254
5255data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5256
5257data: {"event": "message", "content": "実", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5258
5259data: {"event": "message", "content": "際", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5260
5261data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5262
5263data: {"event": "message", "content": "運", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5264
5265data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5266
5267data: {"event": "message", "content": "に", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5268
5269data: {"event": "message", "content": "耐", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5270
5271data: {"event": "message", "content": "える", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5272
5273data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5274
5275data: {"event": "message", "content": "ソ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5276
5277data: {"event": "message", "content": "リ", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5278
5279data: {"event": "message", "content": "ュー", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5280
5281data: {"event": "message", "content": "ション", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5282
5283data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5284
5285data: {"event": "message", "content": "提供", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5286
5287data: {"event": "message", "content": "しています", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5288
5289data: {"event": "message", "content": "。", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5290
5291data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 972, "output_tokens": 37, "total_tokens": 1009}}
5292
5293data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 6346, "output_tokens": 369, "total_tokens": 6715}}
5294
5295data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 6346, "output_tokens": 369, "total_tokens": 6715}}
5296
5297data: {"event": "complete", "content": "<|stop|>", "usage_metadata": {"input_tokens": 6346, "output_tokens": 369, "total_tokens": 6715}}
5298
5299`,"React PlusはどのようなAI・Fintechソリューションを提供できますか?":`data: {"event": "start", "content": "<|start|>", "usage_metadata": {"input_tokens": 0, "output_tokens": 0, "total_tokens": 0}}
5300
5301data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 0, "output_tokens": 0, "total_tokens": 0}}
5302
5303data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5304
5305data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5306
5307data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5308
5309data: {"event": "message", "content": "React", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5310
5311data: {"event": "message", "content": " Plus", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5312
5313data: {"event": "message", "content": "は", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5314
5315data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5316
5317data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5318
5319data: {"event": "message", "content": "と", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5320
5321data: {"event": "message", "content": "Fin", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5322
5323data: {"event": "message", "content": "tech", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5324
5325data: {"event": "message", "content": "分", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5326
5327data: {"event": "message", "content": "野", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5328
5329data: {"event": "message", "content": "で", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5330
5331data: {"event": "message", "content": "幅", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5332
5333data: {"event": "message", "content": "広", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5334
5335data: {"event": "message", "content": "い", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5336
5337data: {"event": "message", "content": "ソ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5338
5339data: {"event": "message", "content": "リ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5340
5341data: {"event": "message", "content": "ュー", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5342
5343data: {"event": "message", "content": "ション", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5344
5345data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5346
5347data: {"event": "message", "content": "提供", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5348
5349data: {"event": "message", "content": "しています", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5350
5351data: {"event": "message", "content": "。", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5352
5353data: {"event": "message", "content": "主", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5354
5355data: {"event": "message", "content": "な", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5356
5357data: {"event": "message", "content": "内容", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5358
5359data: {"event": "message", "content": "は", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5360
5361data: {"event": "message", "content": "以下", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5362
5363data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5364
5365data: {"event": "message", "content": "通", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5366
5367data: {"event": "message", "content": "り", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5368
5369data: {"event": "message", "content": "です", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5370
5371data: {"event": "message", "content": "。\\n\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5372
5373data: {"event": "message", "content": "■", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5374
5375data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5376
5377data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5378
5379data: {"event": "message", "content": "Fin", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5380
5381data: {"event": "message", "content": "tech", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5382
5383data: {"event": "message", "content": "ソ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5384
5385data: {"event": "message", "content": "リ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5386
5387data: {"event": "message", "content": "ュー", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5388
5389data: {"event": "message", "content": "ション", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5390
5391data: {"event": "message", "content": "例", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5392
5393data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5394
5395data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5396
5397data: {"event": "message", "content": " リ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5398
5399data: {"event": "message", "content": "アル", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5400
5401data: {"event": "message", "content": "タイ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5402
5403data: {"event": "message", "content": "ム", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5404
5405data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5406
5407data: {"event": "message", "content": "不", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5408
5409data: {"event": "message", "content": "æ­£", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5410
5411data: {"event": "message", "content": "検", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5412
5413data: {"event": "message", "content": "知", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5414
5415data: {"event": "message", "content": "(", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5416
5417data: {"event": "message", "content": "ディ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5418
5419data: {"event": "message", "content": "ープ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5420
5421data: {"event": "message", "content": "ラ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5422
5423data: {"event": "message", "content": "ーニ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5424
5425data: {"event": "message", "content": "ング", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5426
5427data: {"event": "message", "content": "によ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5428
5429data: {"event": "message", "content": "る", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5430
5431data: {"event": "message", "content": "異", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5432
5433data: {"event": "message", "content": "常", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5434
5435data: {"event": "message", "content": "検", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5436
5437data: {"event": "message", "content": "知", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5438
5439data: {"event": "message", "content": ")\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5440
5441data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5442
5443data: {"event": "message", "content": " æ ª", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5444
5445data: {"event": "message", "content": "式", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5446
5447data: {"event": "message", "content": "市場", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5448
5449data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5450
5451data: {"event": "message", "content": "価格", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5452
5453data: {"event": "message", "content": "変", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5454
5455data: {"event": "message", "content": "動", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5456
5457data: {"event": "message", "content": "予", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5458
5459data: {"event": "message", "content": "測", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5460
5461data: {"event": "message", "content": "(", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5462
5463data: {"event": "message", "content": "ニュース", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5464
5465data: {"event": "message", "content": "分析", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5466
5467data: {"event": "message", "content": "や", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5468
5469data: {"event": "message", "content": "時", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5470
5471data: {"event": "message", "content": "系列", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5472
5473data: {"event": "message", "content": "デ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5474
5475data: {"event": "message", "content": "ータ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5476
5477data: {"event": "message", "content": "æ´»", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5478
5479data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5480
5481data: {"event": "message", "content": ")\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5482
5483data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5484
5485data: {"event": "message", "content": " オ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5486
5487data: {"event": "message", "content": "ル", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5488
5489data: {"event": "message", "content": "タ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5490
5491data: {"event": "message", "content": "ナ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5492
5493data: {"event": "message", "content": "ティ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5494
5495data: {"event": "message", "content": "ブ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5496
5497data: {"event": "message", "content": "デ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5498
5499data: {"event": "message", "content": "ータ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5500
5501data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5502
5503data: {"event": "message", "content": "æ´»", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5504
5505data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5506
5507data: {"event": "message", "content": "した", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5508
5509data: {"event": "message", "content": "スマ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5510
5511data: {"event": "message", "content": "ート", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5512
5513data: {"event": "message", "content": "な", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5514
5515data: {"event": "message", "content": "信用", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5516
5517data: {"event": "message", "content": "ス", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5518
5519data: {"event": "message", "content": "コ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5520
5521data: {"event": "message", "content": "ア", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5522
5523data: {"event": "message", "content": "リング", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5524
5525data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5526
5527data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5528
5529data: {"event": "message", "content": " パ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5530
5531data: {"event": "message", "content": "ー", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5532
5533data: {"event": "message", "content": "ソ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5534
5535data: {"event": "message", "content": "ナ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5536
5537data: {"event": "message", "content": "ラ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5538
5539data: {"event": "message", "content": "イズ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5540
5541data: {"event": "message", "content": "された", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5542
5543data: {"event": "message", "content": "金融", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5544
5545data: {"event": "message", "content": "チャ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5546
5547data: {"event": "message", "content": "ット", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5548
5549data: {"event": "message", "content": "ボ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5550
5551data: {"event": "message", "content": "ット", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5552
5553data: {"event": "message", "content": "(", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5554
5555data: {"event": "message", "content": "支", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5556
5557data: {"event": "message", "content": "出", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5558
5559data: {"event": "message", "content": "管理", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5560
5561data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5562
5563data: {"event": "message", "content": "投", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5564
5565data: {"event": "message", "content": "資", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5566
5567data: {"event": "message", "content": "ア", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5568
5569data: {"event": "message", "content": "ド", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5570
5571data: {"event": "message", "content": "バ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5572
5573data: {"event": "message", "content": "イス", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5574
5575data: {"event": "message", "content": "等", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5576
5577data: {"event": "message", "content": ")\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5578
5579data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5580
5581data: {"event": "message", "content": " 投", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5582
5583data: {"event": "message", "content": "資", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5584
5585data: {"event": "message", "content": "ポ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5586
5587data: {"event": "message", "content": "ート", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5588
5589data: {"event": "message", "content": "フォ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5590
5591data: {"event": "message", "content": "リ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5592
5593data: {"event": "message", "content": "オ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5594
5595data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5596
5597data: {"event": "message", "content": "最", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5598
5599data: {"event": "message", "content": "適", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5600
5601data: {"event": "message", "content": "化", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5602
5603data: {"event": "message", "content": "(", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5604
5605data: {"event": "message", "content": "å¼·", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5606
5607data: {"event": "message", "content": "化", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5608
5609data: {"event": "message", "content": "å­¦", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5610
5611data: {"event": "message", "content": "習", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5612
5613data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5614
5615data: {"event": "message", "content": "応", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5616
5617data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5618
5619data: {"event": "message", "content": ")\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5620
5621data: {"e
5621vent": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5622
5623data: {"event": "message", "content": " P", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5624
5625data: {"event": "message", "content": "2", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5626
5627data: {"event": "message", "content": "P", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5628
5629data: {"event": "message", "content": "レン", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5630
5631data: {"event": "message", "content": "ディ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5632
5633data: {"event": "message", "content": "ング", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5634
5635data: {"event": "message", "content": "に", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5636
5637data: {"event": "message", "content": "お", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5638
5639data: {"event": "message", "content": "け", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5640
5641data: {"event": "message", "content": "る", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5642
5643data: {"event": "message", "content": "デ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5644
5645data: {"event": "message", "content": "フォ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5646
5647data: {"event": "message", "content": "ルト", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5648
5649data: {"event": "message", "content": "リ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5650
5651data: {"event": "message", "content": "スク", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5652
5653data: {"event": "message", "content": "予", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5654
5655data: {"event": "message", "content": "測", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5656
5657data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5658
5659data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5660
5661data: {"event": "message", "content": " 財", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5662
5663data: {"event": "message", "content": "務", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5664
5665data: {"event": "message", "content": "å ±", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5666
5667data: {"event": "message", "content": "告", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5668
5669data: {"event": "message", "content": "書", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5670
5671data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5672
5673data: {"event": "message", "content": "自", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5674
5675data: {"event": "message", "content": "動", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5676
5677data: {"event": "message", "content": "分析", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5678
5679data: {"event": "message", "content": "(", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5680
5681data: {"event": "message", "content": "N", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5682
5683data: {"event": "message", "content": "LP", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5684
5685data: {"event": "message", "content": "によ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5686
5687data: {"event": "message", "content": "る", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5688
5689data: {"event": "message", "content": "情報", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5690
5691data: {"event": "message", "content": "抽", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5692
5693data: {"event": "message", "content": "出", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5694
5695data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5696
5697data: {"event": "message", "content": "要", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5698
5699data: {"event": "message", "content": "約", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5700
5701data: {"event": "message", "content": ")\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5702
5703data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5704
5705data: {"event": "message", "content": " 不", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5706
5707data: {"event": "message", "content": "動", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5708
5709data: {"event": "message", "content": "産", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5710
5711data: {"event": "message", "content": "価格", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5712
5713data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5714
5715data: {"event": "message", "content": "機", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5716
5717data: {"event": "message", "content": "械", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5718
5719data: {"event": "message", "content": "å­¦", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5720
5721data: {"event": "message", "content": "習", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5722
5723data: {"event": "message", "content": "によ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5724
5725data: {"event": "message", "content": "る", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5726
5727data: {"event": "message", "content": "自", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5728
5729data: {"event": "message", "content": "動", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5730
5731data: {"event": "message", "content": "評価", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5732
5733data: {"event": "message", "content": "\\n\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5734
5735data: {"event": "message", "content": "■", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5736
5737data: {"event": "message", "content": " 提", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5738
5739data: {"event": "message", "content": "供", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5740
5741data: {"event": "message", "content": "å½¢", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5742
5743data: {"event": "message", "content": "態", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5744
5745data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5746
5747data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5748
5749data: {"event": "message", "content": " 個", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5750
5751data: {"event": "message", "content": "人", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5752
5753data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5754
5755data: {"event": "message", "content": "法人", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5756
5757data: {"event": "message", "content": "向", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5758
5759data: {"event": "message", "content": "け", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5760
5761data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5762
5763data: {"event": "message", "content": "金融", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5764
5765data: {"event": "message", "content": "管理", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5766
5767data: {"event": "message", "content": "ア", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5768
5769data: {"event": "message", "content": "プリ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5770
5771data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5772
5773data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5774
5775data: {"event": "message", "content": " ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5776
5777data: {"event": "message", "content": "企業", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5778
5779data: {"event": "message", "content": "向", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5780
5781data: {"event": "message", "content": "け", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5782
5783data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5784
5785data: {"event": "message", "content": "財", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5786
5787data: {"event": "message", "content": "務", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5788
5789data: {"event": "message", "content": "管理", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5790
5791data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5792
5793data: {"event": "message", "content": "レ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5794
5795data: {"event": "message", "content": "ポ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5796
5797data: {"event": "message", "content": "ート", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5798
5799data: {"event": "message", "content": "自", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5800
5801data: {"event": "message", "content": "動", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5802
5803data: {"event": "message", "content": "化", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5804
5805data: {"event": "message", "content": "シ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5806
5807data: {"event": "message", "content": "ステ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5808
5809data: {"event": "message", "content": "ム", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5810
5811data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5812
5813data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5814
5815data: {"event": "message", "content": " 保", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5816
5817data: {"event": "message", "content": "険", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5818
5819data: {"event": "message", "content": "(", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5820
5821data: {"event": "message", "content": "Ins", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5822
5823data: {"event": "message", "content": "ur", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5824
5825data: {"event": "message", "content": "Tech", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5826
5827data: {"event": "message", "content": ")", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5828
5829data: {"event": "message", "content": "分", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5830
5831data: {"event": "message", "content": "野", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5832
5833data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5834
5835data: {"event": "message", "content": "デ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5836
5837data: {"event": "message", "content": "ータ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5838
5839data: {"event": "message", "content": "æ´»", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5840
5841data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5842
5843data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5844
5845data: {"event": "message", "content": "オンライン", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5846
5847data: {"event": "message", "content": "管理", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5848
5849data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5850
5851data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5852
5853data: {"event": "message", "content": " ビ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5854
5855data: {"event": "message", "content": "ッグ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5856
5857data: {"event": "message", "content": "デ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5858
5859data: {"event": "message", "content": "ータ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5860
5861data: {"event": "message", "content": "分析", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5862
5863data: {"event": "message", "content": "によ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5864
5865data: {"event": "message", "content": "る", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5866
5867data: {"event": "message", "content": "戦", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5868
5869data: {"event": "message", "content": "略", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5870
5871data: {"event": "message", "content": "的", "usage_metadata": {"
5871input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5872
5873data: {"event": "message", "content": "意思", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5874
5875data: {"event": "message", "content": "決", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5876
5877data: {"event": "message", "content": "定", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5878
5879data: {"event": "message", "content": "支", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5880
5881data: {"event": "message", "content": "援", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5882
5883data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5884
5885data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5886
5887data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5888
5889data: {"event": "message", "content": "搭", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5890
5891data: {"event": "message", "content": "載", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5892
5893data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5894
5895data: {"event": "message", "content": "ロ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5896
5897data: {"event": "message", "content": "ボ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5898
5899data: {"event": "message", "content": "ア", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5900
5901data: {"event": "message", "content": "ド", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5902
5903data: {"event": "message", "content": "バ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5904
5905data: {"event": "message", "content": "イ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5906
5907data: {"event": "message", "content": "ザー", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5908
5909data: {"event": "message", "content": "\\n\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5910
5911data: {"event": "message", "content": "React", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5912
5913data: {"event": "message", "content": " Plus", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5914
5915data: {"event": "message", "content": "は", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5916
5917data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5918
5919data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5920
5921data: {"event": "message", "content": "エ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5922
5923data: {"event": "message", "content": "ージ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5924
5925data: {"event": "message", "content": "ェ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5926
5927data: {"event": "message", "content": "ント", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5928
5929data: {"event": "message", "content": "や", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5930
5931data: {"event": "message", "content": "自", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5932
5933data: {"event": "message", "content": "動", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5934
5935data: {"event": "message", "content": "化", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5936
5937data: {"event": "message", "content": "ワ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5938
5939data: {"event": "message", "content": "ーク", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5940
5941data: {"event": "message", "content": "フ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5942
5943data: {"event": "message", "content": "ロー", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5944
5945data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5946
5947data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5948
5949data: {"event": "message", "content": "プロ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5950
5951data: {"event": "message", "content": "ダ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5952
5953data: {"event": "message", "content": "クト", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5954
5955data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5956
5957data: {"event": "message", "content": "開", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5958
5959data: {"event": "message", "content": "発", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5960
5961data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5962
5963data: {"event": "message", "content": "導", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5964
5965data: {"event": "message", "content": "入", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5966
5967data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5968
5969data: {"event": "message", "content": "通", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5970
5971data: {"event": "message", "content": "じ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5972
5973data: {"event": "message", "content": "て", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5974
5975data: {"event": "message", "content": "、日本", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5976
5977data: {"event": "message", "content": "企業", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5978
5979data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5980
5981data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5982
5983data: {"event": "message", "content": "ト", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5984
5985data: {"event": "message", "content": "ラン", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5986
5987data: {"event": "message", "content": "ス", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5988
5989data: {"event": "message", "content": "フォ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5990
5991data: {"event": "message", "content": "ーメ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5992
5993data: {"event": "message", "content": "ーション", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5994
5995data: {"event": "message", "content": "(", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5996
5997data: {"event": "message", "content": "AX", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
5998
5999data: {"event": "message", "content": ")", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6000
6001data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6002
6003data: {"event": "message", "content": "支", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6004
6005data: {"event": "message", "content": "援", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6006
6007data: {"event": "message", "content": "しています", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6008
6009data: {"event": "message", "content": "。", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6010
6011data: {"event": "message", "content": "ご", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6012
6013data: {"event": "message", "content": "要", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6014
6015data: {"event": "message", "content": "望", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6016
6017data: {"event": "message", "content": "に", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6018
6019data: {"event": "message", "content": "応", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6020
6021data: {"event": "message", "content": "じ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6022
6023data: {"event": "message", "content": "て", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6024
6025data: {"event": "message", "content": "最", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6026
6027data: {"event": "message", "content": "適", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6028
6029data: {"event": "message", "content": "な", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6030
6031data: {"event": "message", "content": "ア", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6032
6033data: {"event": "message", "content": "ー", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6034
6035data: {"event": "message", "content": "キ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6036
6037data: {"event": "message", "content": "テ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6038
6039data: {"event": "message", "content": "ク", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6040
6041data: {"event": "message", "content": "チャ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6042
6043data: {"event": "message", "content": "や", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6044
6045data: {"event": "message", "content": "ア", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6046
6047data: {"event": "message", "content": "プロ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6048
6049data: {"event": "message", "content": "ーチ", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6050
6051data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6052
6053data: {"event": "message", "content": "提", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6054
6055data: {"event": "message", "content": "案", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6056
6057data: {"event": "message", "content": "可能", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6058
6059data: {"event": "message", "content": "です", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6060
6061data: {"event": "message", "content": "。", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6062
6063data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 973, "output_tokens": 37, "total_tokens": 1010}}
6064
6065data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 6008, "output_tokens": 418, "total_tokens": 6426}}
6066
6067data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 6008, "output_tokens": 418, "total_tokens": 6426}}
6068
6069data: {"event": "complete", "content": "<|stop|>", "usage_metadata": {"input_tokens": 6008, "output_tokens": 418, "total_tokens": 6426}}
6070
6071`,"日本市場向けFintech開発において、どのような強みがありますか":`data: {"event": "start", "content": "<|start|>", "usage_metadata": {"input_tokens": 0, "output_tokens": 0, "total_tokens": 0}}
6072
6073data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 0, "output_tokens": 0, "total_tokens": 0}}
6074
6075data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6076
6077data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6078
6079data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6080
6081data: {"event": "message", "content": "React", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6082
6083data: {"event": "message", "content": "Plus", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6084
6085data: {"event": "message", "content": "は", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6086
6087data: {"event": "message", "content": "日本", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6088
6089data: {"event": "message", "content": "市場", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6090
6091data: {"event": "message", "content": "向", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6092
6093data: {"event": "message", "content": "け", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6094
6095data: {"event": "message", "content": "Fin", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6096
6097data: {"event": "message", "content": "tech", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6098
6099data: {"event": "message", "content": "開", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6100
6101data: {"event": "message", "content": "発", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6102
6103data: {"event": "message", "content": "に", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6104
6105data: {"event": "message", "content": "お", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6106
6107data: {"event": "message", "content": "いて", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6108
6109data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6110
6111data: {"event": "message", "content": "以下", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6112
6113data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6114
6115data: {"event": "message", "content": "よう", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6116
6117data: {"event": "message", "content": "な", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6118
6119data: {"event": "message", "content": "å¼·", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6120
6121data: {"event": "message", 
6121"content": "み", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6122
6123data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6124
6125data: {"event": "message", "content": "持", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6126
6127data: {"event": "message", "content": "っています", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6128
6129data: {"event": "message", "content": "。\\n\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6130
6131data: {"event": "message", "content": "1", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6132
6133data: {"event": "message", "content": ".", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6134
6135data: {"event": "message", "content": " 実", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6136
6137data: {"event": "message", "content": "績", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6138
6139data: {"event": "message", "content": "と", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6140
6141data: {"event": "message", "content": "専門", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6142
6143data: {"event": "message", "content": "性", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6144
6145data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6146
6147data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6148
6149data: {"event": "message", "content": " 日本", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6150
6151data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6152
6153data: {"event": "message", "content": "大", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6154
6155data: {"event": "message", "content": "手", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6156
6157data: {"event": "message", "content": "企業", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6158
6159data: {"event": "message", "content": "や", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6160
6161data: {"event": "message", "content": "メ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6162
6163data: {"event": "message", "content": "ガ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6164
6165data: {"event": "message", "content": "バ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6166
6167data: {"event": "message", "content": "ンク", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6168
6169data: {"event": "message", "content": "向", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6170
6171data: {"event": "message", "content": "け", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6172
6173data: {"event": "message", "content": "に", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6174
6175data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6176
6177data: {"event": "message", "content": "設", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6178
6179data: {"event": "message", "content": "計", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6180
6181data: {"event": "message", "content": "から", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6182
6183data: {"event": "message", "content": "運", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6184
6185data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6186
6187data: {"event": "message", "content": "まで", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6188
6189data: {"event": "message", "content": "一", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6190
6191data: {"event": "message", "content": "貫", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6192
6193data: {"event": "message", "content": "して", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6194
6195data: {"event": "message", "content": "Fin", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6196
6197data: {"event": "message", "content": "tech", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6198
6199data: {"event": "message", "content": "シ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6200
6201data: {"event": "message", "content": "ステ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6202
6203data: {"event": "message", "content": "ム", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6204
6205data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6206
6207data: {"event": "message", "content": "開", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6208
6209data: {"event": "message", "content": "発", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6210
6211data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6212
6213data: {"event": "message", "content": "導", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6214
6215data: {"event": "message", "content": "入", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6216
6217data: {"event": "message", "content": "した", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6218
6219data: {"event": "message", "content": "実", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6220
6221data: {"event": "message", "content": "績", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6222
6223data: {"event": "message", "content": "があります", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6224
6225data: {"event": "message", "content": "。\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6226
6227data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6228
6229data: {"event": "message", "content": " 金", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6230
6231data: {"event": "message", "content": "融", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6232
6233data: {"event": "message", "content": "ド", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6234
6235data: {"event": "message", "content": "メ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6236
6237data: {"event": "message", "content": "イン", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6238
6239data: {"event": "message", "content": "や", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6240
6241data: {"event": "message", "content": "業", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6242
6243data: {"event": "message", "content": "務", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6244
6245data: {"event": "message", "content": "知", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6246
6247data: {"event": "message", "content": "識", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6248
6249data: {"event": "message", "content": "に", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6250
6251data: {"event": "message", "content": "ç²¾", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6252
6253data: {"event": "message", "content": "通", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6254
6255data: {"event": "message", "content": "した", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6256
6257data: {"event": "message", "content": "エ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6258
6259data: {"event": "message", "content": "ン", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6260
6261data: {"event": "message", "content": "ジ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6262
6263data: {"event": "message", "content": "ニ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6264
6265data: {"event": "message", "content": "ア", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6266
6267data: {"event": "message", "content": "が", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6268
6269data: {"event": "message", "content": "多数", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6270
6271data: {"event": "message", "content": "在", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6272
6273data: {"event": "message", "content": "籍", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6274
6275data: {"event": "message", "content": "し", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6276
6277data: {"event": "message", "content": "、日本", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6278
6279data: {"event": "message", "content": "市場", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6280
6281data: {"event": "message", "content": "特", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6282
6283data: {"event": "message", "content": "有", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6284
6285data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6286
6287data: {"event": "message", "content": "要", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6288
6289data: {"event": "message", "content": "ä»¶", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6290
6291data: {"event": "message", "content": "や", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6292
6293data: {"event": "message", "content": "規", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6294
6295data: {"event": "message", "content": "制", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6296
6297data: {"event": "message", "content": "にも", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6298
6299data: {"event": "message", "content": "対応", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6300
6301data: {"event": "message", "content": "可能", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6302
6303data: {"event": "message", "content": "です", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6304
6305data: {"event": "message", "content": "。\\n\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6306
6307data: {"event": "message", "content": "2", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6308
6309data: {"event": "message", "content": ".", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6310
6311data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6312
6313data: {"event": "message", "content": "×", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6314
6315data: {"event": "message", "content": "Fin", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6316
6317data: {"event": "message", "content": "tech", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6318
6319data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6320
6321data: {"event": "message", "content": "融合", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6322
6323data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6324
6325data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6326
6327data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6328
6329data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6330
6331data: {"event": "message", "content": "æ´»", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6332
6333data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6334
6335data: {"event": "message", "content": "した", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6336
6337data: {"event": "message", "content": "ク", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6338
6339data: {"event": "message", "content": "レ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6340
6341data: {"event": "message", "content": "ジ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6342
6343data: {"event": "message", "content": "ット", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6344
6345data: {"event": "message", "content": "ス", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6346
6347data: {"event": "message", "content": "コ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6348
6349data: {"event": "message", "content": "ア", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6350
6351data: {"event": "message", "content": "リング", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6352
6353data: {"event": "message", "content": "(", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6354
6355data: {"event": "message", "content": "例", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6356
6357data: {"event": "message", "content": ":", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6358
6359data: {"event": "message", "content": "At", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6360
6361data: {"event": "message", "content": "obar", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6362
6363data: {"event": "message", "content": ".ai", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6364
6365data: {"event": "message", "content": ")、", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6366
6367data: {"event": "message", "content": "リア", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6368
6369data: {"event": "message", "content": "ル", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6370
6371data: {"event": "message", "content": "タイ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6372
6373data: {"event": "message", "content": "ム", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6374
6375data: {"event": "message", "content": "不", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6376
6377data: {"event": "message", "content": "æ­£", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6378
6379data: {"event": "message", "content": "検", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6380
6381data: {"event": "message", "content": "知", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6382
6383data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6384
6385data: {"event": "message", "content": "リ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6386
6387data: {"event": "message", "content": "スク", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6388
6389data: {"event": "message", "content": "分析", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6390
6391data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6392
6393data: {"event": "message", "content": "チャ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6394
6395data: {"event": "message", "content": "ット", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6396
6397data: {"event": "message", "content": "ボ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6398
6399data: {"event": "message", "content": "ット", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6400
6401data: {"event": "message", "content": "によ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6402
6403data: {"event": "message", "content": "る", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6404
6405data: {"event": "message", "content": "金融", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6406
6407data: {"event": "message", "content": "ア", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6408
6409data: {"event": "message", "content": "ド", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6410
6411data: {"event": "message", "content": "バ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6412
6413data: {"event": "message", "content": "イス", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6414
6415data: {"event": "message", "content": "など", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6416
6417data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6418
6419data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6420
6421data: {"event": "message", "content": "技", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6422
6423data: {"event": "message", "content": "術", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6424
6425data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6426
6427data: {"event": "message", "content": "Fin", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6428
6429data: {"event": "message", "content": "tech", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6430
6431data: {"event": "message", "content": "領", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6432
6433data: {"event": "message", "content": "域", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6434
6435data: {"event": "message", "content": "に", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6436
6437data: {"event": "message", "content": "幅", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6438
6439data: {"event": "message", "content": "広", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6440
6441data: {"event": "message", "content": "く", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6442
6443data: {"event": "message", "content": "応", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6444
6445data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6446
6447data: {"event": "message", "content": "しています", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6448
6449data: {"event": "message", "content": "。\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6450
6451data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6452
6453data: {"event": "message", "content": " ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6454
6455data: {"event": "message", "content": "250", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6456
6457data: {"event": "message", "content": "以上", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6458
6459data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6460
6461data: {"event": "message", "content": "特徴", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6462
6463data: {"event": "message", "content": "量", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6464
6465data: {"event": "message", "content": "と", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6466
6467data: {"event": "message", "content": "15", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6468
6469data: {"event": "message", "content": "以上", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6470
6471data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6472
6473data: {"event": "message", "content": "オ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6474
6475data: {"event": "message", "content": "ル", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6476
6477data: {"event": "message", "content": "タ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6478
6479data: {"event": "message", "content": "ナ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6480
6481data: {"event": "message", "content": "ティ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6482
6483data: {"event": "message", "content": "ブ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6484
6485data: {"event": "message", "content": "デ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6486
6487data: {"event": "message", "content": "ータ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6488
6489data: {"event": "message", "content": "ソ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6490
6491data: {"event": "message", "content": "ース", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6492
6493data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6494
6495data: {"event": "message", "content": "æ´»", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6496
6497data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6498
6499data: {"event": "message", "content": "した", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6500
6501data: {"event": "message", "content": "高", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6502
6503data: {"event": "message", "content": "ç²¾", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6504
6505data: {"event": "message", "content": "度", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6506
6507data: {"event": "message", "content": "な", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6508
6509data: {"event": "message", "content": "信用", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6510
6511data: {"event": "message", "content": "評価", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6512
6513data: {"event": "message", "content": "が", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6514
6515data: {"event": "message", "content": "可能", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6516
6517data: {"event": "message", "content": "です", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6518
6519data: {"event": "message", "content": "。\\n\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6520
6521data: {"event": "message", "content": "3", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6522
6523data: {"event": "message", "content": ".", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6524
6525data: {"event": "message", "content": " フ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6526
6527data: {"event": "message", "content": "ル", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6528
6529data: {"event": "message", "content": "サ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6530
6531data: {"event": "message", "content": "イク", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6532
6533data: {"event": "message", "content": "ル", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6534
6535data: {"event": "message", "content": "開", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6536
6537data: {"event": "message", "content": "発", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6538
6539data: {"event": "message", "content": "体", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6540
6541data: {"event": "message", "content": "制", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6542
6543data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6544
6545data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6546
6547data: {"event": "message", "content": " 要", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6548
6549data: {"event": "message", "content": "ä»¶", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6550
6551data: {"event": "message", "content": "定", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6552
6553data: {"event": "message", "content": "義", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6554
6555data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6556
6557data: {"event": "message", "content": "設", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6558
6559data: {"event": "message", "content": "計", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6560
6561data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6562
6563data: {"event": "message", "content": "開", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6564
6565data: {"event": "message", "content": "発", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6566
6567data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6568
6569data: {"event": "message", "content": "運", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6570
6571data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6572
6573data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6574
6575data: {"event": "message", "content": "改善", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6576
6577data: {"event": "message", "content": "まで", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6578
6579data: {"event": "message", "content": "ワ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6580
6581data: {"event": "message", "content": "ン", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6582
6583data: {"event": "message", "content": "スト", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6584
6585data: {"event": "message", "content": "ップ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6586
6587data: {"event": "message", "content": "で", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6588
6589data: {"event": "message", "content": "対応", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6590
6591data: {"event": "message", "content": "でき", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6592
6593data: {"event": "message", "content": "る", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6594
6595data: {"event": "message", "content": "体", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6596
6597data: {"event": "message", "content": "制", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6598
6599data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6600
6601data: {"event": "message", "content": "持", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6602
6603data: {"event": "message", "content": "っています", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6604
6605data: {"event": "message", "content": "。\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6606
6607data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6608
6609data: {"event": "message", "content": " B", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6610
6611data: {"event": "message", "content": "2", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6612
6613data: {"event": "message", "content": "B", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6614
6615data: {"event": "message", "content": "/B", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6616
6617data: {"event": "message", "content": "2", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6618
6619data: {"event": "message", "content": "C", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6620
6621data: {"event": "message", "content": "両", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6622
6623data: {"event": "message", "content": "方", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6624
6625data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6626
6627data: {"event": "message", "content": "ア", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6628
6629data: {"event": "message", "content": "ー", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6630
6631data: {"event": "message", "content": "キ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6632
6633data: {"event": "message", "content": "テ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6634
6635data: {"event": "message", "content": "ク", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6636
6637data: {"event": "message", "content": "チャ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6638
6639data: {"event": "message", "content": "設", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6640
6641data: {"event": "message", "content": "計", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6642
6643data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6644
6645data: {"event": "message", "content": "開", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6646
6647data: {"event": "message", "content": "発", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6648
6649data: {"event": "message", "content": "経験", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6650
6651data: {"event": "message", "content": "が", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6652
6653data: {"event": "message", "content": "豊", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6654
6655data: {"event": "message", "content": "富", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6656
6657data: {"event": "message", "content": "です", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6658
6659data: {"event": "message", "content": "。\\n\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6660
6661data: {"event": "message", "content": "4", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6662
6663data: {"event": "message", "content": ".", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6664
6665data: {"event": "message", "content": " 高", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6666
6667data: {"event": "message", "content": "度", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6668
6669data: {"event": "message", "content": "な", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6670
6671data: {"event": "message", "content": "セ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6672
6673data: {"event": "message", "content": "キ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6674
6675data: {"event": "message", "content": "ュ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6676
6677data: {"event": "message", "content": "リ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6678
6679data: {"event": "message", "content": "ティ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6680
6681data: {"event": "message", "content": "と", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6682
6683data: {"event": "message", "content": "コン", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6684
6685data: {"event": "message", "content": "プ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6686
6687data: {"event": "message", "content": "ライ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6688
6689data: {"event": "message", "content": "ア", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6690
6691data: {"event": "message", "content": "ンス", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6692
6693data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6694
6695data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6696
6697data: {"event": "message", "content": " F", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6698
6699data: {"event": "message", "content": "ISC", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6700
6701data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6702
6703data: {"event": "message", "content": "GD", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6704
6705data: {"event": "message", "content": "PR", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6706
6707data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6708
6709data: {"event": "message", "content": "PCI", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6710
6711data: {"event": "message", "content": " DSS", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6712
6713data: {"event": "message", "content": "など", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6714
6715data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6716
6717data: {"event": "message", "content": "国", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6718
6719data: {"event": "message", "content": "際", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6720
6721data: {"event": "message", "content": "的", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6722
6723data: {"event": "message", "content": "な", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6724
6725data: {"event": "message", "content": "セ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6726
6727data: {"event": "message", "content": "キ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6728
6729data: {"event": "message", "content": "ュ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6730
6731data: {"event": "message", "content": "リ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6732
6733data: {"event": "message", "content": "ティ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6734
6735data: {"event": "message", "content": "基", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6736
6737data: {"event": "message", "content": "準", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6738
6739data: {"event": "message", "content": "に", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6740
6741data: {"event": "message", "content": "準", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6742
6743data: {"event": "message", "content": "拠", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6744
6745data: {"event": "message", "content": "した", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6746
6747data: {"event": "message", "content": "シ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6748
6749data: {"event": "message", "content": "ステ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6750
6751data: {"event": "message", "content": "ム", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6752
6753data: {"event": "message", "content": "設", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6754
6755data: {"event": "message", "content": "計", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6756
6757data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6758
6759data: {"event": "message", "content": "運", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6760
6761data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6762
6763data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6764
6765data: {"event": "message", "content": "実", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6766
6767data: {"event": "message", "content": "現", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6768
6769data: {"event": "message", "content": "しています", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6770
6771data: {"event": "message", "content": "。\\n\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6772
6773data: {"event": "message", "content": "5", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6774
6775data: {"event": "message", "content": ".", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6776
6777data: {"event": "message", "content": " ス", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6778
6779data: {"event": "message", "content": "ピ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6780
6781data: {"event": "message", "content": "ード", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6782
6783data: {"event": "message", "content": "と", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6784
6785data: {"event": "message", "content": "柔", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6786
6787data: {"event": "message", "content": "軟", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6788
6789data: {"event": "message", "content": "性", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6790
6791data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6792
6793data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6794
6795data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6796
6797data: {"event": "message", "content": "-driven", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6798
6799data: {"event": "message", "content": " engineering", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6800
6801data: {"event": "message", "content": "に", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6802
6803data: {"event": "message", "content": "より", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6804
6805data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6806
6807data: {"event": "message", "content": "従", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6808
6809data: {"event": "message", "content": "来", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6810
6811data: {"event": "message", "content": "より", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6812
6813data: {"event": "message", "content": "も", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6814
6815data: {"event": "message", "content": "短", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6816
6817data: {"event": "message", "content": "期間", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6818
6819data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6820
6821data: {"event": "message", "content": "低", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6822
6823data: {"event": "message", "content": "コ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6824
6825data: {"event": "message", "content": "スト", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6826
6827data: {"event": "message", "content": "で", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6828
6829data: {"event": "message", "content": "高", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6830
6831data: {"event": "message", "content": "品質", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6832
6833data: {"event": "message", "content": "な", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6834
6835data: {"event": "message", "content": "Fin", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6836
6837data: {"event": "message", "content": "tech", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6838
6839data: {"event": "message", "content": "ソ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6840
6841data: {"event": "message", "content": "リ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6842
6843data: {"event": "message", "content": "ュー", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6844
6845data: {"event": "message", "content": "ション", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6846
6847data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6848
6849data: {"event": "message", "content": "提供", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6850
6851data: {"event": "message", "content": "できます", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6852
6853data: {"event": "message", "content": "。\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6854
6855data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6856
6857data: {"event": "message", "content": " REST", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6858
6859data: {"event": "message", "content": "ful", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6860
6861data: {"event": "message", "content": " API", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6862
6863data: {"event": "message", "content": "や", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6864
6865data: {"event": "message", "content": "SDK", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6866
6867data: {"event": "message", "content": "によ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6868
6869data: {"event": "message", "content": "る", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6870
6871data: {"event": "message", "content": "迅", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6872
6873data: {"event": "message", "content": "速", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6874
6875data: {"event": "message", "content": "な", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6876
6877data: {"event": "message", "content": "シ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6878
6879data: {"event": "message", "content": "ステ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6880
6881data: {"event": "message", "content": "ム", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6882
6883data: {"event": "message", "content": "連", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6884
6885data: {"event": "message", "content": "携", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6886
6887data: {"event": "message", "content": "も", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6888
6889data: {"event": "message", "content": "可能", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6890
6891data: {"event": "message", "content": "です", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6892
6893data: {"event": "message", "content": "。\\n\\n", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6894
6895data: {"event": "message", "content": "これ", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6896
6897data: {"event": "message", "content": "ら", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6898
6899data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6900
6901data: {"event": "message", "content": "å¼·", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6902
6903data: {"event": "message", "content": "みに", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6904
6905data: {"event": "message", "content": "より", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6906
6907data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6908
6909data: {"event": "message", "content": "React", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6910
6911data: {"event": "message", "content": "Plus", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6912
6913data: {"event": "message", "content": "は", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6914
6915data: {"event": "message", "content": "日本", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6916
6917data: {"event": "message", "content": "市場", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6918
6919data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6920
6921data: {"event": "message", "content": "Fin", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6922
6923data: {"event": "message", "content": "tech", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6924
6925data: {"event": "message", "content": "分", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6926
6927data: {"event": "message", "content": "野", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6928
6929data: {"event": "message", "content": "で", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6930
6931data: {"event": "message", "content": "高", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6932
6933data: {"event": "message", "content": "い", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6934
6935data: {"event": "message", "content": "ç«¶", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6936
6937data: {"event": "message", "content": "争", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6938
6939data: {"event": "message", "content": "力", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6940
6941data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6942
6943data: {"event": "message", "content": "持", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6944
6945data: {"event": "message", "content": "っています", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6946
6947data: {"event": "message", "content": "。", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6948
6949data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 973, "output_tokens": 33, "total_tokens": 1006}}
6950
6951data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 7329, "output_tokens": 474, "total_tokens": 7803}}
6952
6953data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 7329, "output_tokens": 474, "total_tokens": 7803}}
6954
6955data: {"event": "complete", "content": "<|stop|>", "usage_metadata": {"input_tokens": 7329, "output_tokens": 474, "total_tokens": 7803}}
6956
6957`,AI能力:`data: {"event": "start", "content": "<|start|>", "usage_metadata": {"input_tokens": 0, "output_tokens": 0, "total_tokens": 0}}
6958
6959data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 0, "output_tokens": 0, "total_tokens": 0}}
6960
6961data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
6962
6963data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
6964
6965data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
6966
6967data: {"event": "message", "content": "React", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
6968
6969data: {"event": "message", "content": "Plus", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
6970
6971data: {"event": "message", "content": "は", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
6972
6973data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
6974
6975data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
6976
6977data: {"event": "message", "content": "技", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
6978
6979data: {"event": "message", "content": "術", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
6980
6981data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
6982
6983data: {"event": "message", "content": "幅", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
6984
6985data: {"event": "message", "content": "広", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
6986
6987data: {"event": "message", "content": "く", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
6988
6989data: {"event": "message", "content": "æ´»", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
6990
6991data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
6992
6993data: {"event": "message", "content": "し", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
6994
6995data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
6996
6997data: {"event": "message", "content": "ソ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
6998
6999data: {"event": "message", "content": "フト", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7000
7001data: {"event": "message", "content": "ウェ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7002
7003data: {"event": "message", "content": "ア", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7004
7005data: {"event": "message", "content": "開", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7006
7007data: {"event": "message", "content": "発", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7008
7009data: {"event": "message", "content": "や", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7010
7011data: {"event": "message", "content": "業", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7012
7013data: {"event": "message", "content": "務", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7014
7015data: {"event": "message", "content": "プロ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7016
7017data: {"event": "message", "content": "セ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7018
7019data: {"event": "message", "content": "ス", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7020
7021data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7022
7023data: {"event": "message", "content": "効", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7024
7025data: {"event": "message", "content": "率", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7026
7027data: {"event": "message", "content": "化", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7028
7029data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7030
7031data: {"event": "message", "content": "品質", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7032
7033data: {"event": "message", "content": "向", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7034
7035data: {"event": "message", "content": "上", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7036
7037data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7038
7039data: {"event": "message", "content": "実", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7040
7041data: {"event": "message", "content": "現", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7042
7043data: {"event": "message", "content": "しています", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7044
7045data: {"event": "message", "content": "。", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7046
7047data: {"event": "message", "content": "主", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7048
7049data: {"event": "message", "content": "な", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7050
7051data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7052
7053data: {"event": "message", "content": "能力", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7054
7055data: {"event": "message", "content": "は", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7056
7057data: {"event": "message", "content": "以下", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7058
7059data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7060
7061data: {"event": "message", "content": "通", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7062
7063data: {"event": "message", "content": "り", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7064
7065data: {"event": "message", "content": "です", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7066
7067data: {"event": "message", "content": "。\\n\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7068
7069data: {"event": "message", "content": "■", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7070
7071data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7072
7073data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7074
7075data: {"event": "message", "content": "æ´»", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7076
7077data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7078
7079data: {"event": "message", "content": "領", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7080
7081data: {"event": "message", "content": "域", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7082
7083data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7084
7085data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7086
7087data: {"event": "message", "content": " 要", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7088
7089data: {"event": "message", "content": "ä»¶", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7090
7091data: {"event": "message", "content": "定", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7092
7093data: {"event": "message", "content": "義", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7094
7095data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7096
7097data: {"event": "message", "content": "設", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7098
7099data: {"event": "message", "content": "計", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7100
7101data: {"event": "message", "content": ":", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7102
7103data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7104
7105data: {"event": "message", "content": "によ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7106
7107data: {"event": "message", "content": "る", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7108
7109data: {"event": "message", "content": "プロ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7110
7111data: {"event": "message", "content": "ト", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7112
7113data: {"event": "message", "content": "タイプ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7114
7115data: {"event": "message", "content": "作", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7116
7117data: {"event": "message", "content": "成", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7118
7119data: {"event": "message", "content": "や", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7120
7121data: {"event": "message", "content": "要", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7122
7123data: {"event": "message", "content": "ä»¶", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7124
7125data: {"event": "message", "content": "整理", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7126
7127data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7128
7129data: {"event": "message", "content": "ド", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7130
7131data: {"event": "message", "content": "キ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7132
7133data: {"event": "message", "content": "ュ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7134
7135data: {"event": "message", "content": "メント", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7136
7137data: {"event": "message", "content": "自", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7138
7139data: {"event": "message", "content": "動", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7140
7141data: {"event": "message", "content": "生成", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7142
7143data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7144
7145data: {"event": "message", "content": "UI", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7146
7147data: {"event": "message", "content": "アイ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7148
7149data: {"event": "message", "content": "デ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7150
7151data: {"event": "message", "content": "ア", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7152
7153data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7154
7155data: {"event": "message", "content": "ブ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7156
7157data: {"event": "message", "content": "レ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7158
7159data: {"event": "message", "content": "イン", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7160
7161data: {"event": "message", "content": "スト", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7162
7163data: {"event": "message", "content": "ーミ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7164
7165data: {"event": "message", "content": "ング", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7166
7167data: {"event": "message", "content": "支", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7168
7169data: {"event": "message", "content": "援", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7170
7171data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7172
7173data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7174
7175data: {"event": "message", "content": " 開", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7176
7177data: {"event": "message", "content": "発", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7178
7179data: {"event": "message", "content": ":", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7180
7181data: {"event": "message", "content": "コード", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7182
7183data: {"event": "message", "content": "自", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7184
7185data: {"event": "message", "content": "動", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7186
7187data: {"event": "message", "content": "補", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7188
7189data: {"event": "message", "content": "完", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7190
7191data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7192
7193data: {"event": "message", "content": "リ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7194
7195data: {"event": "message", "content": "ファ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7196
7197data: {"event": "message", "content": "ク", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7198
7199data: {"event": "message", "content": "タ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7200
7201data: {"event": "message", "content": "リング", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7202
7203data: {"event": "message", "content": "提", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7204
7205data: {"event": "message", "content": "案", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7206
7207data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7208
7209data: {"event": "message", "content": "技", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7210
7211data: {"event": "message", "content": "術", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7212
7213data: {"event": "message", "content": "調", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7214
7215data: {"event": "message", "content": "査", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7216
7217data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7218
7219data: {"event": "message", "content": "自", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7220
7221data: {"event": "message", "content": "動", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7222
7223data: {"event": "message", "content": "化", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7224
7225data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7226
7227data: {"event": "message", "content": "設", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7228
7229data: {"event": "message", "content": "計", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7230
7231data: {"event": "message", "content": "パ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7232
7233data: {"event": "message", "content": "ター", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7234
7235data: {"event": "message", "content": "ン", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7236
7237data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7238
7239data: {"event": "message", "content": "提", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7240
7241data: {"event": "message", "content": "案", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7242
7243data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7244
7245data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7246
7247data: {"event": "message", "content": " テ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7248
7249data: {"event": "message", "content": "スト", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7250
7251data: {"event": "message", "content": ":", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7252
7253data: {"event": "message", "content": "テ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7254
7255data: {"event": "message", "content": "スト", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7256
7257data: {"event": "message", "content": "ケース", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7258
7259data: {"event": "message", "content": "自", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7260
7261data: {"event": "message", "content": "動", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7262
7263data: {"event": "message", "content": "生成", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7264
7265data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7266
7267data: {"event": "message", "content": "バ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7268
7269data: {"event": "message", "content": "グ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7270
7271data: {"event": "message", "content": "傾", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7272
7273data: {"event": "message", "content": "向", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7274
7275data: {"event": "message", "content": "分析", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7276
7277data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7278
7279data: {"event": "message", "content": "リ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7280
7281data: {"event": "message", "content": "スク", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7282
7283data: {"event": "message", "content": "シ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7284
7285data: {"event": "message", "content": "ナ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7286
7287data: {"event": "message", "content": "リ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7288
7289data: {"event": "message", "content": "オ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7290
7291data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7292
7293data: {"event": "message", "content": "拡", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7294
7295data: {"event": "message", "content": "å¼µ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7296
7297data: {"event": "message", "content": "\\n\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7298
7299data: {"event": "message", "content": "■", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7300
7301data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7302
7303data: {"event": "message", "content": "導", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7304
7305data: {"event": "message", "content": "入", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7306
7307data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7308
7309data: {"event": "message", "content": "進", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7310
7311data: {"event": "message", "content": "化", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7312
7313data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7314
7315data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7316
7317data: {"event": "message", "content": " ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7318
7319data: {"event": "message", "content": "202", "usage_
7319metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7320
7321data: {"event": "message", "content": "4", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7322
7323data: {"event": "message", "content": "å¹´", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7324
7325data: {"event": "message", "content": ":", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7326
7327data: {"event": "message", "content": "Chat", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7328
7329data: {"event": "message", "content": "GPT", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7330
7331data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7332
7333data: {"event": "message", "content": "Claude", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7334
7335data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7336
7337data: {"event": "message", "content": "Gem", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7338
7339data: {"event": "message", "content": "ini", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7340
7341data: {"event": "message", "content": "など", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7342
7343data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7344
7345data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7346
7347data: {"event": "message", "content": "チャ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7348
7349data: {"event": "message", "content": "ット", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7350
7351data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7352
7353data: {"event": "message", "content": "æ´»", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7354
7355data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7356
7357data: {"event": "message", "content": "し", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7358
7359data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7360
7361data: {"event": "message", "content": "要", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7362
7363data: {"event": "message", "content": "ä»¶", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7364
7365data: {"event": "message", "content": "定", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7366
7367data: {"event": "message", "content": "義", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7368
7369data: {"event": "message", "content": "や", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7370
7371data: {"event": "message", "content": "コ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7372
7373data: {"event": "message", "content": "ーデ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7374
7375data: {"event": "message", "content": "ィ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7376
7377data: {"event": "message", "content": "ング", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7378
7379data: {"event": "message", "content": "支", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7380
7381data: {"event": "message", "content": "援", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7382
7383data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7384
7385data: {"event": "message", "content": "実", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7386
7387data: {"event": "message", "content": "施", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7388
7389data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7390
7391data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7392
7393data: {"event": "message", "content": " ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7394
7395data: {"event": "message", "content": "202", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7396
7397data: {"event": "message", "content": "5", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7398
7399data: {"event": "message", "content": "å¹´", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7400
7401data: {"event": "message", "content": "以", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7402
7403data: {"event": "message", "content": "降", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7404
7405data: {"event": "message", "content": ":", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7406
7407data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7408
7409data: {"event": "message", "content": "エ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7410
7411data: {"event": "message", "content": "ージ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7412
7413data: {"event": "message", "content": "ェ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7414
7415data: {"event": "message", "content": "ント", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7416
7417data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7418
7419data: {"event": "message", "content": "社", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7420
7421data: {"event": "message", "content": "内", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7422
7423data: {"event": "message", "content": "導", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7424
7425data: {"event": "message", "content": "入", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7426
7427data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7428
7429data: {"event": "message", "content": "開", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7430
7431data: {"event": "message", "content": "発", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7432
7433data: {"event": "message", "content": "ワ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7434
7435data: {"event": "message", "content": "ーク", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7436
7437data: {"event": "message", "content": "フ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7438
7439data: {"event": "message", "content": "ロー", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7440
7441data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7442
7443data: {"event": "message", "content": "自", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7444
7445data: {"event": "message", "content": "動", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7446
7447data: {"event": "message", "content": "化", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7448
7449data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7450
7451data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7452
7453data: {"event": "message", "content": "プ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7454
7455data: {"event": "message", "content": "ラ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7456
7457data: {"event": "message", "content": "グ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7458
7459data: {"event": "message", "content": "イン", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7460
7461data: {"event": "message", "content": "や", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7462
7463data: {"event": "message", "content": "IDE", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7464
7465data: {"event": "message", "content": "çµ±", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7466
7467data: {"event": "message", "content": "合", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7468
7469data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7470
7471data: {"event": "message", "content": "å¼·", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7472
7473data: {"event": "message", "content": "化", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7474
7475data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7476
7477data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7478
7479data: {"event": "message", "content": " ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7480
7481data: {"event": "message", "content": "202", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7482
7483data: {"event": "message", "content": "6", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7484
7485data: {"event": "message", "content": "å¹´", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7486
7487data: {"event": "message", "content": "以", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7488
7489data: {"event": "message", "content": "降", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7490
7491data: {"event": "message", "content": ":", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7492
7493data: {"event": "message", "content": "エ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7494
7495data: {"event": "message", "content": "ンド", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7496
7497data: {"event": "message", "content": "ツ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7498
7499data: {"event": "message", "content": "ー", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7500
7501data: {"event": "message", "content": "エ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7502
7503data: {"event": "message", "content": "ンド", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7504
7505data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7506
7507data: {"event": "message", "content": "ド", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7508
7509data: {"event": "message", "content": "キ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7510
7511data: {"event": "message", "content": "ュ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7512
7513data: {"event": "message", "content": "メント", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7514
7515data: {"event": "message", "content": "自", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7516
7517data: {"event": "message", "content": "動", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7518
7519data: {"event": "message", "content": "生成", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7520
7521data: {"event": "message", "content": "や", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7522
7523data: {"event": "message", "content": "開", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7524
7525data: {"event": "message", "content": "発", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7526
7527data: {"event": "message", "content": "ワ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7528
7529data: {"event": "message", "content": "ーク", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7530
7531data: {"event": "message", "content": "フ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7532
7533data: {"event": "message", "content": "ロー", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7534
7535data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7536
7537data: {"event": "message", "content": "完全", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7538
7539data: {"event": "message", "content": "自", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7540
7541data: {"event": "message", "content": "動", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7542
7543data: {"event": "message", "content": "化", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7544
7545data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7546
7547data: {"event": "message", "content": "目", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7548
7549data: {"event": "message", "content": "指", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7550
7551data: {"event": "message", "content": "す", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7552
7553data: {"event": "message", "content": "\\n\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7554
7555data: {"event": "message", "content": "■", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7556
7557data: {"event": "message", "content": " コ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7558
7559data: {"event": "message", "content": "ア", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7560
7561data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7562
7563data: {"event": "message", "content": "技", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7564
7565data: {"event": "message", "content": "術", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7566
7567data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7568
7569data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7570
7571data: {"event": "message", "content": " 機", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7572
7573data: {"ev
7573ent": "message", "content": "械", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7574
7575data: {"event": "message", "content": "å­¦", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7576
7577data: {"event": "message", "content": "習", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7578
7579data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7580
7581data: {"event": "message", "content": "予", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7582
7583data: {"event": "message", "content": "測", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7584
7585data: {"event": "message", "content": "シ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7586
7587data: {"event": "message", "content": "ステ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7588
7589data: {"event": "message", "content": "ム", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7590
7591data: {"event": "message", "content": "(", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7592
7593data: {"event": "message", "content": "ス", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7594
7595data: {"event": "message", "content": "コ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7596
7597data: {"event": "message", "content": "ア", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7598
7599data: {"event": "message", "content": "リング", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7600
7601data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7602
7603data: {"event": "message", "content": "リ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7604
7605data: {"event": "message", "content": "スク", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7606
7607data: {"event": "message", "content": "評価", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7608
7609data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7610
7611data: {"event": "message", "content": "需要", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7612
7613data: {"event": "message", "content": "予", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7614
7615data: {"event": "message", "content": "測", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7616
7617data: {"event": "message", "content": "など", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7618
7619data: {"event": "message", "content": ")\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7620
7621data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7622
7623data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7624
7625data: {"event": "message", "content": "エ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7626
7627data: {"event": "message", "content": "ージ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7628
7629data: {"event": "message", "content": "ェ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7630
7631data: {"event": "message", "content": "ント", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7632
7633data: {"event": "message", "content": "(", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7634
7635data: {"event": "message", "content": "業", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7636
7637data: {"event": "message", "content": "務", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7638
7639data: {"event": "message", "content": "自", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7640
7641data: {"event": "message", "content": "動", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7642
7643data: {"event": "message", "content": "化", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7644
7645data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7646
7647data: {"event": "message", "content": "意思", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7648
7649data: {"event": "message", "content": "決", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7650
7651data: {"event": "message", "content": "定", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7652
7653data: {"event": "message", "content": "支", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7654
7655data: {"event": "message", "content": "援", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7656
7657data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7658
7659data: {"event": "message", "content": "ワ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7660
7661data: {"event": "message", "content": "ーク", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7662
7663data: {"event": "message", "content": "フ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7664
7665data: {"event": "message", "content": "ロー", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7666
7667data: {"event": "message", "content": "実", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7668
7669data: {"event": "message", "content": "行", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7670
7671data: {"event": "message", "content": ")\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7672
7673data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7674
7675data: {"event": "message", "content": " L", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7676
7677data: {"event": "message", "content": "LM", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7678
7679data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7680
7681data: {"event": "message", "content": "ナ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7682
7683data: {"event": "message", "content": "レ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7684
7685data: {"event": "message", "content": "ッ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7686
7687data: {"event": "message", "content": "ジ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7688
7689data: {"event": "message", "content": "シ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7690
7691data: {"event": "message", "content": "ステ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7692
7693data: {"event": "message", "content": "ム", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7694
7695data: {"event": "message", "content": "(", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7696
7697data: {"event": "message", "content": "ド", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7698
7699data: {"event": "message", "content": "キ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7700
7701data: {"event": "message", "content": "ュ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7702
7703data: {"event": "message", "content": "メント", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7704
7705data: {"event": "message", "content": "解析", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7706
7707data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7708
7709data: {"event": "message", "content": "知", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7710
7711data: {"event": "message", "content": "識", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7712
7713data: {"event": "message", "content": "検索", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7714
7715data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7716
7717data: {"event": "message", "content": "構", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7718
7719data: {"event": "message", "content": "造", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7720
7721data: {"event": "message", "content": "化", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7722
7723data: {"event": "message", "content": "デ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7724
7725data: {"event": "message", "content": "ータ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7726
7727data: {"event": "message", "content": "抽", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7728
7729data: {"event": "message", "content": "出", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7730
7731data: {"event": "message", "content": ")\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7732
7733data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7734
7735data: {"event": "message", "content": " ソ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7736
7737data: {"event": "message", "content": "フト", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7738
7739data: {"event": "message", "content": "ウェ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7740
7741data: {"event": "message", "content": "ア", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7742
7743data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7744
7745data: {"event": "message", "content": "プロ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7746
7747data: {"event": "message", "content": "ダ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7748
7749data: {"event": "message", "content": "クト", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7750
7751data: {"event": "message", "content": "向", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7752
7753data: {"event": "message", "content": "け", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7754
7755data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7756
7757data: {"event": "message", "content": "(", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7758
7759data: {"event": "message", "content": "レ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7760
7761data: {"event": "message", "content": "コ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7762
7763data: {"event": "message", "content": "メ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7764
7765data: {"event": "message", "content": "ンド", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7766
7767data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7768
7769data: {"event": "message", "content": "イン", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7770
7771data: {"event": "message", "content": "テ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7772
7773data: {"event": "message", "content": "リ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7774
7775data: {"event": "message", "content": "ジェ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7776
7777data: {"event": "message", "content": "ント", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7778
7779data: {"event": "message", "content": "ワ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7780
7781data: {"event": "message", "content": "ーク", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7782
7783data: {"event": "message", "content": "フ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7784
7785data: {"event": "message", "content": "ロー", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7786
7787data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7788
7789data: {"event": "message", "content": "ダ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7790
7791data: {"event": "message", "content": "ッシュ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7792
7793data: {"event": "message", "content": "ボ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7794
7795data: {"event": "message", "content": "ード", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7796
7797data: {"event": "message", "content": ")\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7798
7799data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7800
7801data: {"event": "message", "content": " エ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7802
7803data: {"event": "message", "content": "ッ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7804
7805data: {"event": "message", "content": "ジ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7806
7807data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7808
7809data: {"event": "message", "content": "(", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7810
7811data: {"event": "message", "content": "現", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7812
7813data: {"event": "message", "content": "å ´", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7814
7815data: {"event": "message", "content": "デ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7816
7817data: {"event": "message", "content": "バ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7818
7819data: {"event": "message", "content": "イス", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7820
7821data: {"event": "message", "content": "で", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7822
7823data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7824
7825data: {"event": "message", "content": "認
7825", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7826
7827data: {"event": "message", "content": "識", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7828
7829data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7830
7831data: {"event": "message", "content": "推", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7832
7833data: {"event": "message", "content": "論", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7834
7835data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7836
7837data: {"event": "message", "content": "オ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7838
7839data: {"event": "message", "content": "フ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7840
7841data: {"event": "message", "content": "ライン", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7842
7843data: {"event": "message", "content": "処", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7844
7845data: {"event": "message", "content": "理", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7846
7847data: {"event": "message", "content": ")\\n\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7848
7849data: {"event": "message", "content": "■", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7850
7851data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7852
7853data: {"event": "message", "content": "æ´»", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7854
7855data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7856
7857data: {"event": "message", "content": "事", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7858
7859data: {"event": "message", "content": "例", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7860
7861data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7862
7863data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7864
7865data: {"event": "message", "content": " 金", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7866
7867data: {"event": "message", "content": "融", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7868
7869data: {"event": "message", "content": ":", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7870
7871data: {"event": "message", "content": "リ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7872
7873data: {"event": "message", "content": "スク", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7874
7875data: {"event": "message", "content": "分析", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7876
7877data: {"event": "message", "content": "や", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7878
7879data: {"event": "message", "content": "不", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7880
7881data: {"event": "message", "content": "æ­£", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7882
7883data: {"event": "message", "content": "検", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7884
7885data: {"event": "message", "content": "知", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7886
7887data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7888
7889data: {"event": "message", "content": "ç²¾", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7890
7891data: {"event": "message", "content": "度", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7892
7893data: {"event": "message", "content": "向", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7894
7895data: {"event": "message", "content": "上", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7896
7897data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7898
7899data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7900
7901data: {"event": "message", "content": " 人", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7902
7903data: {"event": "message", "content": "事", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7904
7905data: {"event": "message", "content": ":", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7906
7907data: {"event": "message", "content": "採", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7908
7909data: {"event": "message", "content": "用", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7910
7911data: {"event": "message", "content": "効", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7912
7913data: {"event": "message", "content": "率", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7914
7915data: {"event": "message", "content": "化", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7916
7917data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7918
7919data: {"event": "message", "content": "離", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7920
7921data: {"event": "message", "content": "職", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7922
7923data: {"event": "message", "content": "リ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7924
7925data: {"event": "message", "content": "スク", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7926
7927data: {"event": "message", "content": "分析", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7928
7929data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7930
7931data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7932
7933data: {"event": "message", "content": " 営", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7934
7935data: {"event": "message", "content": "業", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7936
7937data: {"event": "message", "content": ":", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7938
7939data: {"event": "message", "content": "需要", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7940
7941data: {"event": "message", "content": "予", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7942
7943data: {"event": "message", "content": "測", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7944
7945data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7946
7947data: {"event": "message", "content": "最", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7948
7949data: {"event": "message", "content": "適", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7950
7951data: {"event": "message", "content": "提", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7952
7953data: {"event": "message", "content": "案", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7954
7955data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7956
7957data: {"event": "message", "content": "自", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7958
7959data: {"event": "message", "content": "動", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7960
7961data: {"event": "message", "content": "化", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7962
7963data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7964
7965data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7966
7967data: {"event": "message", "content": " 製", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7968
7969data: {"event": "message", "content": "造", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7970
7971data: {"event": "message", "content": ":", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7972
7973data: {"event": "message", "content": "品質", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7974
7975data: {"event": "message", "content": "検", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7976
7977data: {"event": "message", "content": "査", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7978
7979data: {"event": "message", "content": "自", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7980
7981data: {"event": "message", "content": "動", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7982
7983data: {"event": "message", "content": "化", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7984
7985data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7986
7987data: {"event": "message", "content": "設備", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7988
7989data: {"event": "message", "content": "保", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7990
7991data: {"event": "message", "content": "守", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7992
7993data: {"event": "message", "content": "最", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7994
7995data: {"event": "message", "content": "適", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7996
7997data: {"event": "message", "content": "化", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
7998
7999data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8000
8001data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8002
8003data: {"event": "message", "content": " 教", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8004
8005data: {"event": "message", "content": "育", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8006
8007data: {"event": "message", "content": ":", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8008
8009data: {"event": "message", "content": "å­¦", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8010
8011data: {"event": "message", "content": "習", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8012
8013data: {"event": "message", "content": "内容", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8014
8015data: {"event": "message", "content": "最", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8016
8017data: {"event": "message", "content": "適", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8018
8019data: {"event": "message", "content": "化", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8020
8021data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8022
8023data: {"event": "message", "content": "習", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8024
8025data: {"event": "message", "content": "熟", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8026
8027data: {"event": "message", "content": "度", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8028
8029data: {"event": "message", "content": "分析", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8030
8031data: {"event": "message", "content": "\\n\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8032
8033data: {"event": "message", "content": "■", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8034
8035data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8036
8037data: {"event": "message", "content": "ガ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8038
8039data: {"event": "message", "content": "バ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8040
8041data: {"event": "message", "content": "ナ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8042
8043data: {"event": "message", "content": "ンス", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8044
8045data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8046
8047data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8048
8049data: {"event": "message", "content": " 公", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8050
8051data: {"event": "message", "content": "å¹³", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8052
8053data: {"event": "message", "content": "性", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8054
8055data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8056
8057data: {"event": "message", "content": "ä¿¡", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8058
8059data: {"event": "message", "content": "é ¼", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8060
8061data: {"event": "message", "content": "性", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8062
8063data: {"event": "message", "content": "評価", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8064
8065data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8066
8067data: {"event": "message", "content": "説明", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8068
8069data: {"event": "message", "content": "性", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8070
8071data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8072
8073data: {"event": "message", "content": "ト", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8074
8075data: {"event": "message", "content": "レー", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8076
8077data: {"event": "message", "content": "サ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 97
80776}}
8078
8079data: {"event": "message", "content": "ビ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8080
8081data: {"event": "message", "content": "リ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8082
8083data: {"event": "message", "content": "ティ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8084
8085data: {"event": "message", "content": "、人", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8086
8087data: {"event": "message", "content": "間", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8088
8089data: {"event": "message", "content": "によ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8090
8091data: {"event": "message", "content": "る", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8092
8093data: {"event": "message", "content": "監", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8094
8095data: {"event": "message", "content": "督", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8096
8097data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8098
8099data: {"event": "message", "content": "プ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8100
8101data: {"event": "message", "content": "ライ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8102
8103data: {"event": "message", "content": "バ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8104
8105data: {"event": "message", "content": "シ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8106
8107data: {"event": "message", "content": "ー", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8108
8109data: {"event": "message", "content": "・", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8110
8111data: {"event": "message", "content": "セ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8112
8113data: {"event": "message", "content": "キ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8114
8115data: {"event": "message", "content": "ュ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8116
8117data: {"event": "message", "content": "リ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8118
8119data: {"event": "message", "content": "ティ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8120
8121data: {"event": "message", "content": "対", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8122
8123data: {"event": "message", "content": "策", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8124
8125data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8126
8127data: {"event": "message", "content": "シ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8128
8129data: {"event": "message", "content": "ステ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8130
8131data: {"event": "message", "content": "ム", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8132
8133data: {"event": "message", "content": "設", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8134
8135data: {"event": "message", "content": "計", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8136
8137data: {"event": "message", "content": "段", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8138
8139data: {"event": "message", "content": "階", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8140
8141data: {"event": "message", "content": "から", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8142
8143data: {"event": "message", "content": "組", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8144
8145data: {"event": "message", "content": "み", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8146
8147data: {"event": "message", "content": "è¾¼", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8148
8149data: {"event": "message", "content": "ん", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8150
8151data: {"event": "message", "content": "で", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8152
8153data: {"event": "message", "content": "います", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8154
8155data: {"event": "message", "content": "。\\n\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8156
8157data: {"event": "message", "content": "詳細", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8158
8159data: {"event": "message", "content": "は", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8160
8161data: {"event": "message", "content": "公式", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8162
8163data: {"event": "message", "content": "サイト", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8164
8165data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8166
8167data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8168
8169data: {"event": "message", "content": "能力", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8170
8171data: {"event": "message", "content": "紹介", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8172
8173data: {"event": "message", "content": "ページ", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8174
8175data: {"event": "message", "content": "も", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8176
8177data: {"event": "message", "content": "ご", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8178
8179data: {"event": "message", "content": "参", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8180
8181data: {"event": "message", "content": "照", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8182
8183data: {"event": "message", "content": "ください", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8184
8185data: {"event": "message", "content": "。\\n", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8186
8187data: {"event": "message", "content": "[", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8188
8189data: {"event": "message", "content": "React", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8190
8191data: {"event": "message", "content": "Plus", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8192
8193data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8194
8195data: {"event": "message", "content": "能力", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8196
8197data: {"event": "message", "content": "](", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8198
8199data: {"event": "message", "content": "https", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8200
8201data: {"event": "message", "content": "://", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8202
8203data: {"event": "message", "content": "landing", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8204
8205data: {"event": "message", "content": "page", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8206
8207data: {"event": "message", "content": ".react", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8208
8209data: {"event": "message", "content": "plus", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8210
8211data: {"event": "message", "content": ".vn", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8212
8213data: {"event": "message", "content": "/core", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8214
8215data: {"event": "message", "content": "-values", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8216
8217data: {"event": "message", "content": "/", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8218
8219data: {"event": "message", "content": "ai", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8220
8221data: {"event": "message", "content": "-cap", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8222
8223data: {"event": "message", "content": "abilities", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8224
8225data: {"event": "message", "content": ")", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8226
8227data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 955, "output_tokens": 21, "total_tokens": 976}}
8228
8229data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 9426, "output_tokens": 659, "total_tokens": 10085}}
8230
8231data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 9426, "output_tokens": 659, "total_tokens": 10085}}
8232
8233data: {"event": "complete", "content": "<|stop|>", "usage_metadata": {"input_tokens": 9426, "output_tokens": 659, "total_tokens": 10085}}
8234
8235`,"React Plusは現在どのような製品を提供していますか?":`data: {"event": "start", "content": "<|start|>", "usage_metadata": {"input_tokens": 0, "output_tokens": 0, "total_tokens": 0}}
8236
8237data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 0, "output_tokens": 0, "total_tokens": 0}}
8238
8239data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8240
8241data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8242
8243data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8244
8245data: {"event": "message", "content": "React", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8246
8247data: {"event": "message", "content": " Plus", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8248
8249data: {"event": "message", "content": "(", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8250
8251data: {"event": "message", "content": "React", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8252
8253data: {"event": "message", "content": "Plus", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8254
8255data: {"event": "message", "content": ")が", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8256
8257data: {"event": "message", "content": "現在", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8258
8259data: {"event": "message", "content": "提供", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8260
8261data: {"event": "message", "content": "して", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8262
8263data: {"event": "message", "content": "いる", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8264
8265data: {"event": "message", "content": "主", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8266
8267data: {"event": "message", "content": "な", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8268
8269data: {"event": "message", "content": "製", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8270
8271data: {"event": "message", "content": "品", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8272
8273data: {"event": "message", "content": "は", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8274
8275data: {"event": "message", "content": "以下", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8276
8277data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8278
8279data: {"event": "message", "content": "通", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8280
8281data: {"event": "message", "content": "り", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8282
8283data: {"event": "message", "content": "です", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8284
8285data: {"event": "message", "content": "。\\n\\n", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8286
8287data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8288
8289data: {"event": "message", "content": " Alternative", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8290
8291data: {"event": "message", "content": " Data", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8292
8293data: {"event": "message", "content": " AI", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8294
8295data: {"event": "message", "content": " Sc", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8296
8297data: {"event": "message", "content": "oring", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8298
8299data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8300
8301data: {"event": "message", "content": " ", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8302
8303data: {"event": "message", "content": " -", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8304
8305data: {"event": "message", "content": " At", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8306
8307data: {"event": "message", "content": "obar", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8308
8309data: {"event": "message", "content": ".ai", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8310
8311data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8312
8313data: {"event": "message", "content": " ", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8314
8315data: {"event": "message", "content": " -", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8316
8317data: {"event": "message", "content": " AD", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8318
8319data: {"event": "message", "content": " Housing", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8320
8321data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8322
8323data: {"event": "message", "content": " ", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8324
8325data: {"event": "message", "content": " -", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8326
8327data: {"event": "message", "content": " AD", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8328
8329data: {"event": "message", "content": " Passport", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8330
8331data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8332
8333data: {"event": "message", "content": " ", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8334
8335data: {"event": "message", "content": " -", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8336
8337data: {"event": "message", "content": " Live", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8338
8339data: {"event": "message", "content": " Now", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8340
8341data: {"event": "message", "content": ",", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8342
8343data: {"event": "message", "content": " Pay", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8344
8345data: {"event": "message", "content": " Later", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8346
8347data: {"event": "message", "content": "(", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8348
8349data: {"event": "message", "content": "LN", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8350
8351data: {"event": "message", "content": "PL", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8352
8353data: {"event": "message", "content": ")\\n", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8354
8355data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8356
8357data: {"event": "message", "content": " App", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8358
8359data: {"event": "message", "content": "OS", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8360
8361data: {"event": "message", "content": "\\n", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8362
8363data: {"event": "message", "content": "-", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8364
8365data: {"event": "message", "content": " CV", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8366
8367data: {"event": "message", "content": "Agent", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8368
8369data: {"event": "message", "content": "\\n\\n", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8370
8371data: {"event": "message", "content": "これ", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8372
8373data: {"event": "message", "content": "ら", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8374
8375data: {"event": "message", "content": "の", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8376
8377data: {"event": "message", "content": "製", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8378
8379data: {"event": "message", "content": "品", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8380
8381data: {"event": "message", "content": "は", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8382
8383data: {"event": "message", "content": "、", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8384
8385data: {"event": "message", "content": "AI", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8386
8387data: {"event": "message", "content": "や", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8388
8389data: {"event": "message", "content": "フィ", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8390
8391data: {"event": "message", "content": "ン", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8392
8393data: {"event": "message", "content": "テ", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8394
8395data: {"event": "message", "content": "ック", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8396
8397data: {"event": "message", "content": "分", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8398
8399data: {"event": "message", "content": "野", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8400
8401data: {"event": "message", "content": "に", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8402
8403data: {"event": "message", "content": "特", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8404
8405data: {"event": "message", "content": "化", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8406
8407data: {"event": "message", "content": "した", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8408
8409data: {"event": "message", "content": "ソ", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8410
8411data: {"event": "message", "content": "リ", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8412
8413data: {"event": "message", "content": "ュー", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8414
8415data: {"event": "message", "content": "ション", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8416
8417data: {"event": "message", "content": "を", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8418
8419data: {"event": "message", "content": "提供", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8420
8421data: {"event": "message", "content": "しています", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8422
8423data: {"event": "message", "content": "。", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8424
8425data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 968, "output_tokens": 28, "total_tokens": 996}}
8426
8427data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 4420, "output_tokens": 119, "total_tokens": 4539}}
8428
8429data: {"event": "message", "content": "", "usage_metadata": {"input_tokens": 4420, "output_tokens": 119, "total_tokens": 4539}}
8430
8431data: {"event": "complete", "content": "<|stop|>", "usage_metadata": {"input_tokens": 4420, "output_tokens": 119, "total_tokens": 4539}}
8432
8433`}
vendor: 1,070 bytes, line 8433
8433,{slice:PL,forEach:ML}=[];function LL(t){return ML.call(PL.call(arguments,1),e=>{if(e)for(const n in e)t[n]===void 0&&(t[n]=e[n])}),t}function OL(t){return typeof t!="string"?!1:[/<\s*script.*?>/i,/<\s*\/\s*script\s*>/i,/<\s*img.*?on\w+\s*=/i,/<\s*\w+\s*on\w+\s*=.*?>/i,/javascript\s*:/i,/vbscript\s*:/i,/expression\s*\(/i,/eval\s*\(/i,/alert\s*\(/i,/document\.cookie/i,/document\.write\s*\(/i,/window\.location/i,/innerHTML/i].some(n=>n.test(t))}const W5=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,DL=function(t,e){const s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{path:"/"},i=encodeURIComponent(e);let r=`${t}=${i}`;if(s.maxAge>0){const c=s.maxAge-0;if(Number.isNaN(c))throw new Error("maxAge should be a Number");r+=`; Max-Age=${Math.floor(c)}`}if(s.domain){if(!W5.test(s.domain))throw new TypeError("option domain is invalid");r+=`; Domain=${s.domain}`}if(s.path){if(!W5.test(s.path))throw new TypeError("option path is invalid");r+=`; Path=${s.path}`}if(s.expires){if(typeof s.expires.toUTCString!="function")throw new TypeError("option expires is invali
8433d");r+=`; Expires=${s.expires.toUTCString()}`}if(s.httpOnly&&(r+="; HttpOnly"),s.secure&&(r+="; Secure"),s.sameSite)switch(typeof s.sameSite=="string"?s.sameSite.toLowerCase():s.sameSite){case!0:r+="; SameSite=Strict";break;case"lax":r+="; SameSite=Lax";break;case"strict":r+="; SameSite=Strict";break;case"none":r+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return s.partitioned&&(r+="; Partitioned"),r},X5={create(t,e,n,s){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};n&&(i.expires=new Date,i.expires.setTime(i.expires.getTime()+n*60*1e3)),s&&(i.domain=s),document.cookie=DL(t,e,i)},read(t){const e=`${t}=`,n=document.cookie.split(";");for(let s=0;s<n.length;s++){let i=n[s];for(;i.charAt(0)===" ";)i=i.substring(1,i.length);if(i.indexOf(e)===0)return i.substring(e.length,i.length)}return null},remove(t,e){this.create(t,"",-1,e)}};var zL={name:"cookie",lookup(t){let{lookupCookie:e}=t;if(e&&typeof document<"u")return X5.read(e)||void 0},cacheUserLanguage(t,e){let{lookupCookie:n,cookieMinutes:s,cookieDomain:i,cookieOptions:r}=e;n&&typeof document<"u"&&X5.create(n,t,s,i,r)}},BL={name:"querystring",lookup(t){let{lookupQuerystring:e}=t,n;if(typeof window<"u"){let{search:s}=window.location;!window.location.search&&window.location.hash?.indexOf("?")>-1&&(s=window.location.hash.substring(window.location.hash.indexOf("?")));const r=s.substring(1).split("&");for(let c=0;c<r.length;c++){const p=r[c].indexOf("=");p>0&&r[c].substring(0,p)===e&&(n=r[c].substring(p+1))}}return n}},$L={name:"hash",lookup(t){let{lookupHash:e,lookupFromHashIndex:n}=t,s;if(typeof window<"u"){const{hash:i}=window.location;if(i&&i.length>2){const r=i.substring(1);if(e){const c=r.split("&");for(let p=0;p<c.length;p++){const g=c[p].indexOf("=");g>0&&c[p].substring(0,g)===e&&(s=c[p].substring(g+1))}}if(s)return s;if(!s&&n>-1){const c=i.match(/\/([a-zA-Z-]*)/g);return Array.isArray(c)?c[typeof n=="number"?n:0]?.replace("/",""):void 0}}}return s}};let Fr=null;const Y5=()=>{if(Fr!==null)return Fr;try{if(Fr=typeof window<"u"&&window.localStorage!==null,!Fr)return!1;const t="i18next.translate.boo";window.localStorage.setItem(t,"foo"),window.localStorage.removeItem(t)}catch{Fr=!1}return Fr};var GL={name:"localStorage",lookup(t){let{lookupLocalStorage:e}=t;if(e&&Y5())return window.localStorage.getItem(e)||void 0},cacheUserLanguage(t,e){let{lookupLocalStorage:n}=e;n&&Y5()&&window.localStorage.setItem(n,t)}};let Ur=null;const Q5=()=>{if(Ur!==null)return Ur;try{if(Ur=typeof window<"u"&&window.sessionStorage!==null,!Ur)return!1;const t="i18next.translate.boo";window.sessionStorage.setItem(t,"foo"),window.sessionStorage.removeItem(t)}catch{Ur=!1}return Ur};var HL={name:"sessionStorage",lookup(t){let{lookupSessionStorage:e}=t;if(e&&Q5())return window.sessionStorage.getItem(e)||void 0},cacheUserLanguage(t,e){let{lookupSessionStorage:n}=e;n&&Q5()&&window.sessionStorage.setItem(n,t)}},FL={name:"navigator",lookup(t){const e=[];if(typeof navigator<"u"){const{languages:n,userLanguage:s,language:i}=navigator;if(n)for(let r=0;r<n.length;r++)e.push(n[r]);s&&e.push(s),i&&e.push(i)}return e.length>0?e:void 0}},UL={name:"htmlTag",lookup(t){let{htmlTag:e}=t,n;const s=e||(typeof document<"u"?document.documentElement:null);return s&&typeof s.getAttribute=="function"&&(n=s.getAttribute("lang")),n}},VL={name:"path",lookup(t){let{lookupFromPathIndex:e}=t;if(typeof window>"u")return;const n=window.location.pathname.match(/\/([a-zA-Z-]*)/g);return Array.isArray(n)?n[typeof e=="number"?e:0]?.replace("/",""):void 0}},qL={name:"subdomain",lookup(t){let{lookupFromSubdomainIndex:e}=t;const n=typeof e=="number"?e+1:1,s=typeof window<"u"&&window.location?.hostname?.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i);if(s)return s[n]}};let W6=!1;try{document.cookie,W6=!0}catch{}const X6=["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"];W6||X6.splice(1,1);const KL=()=>({order:X6,lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"],convertDetectedLanguage:t=>t});class Y6{constructor(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.type="languageDetector",this.detectors={},this.init(e,n)}init(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{languageUtils:{}},n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=e,this.options=LL(n,this.options||{},KL()),typeof this.options.convertDetectedLanguage=="string"&&this.options.convertDetectedLanguage.indexOf("15897")>-1&&(this.options.convertDetectedLanguage=i=>i.replace("-","_")),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=s,this.addDetector(zL),this.addDetector(BL),this.addDetector(GL),this.addDetector(HL),this.addDetector(FL),this.addDetector(UL),this.addDetector(VL),this.addDetector(qL),this.addDetector($L)}addDetector(e){return this.detectors[e.name]=e,this}detect(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.order,n=[];return e.forEach(s=>{if(this.detectors[s]){let i=this.detectors[s].lookup(this.options);i&&typeof i=="string"&&(i=[i]),i&&(n=n.concat(i))}}),n=n.filter(s=>s!=null&&!OL(s)).map(s=>this.options.convertDetectedLanguage(s)),this.services&&this.services.languageUtils&&this.services.languageUtils.getBestMatchFromCodes?n:n.length>0?n[0]:null}
8433cacheUserLanguage(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.caches;n&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(e)>-1||n.forEach(s=>{this.detectors[s]&&this.detectors[s].cacheUserLanguage(e,this.options)}))}}Y6.type="languageDetector";const WL={loading:"Loading...",error:"Error",success:"Success",cancel:"Cancel",continue:"Continue",back:"Back",save:"Save",edit:"Edit",delete:"Delete",confirm:"Confirm",close:"Close",submit:"Submit",next:"Next",previous:"Previous"},XL={backToHome:"Trang chủ",aboutUs:"Giới thiệu",companyInformation:"Thông tin Doanh nghiệp",ourExpert:"Về Ban lãnh đạo",companyCulture:"Văn hóa Tổ chức",coreValues:"Năng lực Cốt lõi",products:"Sản phẩm",helpCenter:"Trung tâm Hỗ trợ",privacyPolicy:"Chính sách Bảo mật Thông tin",contactUs:"Liên hệ với chúng tôi",aiEnhanced:"AI-Driven Development",aiFintechSolutions:"Giải pháp AI & Fintech",socialImpact:"Tác động Xã hội",forTheCommunity:"Vì cộng đồng",aiCapabilities:"Năng lực AI",coreValueOverview:"Tổng quan",coreValueSolutions:"AI Solutions",coreValueTechnology:"AI Capabilities",coreValueServices:"Fintech"},YL={news:"Tin tức & Sự kiện",aiBlog:"Kiến thức AI",subsidiaries:"Các công ty liên quan",contact:"Liên hệ",recruit:"Tuyển dụng",caseStudy:"Dự án điển hình",strategicPartners:"Đối tác chiến lược",subsidiaryCompanies:"Công ty thành viên",associatedCompanies:"Công ty liên kết",caseStudySubtitle:"Các dự án điển hình của React Plus phản ánh rõ năng lực triển khai, kinh nghiệm thực tiễn và giá trị bền vững mà công ty mang lại trong quá trình đồng hành cùng khách hàng phát triển giải pháp công nghệ.",coreValues:"Năng lực Cốt lõi",coreValueOverview:"Tổng quan",coreValueOverviewDesc:"Tổng quan năng lực cốt lõi",coreValueSolutions:"AI Solutions",coreValueSolutionsDesc:"10 giải pháp AI cho doanh nghiệp Nhật Bản",coreValueTechnology:"AI Capabilities",coreValueTechnologyDesc:"Hệ thống AI vận hành thật trong doanh nghiệp",coreValueServices:"Fintech",coreValueAiEnhanced:"AI-Driven Development",coreValueAiEnhancedDesc:"AI trong phát triển phần mềm",coreValueAiCapabilities:"Năng lực AI",coreValueAiCapabilitiesDesc:"Hệ thống AI vận hành thực tế",coreValueServicesDesc:"AI cho ngành tài chính"},QL={categories:{All:"Tất cả",AI:"AI",FinTech:"FinTech",Others:"Khác"}},JL=JSON.parse(`{"companyInformation":{"brandIdentity":{"sectionLabel":"BRAND IDENTITY","title":"Ý nghĩa Logo của React Plus","subtitle":"Infinite Intelligence in Motion","description":"Logo React Plus lấy cảm hứng từ Dải Mobius - một bề mặt toán học chỉ có một mặt và không có điểm kết thúc. Đây là biểu tượng cho chu trình AI khép kín: dữ liệu, suy luận (Reason), hành động (Act) liên tục luân chuyển và tự hoàn thiện. \\nTên gọi React Plus xuất phát từ chính mô hình tư duy này - Reason và Act, hai động lực cốt lõi của trí tuệ nhân tạo hiện đại. \\nKhi nhìn tổng thể, dải Mobius được tinh chỉnh thành hình chữ \\"A\\" cách điệu - khẳng định cam kết của React Plus về việc dẫn đầu (A-class) trong làn sóng AI Transformation tại Nhật Bản.","mobiusIntro":{"title":"Dải Mobius: Chu trình AI khép kín và Vĩnh cửu","subtitle":"Khối hình Icon logo của React Plus","body":"Tâm điểm của bộ nhận diện là hình tượng Dải Mobius (Mobius Strip) – một cấu trúc toán học đặc biệt với bề mặt một mặt duy nhất và không có điểm kết thúc. Đây là biểu tượng kinh điển cho sự vô hạn và tính thống nhất.","mathNote":"Trong toán học, dải Möbius là một bề mặt chỉ có một mặt và một đường biên. Nếu bạn lấy một cây bút và vẽ dọc theo chiều dài của dải, bạn sẽ quay trở lại điểm xuất phát mà không bao giờ phải nhấc bút lên hay lật sang mặt bên kia."},"closingNote":"Tại React Plus, mỗi điểm chạm trên logo đều là một lời cam kết về một tương lai nơi Trí tuệ vô hạn luôn chuyển động để tạo ra những giá trị đột phá cho khách hàng và cộng đồ
8433ng.","meanings":[{"id":"react-cycle","number":"01","title":"Dải Mobius: Chu trình AI khép kín và Vĩnh cửu","subtitle":"Tên gọi React Plus bắt nguồn từ mô hình tư duy Reason (Suy luận) và Act (Hành động). Dải Mobius thể hiện sự luân chuyển không ngừng giữa dữ liệu đầu vào, xử lý thông minh và kết quả thực tiễn.","points":[{"label":"Học máy liên tục (Continuous Learning)","text":"Trong thế giới AI, đây là chu trình học tập vĩnh cửu. Hệ thống càng vận hành, dữ liệu càng được tối ưu, tạo nên một vòng xoáy đi lên của tri thức và hiệu quả."},{"label":"Sự hợp nhất","text":"Hình khối không điểm đầu – điểm cuối tượng trưng cho việc xóa nhòa ranh giới giữa tư duy logic và thực thi, giữa con người và công nghệ."}]},{"id":"letter-a","number":"02","title":"Khối chữ \\"A\\" cách điệu: Cam kết dẫn đầu","subtitle":"Nếu nhìn từ góc độ tổng thể, dải Mobius được tinh chỉnh khéo léo để gợi nhắc đến chữ \\"A\\" viết hoa.","points":[{"label":"AI First","text":"Khẳng định DNA của React Plus luôn lấy Trí tuệ nhân tạo làm trọng tâm cốt lõi trong mọi giải pháp."},{"label":"Advanced & Alpha","text":"Chữ \\"A\\" đại diện cho khát vọng chinh phục những tiêu chuẩn chất lượng hàng đầu và vị thế tiên phong trên thị trường công nghệ."}]},{"id":"adaptability","number":"03","title":"Sự linh hoạt trong không gian đa chiều","subtitle":"Dù chỉ có một bề mặt duy nhất, dải Mobius lại tồn tại và vận động trong không gian ba chiều. Điều này phản ánh năng lực của React Plus.","points":[{"label":"Giải quyết bài toán phức tạp","text":"Khả năng tiếp cận vấn đề từ nhiều chiều dữ liệu để đưa ra giải pháp tối ưu nhất."},{"label":"Sự thích ứng (Adaptability)","text":"Các đường cong mềm mại đại diện cho sự uyển chuyển, sẵn sàng thay đổi để dẫn đầu trong một kỷ nguyên công nghệ biến thiên từng ngày."}]},{"id":"color-meaning","number":"04","title":"Ngôn ngữ của Màu sắc và Hình khối","subtitle":"Mỗi yếu tố hình ảnh đều được chọn lựa cẩn thận để truyền tải sự tin cậy, chiều sâu và trí tuệ.","points":[{"label":"Blue Gradient (Sắc xanh chuyển động)","text":"Màu xanh đặc trưng của công nghệ và sự tin cậy được thể hiện qua dải màu từ nhạt sang đậm. Hiệu ứng này tạo chiều sâu, tượng trưng cho sự minh bạch trong quy trình và độ sâu trong năng lực kỹ thuật."},{"label":"Typography hiện đại","text":"Phông chữ Sans-serif vững chãi, tối giản được lựa chọn để cân bằng với biểu tượng mềm mại phía trên. Sự kết hợp này mang đến cảm giác chuyên nghiệp, đáng tin cậy của một đối tác công nghệ chiến lược."}]}]},"intro":{"title":"React Plus","subtitle":"Let AI Handle the Rest","items":[{"title":"Tên công ty","content":"Công ty Cổ phần React Plus"},{"title":"Thành lập","content":"Tháng 5 năm 2019"},{"title":"CEO","content":"Lương Xuân Hải"},{"title":"Dịch vụ","content":"Cung cấp giải pháp AI x Fintech"},{"title":"Địa chỉ tại Việt Nam","content":"Tầng 7 Tòa nhà Golden Field, 24 Nguyễn Cơ  Thạch, Phường Từ Liêm, Hà Nội, Việt Nam\\n\\nTầng 5 Tòa nhà X2 Office, 458 Nguyễn Hữu Thọ, Cẩm Lệ, Đà Nẵng, Việt Nam"},{"title":"Địa chỉ tại Nhật Bản","content":"CANAL GATE SHIBAURA Building, 12-38 Shibaura 4-chome, Minato-ku, Tokyo 108-0023"},{"title":"Trang chủ","content":"https://www.reactplus.com"},{"title":"Quy mô","content":"320 thành viên (Tính đến 12/2025)"},{"title":"Pháp nhân Nhật Bản","content":"Mirai Plus Inc: https://mirai-plus.co.jp"},{"title":"Đối tác","content":"Milize Inc: https://milize.co.jp"}]},"vision":{"title":"Vision","body":"Trở thành bộ não AI từ xa cho doanh nghiệp Nhật Bản (Remote AI Brain for Japanese Enterprise)- không chỉ để làm nhanh hơn, mà để giúp họ vận hành thông minh hơn và tiến nhanh hơn trong giai đoạn AI Transformation.","learnMore":"Tìm hiểu thêm"},"mission":{"title":"Mission","body":"React Plus là công ty AI Solutions, nơi các hệ thống thông minh được xây dựng giúp tăng tốc độ, hiệu quả cho các hệ thống Fintech, Logistics và sản phẩm số tại Nhật Bản."},"strategy":{"title":"Core Strategy","subtitle":"Để hiện thực hóa tầm nhìn, React Plus tập trung vào 4 trụ cột chiến lược trọng tâm","s1":{"title":"AI Solution Company","body":"Chúng tôi xây dựng một tổ chức nơi AI không chỉ là công cụ hỗ trợ mà là cốt l
8433õi của mọi quy trình phát triển. Với đội ngũ chuyên gia, chúng tôi tin rằng cách chúng tôi triển khai AI cho khách hàng là hiệu quả và khác biệt."},"s2":{"title":"Fintech là lĩnh vực trọng tâm","body":"React Plus tập trung xây dựng các giải pháp cho ngân hàng và tổ chức tài chính, từ scoring, workflow nghiệp vụ đến các hệ thống hỗ trợ tư vấn và vận hành. Đây là lĩnh vực chúng tôi tự tin có thể tạo ra sự khác biệt."},"s3":{"title":"Cung cấp những sản phẩm AI ra thị trường","body":"React Plus xây dựng các sản phẩm AI vận hành thật như hệ thống scoring, agent workflows, predictive dashboards và embedded intelligence trong sản phẩm, tạo ra giá trị trực tiếp cho doanh nghiệp."},"s4":{"title":"Xây dựng Năng lực AI cốt lõi","body":"Bên cạnh Fintech, React Plus sở hữu các năng lực AI có thể áp dụng rộng trong nhiều lĩnh vực:\\nAI Agents & Decision Automation, Edge AI & On-site Intelligence, Embedded AI for Software & Products."}},"safety":{"title":"Why React Plus?","open":"Mở chi tiết","close":"Đóng","cards":[{"id":"kids","title":"Đội ngũ Chuyên gia AI giàu kinh nghiệm","body":"Hơn 50 chuyên gia AI triển khai các giải pháp thực tế với AI Agents, LLM và Edge AI, biến công nghệ thành năng lực vận hành thật, không chỉ là demo hay prototype"},{"id":"privacy","title":"Hiểu biết chuyên sâu về domain và nghiệp vụ","body":"Hàng trăm kỹ sư am hiểu Fintech, Logistics, Digital Products tại Nhật Bản, cung cấp giải pháp AI chính xác, tối ưu dựa trên kinh nghiệm chuyên sâu"},{"id":"deepfake","title":"Kinh nghiệm hợp tác với tập đoàn lớn","body":"Chúng tôi đã triển khai dự án cho nhiều tập đoàn lớn và mega bank tại Nhật, giải quyết các bài toán phức tạp về tín dụng, rủi ro, vận hành và dịch vụ khách hàng, đáp ứng được những nhu cầu khắt khe nhất"},{"id":"bias","title":"AI Driven Engineer trong phát triển phần mềm","body":"Mô hình AI-driven engineering  của React Plus cho phép rút ngắn đáng kể thời gian cũng như chi phí so với mô hình truyền thống"}]}}
8433,"ourExpert":{"title":"Về Ban lãnh đạo","ceoMessage":{"title":"Thông điệp từ CEO","paragraphs":["“Bất kỳ công nghệ nào đủ tiên tiến\\nđều không thể phân biệt được với ma thuật.”","- Arthur C. Clarke","Tôi hiểu rất rõ điều đó vào khoảnh khắc chứng kiến AppOS - một sản phẩm của React Plus - biến một prompt từ ngôn ngữ tự nhiên thành ứng dụng di động chạy được trong vài phút.\\n Không phải mockup. Không phải demo. Một mobile application có thể dùng, có thể chỉnh sửa, có thể triển khai.\\n Khi một ý tưởng đi từ ngôn ngữ sang sản phẩm gần như ngay lập tức, ranh giới giữa “lập kế hoạch”, “xây dựng” và “triển khai” bắt đầu sụp đổ. Đó là lúc tôi nhận ra: AI không còn là công cụ hỗ trợ. Nó đang trở thành một năng lực sản xuất mới.","Hơn 15 năm khởi nghiệp công nghệ cho tôi một góc nhìn: làn sóng AI vài năm gần đây không chỉ là bước tiến kỹ thuật. Đây là bước ngoặt của ngành. AI không xóa quy trình phát triển phần mềm - nó nén lại với tốc độ vài năm trước còn khó tin. Khi tốc độ tạo ra phần mềm thay đổi, toàn bộ logic cạnh tranh của ngành cũng thay đổi.\\n Vì vậy, React Plus đã chọn con đường AI Solutions.\\n Chúng tôi không tiếp cận AI như một lớp bổ sung làm đẹp câu chuyện kinh doanh, mà là sức mạnh thực sự giúp doanh nghiệp tạo ra những khoảnh khắc ma thuật. Đây là một năng lực sản xuất mới - từ AI Agent, LLM cho đến Edge AI - với mục tiêu nhất quán: biến AI thành giá trị vận hành thực tế.","Tôi tin rằng trong tương lai không xa, khoảng cách giữa các doanh nghiệp sẽ không còn nằm ở việc ai có nhiều người hơn, mà ở việc ai tái cấu trúc được tổ chức của mình quanh AI.\\n Norbert Wiener - cha đẻ của cybernetics - từng cảnh báo:","“Chúng ta đã thay đổi môi trường của mình triệt để đến mức bây giờ chúng ta phải thay đổi chính mình để tồn tại trong môi trường mới đó.”","- Norbert Wiener","Trong môi trường mới đó, doanh nghiệp không chỉ cần dùng AI - họ cần thay đổi chính mình quanh AI. Đó là điều kiện để tồn tại và phát triển trong thập kỷ tới."],"name":"Lương Xuân Hải","role":"CEO"},"hai":{"name":"Lương Xuân Hải","role":"CEO","paragraphs":["Bắt đầu sự nghiệp năm 2011 khi tham gia xây dựng nền tảng matching cho các start-up ở Boston Mỹ. Trong thời gian này từng dẫn dắt những dự án trong hệ sinh thái hỗ trợ cựu quân nhân Hoa Kỳ - sáng kiến chung của George W. Bush Institute (viện chính sách do cựu Tổng thống George W. Bush sáng lập) và chương trình Hiring Our Heroes thuộc U.S. Chamber of Commerce Foundation, cùng với đó là dự án cho Wreaths Across America, tổ chức tưởng niệm cựu quân nhân trên toàn nước Mỹ. Năm 2014, cùng các kỹ sư đến từ Google và Dropbox thành lập công ty phát triển ứng dụng dành cho Apple Watch. Năm 2015, sáng lập Sphinx – công ty chuyên về JavaScript – và thực hiện thành công thương vụ M&A vào năm 2017.","Năm 2018, thành lập công ty công nghệ cho thị trường Nhật, mở rộng kinh nghiệm trong nhiều lĩnh vực khác nhau và M&A công ty này với đối tác Nhật trong năm 2019. Năm 2019, sáng lập React Plus – đồng thời dẫn dắt sự tăng trưởng của doanh nghiệp thông qua các ý tưởng đổi mới và tinh thần thử thách."]},"mai":{"name":"Jessica Mai","role":"Đồng sáng lập kiêm CRO","paragraphs":["Hoàn thành chương trình Thạc sĩ tại Đại học Kobe (Nhật Bản) năm 2011. Từ năm 2014, tham gia FPT – tập đoàn CNTT lớn nhất Việt Nam – với vai trò Account Manager cho các khách hàng lớn trong lĩnh vực fintech và ô tô, phụ trách đề xuất chiến lược, quản lý dự án và hỗ trợ khách hàng mở rộng kinh doanh toàn cầu.","Sau đó, đồng sáng lập React Plus, đóng vai trò cầu nối giữa công nghệ và kinh doanh, hỗ trợ các doanh nghiệp trong hành trình chuyển đổi số."]}
8433,"hung":{"name":"Đào Hữu Hùng","role":"CTO · CHIEF TECHNOLOGY OFFICER","paragraphs":["Tốt nghiệp Tiến sÄ© AI tại Keio University, với gần 20 năm kinh nghiệm dẫn dắt các chương trình AI từ nghiên cứu đến triển khai thá»±c tế. Từng đảm nhiệm vị trí Director of AI Center tại VPBank, FPT Software, VinBrain (NVIDIA Vietnam) - phụ trách chiến lược GenAI và phát triển nền tảng AI Agent cho hệ sinh thái ngân hàng.","Dẫn dắt hÆ¡n 300 dá»± án AI trải rộng trên nhiều lÄ©nh vá»±c: ngân hàng, tài chính, logistics, y tế, ô tô và sản xuất. Sở hữu nền tảng vững chắc ở cả mảng nghiên cứu lẫn kinh doanh, với nhiều công bố học thuật, bằng sáng chế đăng ký tại Nhật, cùng kinh nghiệm dày dặn trong việc đưa AI từ phòng nghiên cứu thành sản phẩm, doanh thu và năng lá»±c tổ chức."]},"fujino":{"name":"Yasuo Fujino","role":"Thành viên Hội đồng Quản trị","paragraphs":["Tích lÅ©y kinh nghiệm tại SoftBank trong vận hành hệ thống, bảo trì và hỗ trợ kỹ thuật. Có hÆ¡n 10 năm phụ trách lập kế hoạch và thúc đẩy hoạt động IT outsourcing theo mô hình offshore.","Hoạt động độc lập với vai trò tư vấn offshore, chuyển trọng tâm từ thị trường Trung Quốc sang triển khai offshore tại Việt Nam trong vài năm gần đây."]},"tuan":{"name":"Chu Anh Tuấn","role":"COO · CHIEF OPERATING OFFICER","paragraphs":["Sở hữu hÆ¡n 20 năm kinh nghiệm trong lÄ©nh vá»±c công nghệ thông tin, dẫn dắt thành công nhiều dá»± án quy mô lớn cho khách hàng quốc tế trong các lÄ©nh vá»±c FinTech, Government, Healthcare và HR Tech. Nền tảng vững chắc về quản lý dá»± án (PMP), Agile và kiến trúc hệ thống, đồng thời có kinh nghiệm xây dá»±ng và vận hành đội ngÅ© đa chi nhánh với quy mô hÆ¡n 2500 nhân sá»±.","Từng định hướng chiến lược và phát triển các chương trình đào tạo quy mô lớn, đóng góp trá»±c tiếp vào việc xây dá»±ng nguồn nhân lá»±c công nghệ chất lượng cao. Đồng thời lãnh đạo hoạt động chuẩn hóa hệ thống quản trị theo các tiêu chuẩn quốc tế như ISO/IEC 27001 và ISO 9001, góp phần nâng cao năng lá»±c vận hành, bảo mật và phát triển bền vững cá»§a tổ chức."]},"tetsumura":{"name":"Kazuyuki Tetsumura","role":"Japan Market Sales Manager","paragraphs":["Bắt đầu sá»± nghiệp tại NEC, phụ trách thúc đẩy các dá»± án xây dá»±ng hạ tầng viễn thông tại khu vá»±c Trung và Nam Mỹ. Tiếp theo, tại NTT Docomo, đảm nhiệm đầu tư kinh doanh quốc tế và kinh doanh doanh nghiệp, đóng góp vào việc thành lập hoạt động tại Mỹ và Trung – Nam Mỹ.","Từ năm 2020, dẫn dắt Nissho Electronics Vietnam với quy mô khoảng 110 nhân sá»±, triển khai phát triển offshore, thúc đẩy các dá»± án kinh doanh mới và hỗ trợ phát triển startup công nghệ. Hiện tại, tập trung mở rộng hoạt động kinh doanh tại Mirai Plus."]},"tinh":{"name":"Phạm Xuân Tình","role":"CAIO · CHIEF AI OFFICER","paragraphs":["Có hÆ¡n 12 năm kinh nghiệm trong việc triển khai và dẫn dắt các dá»± án AI/IT tại nhiều tổ chức, doanh nghiệp và tập đoàn lớn trên thế giới. Từng đảm nhận vai trò Chuyên gia, Quản lý cao cấp tại Techcombank, VPBank, FPT - trá»±c tiếp phụ trách phát triển các sản phẩm và giải pháp AI trọng yếu trong lÄ©nh vá»±c BFSI (Banking, Financial Services, and Insurance). Qua đó góp phần thúc đẩy quá trình chuyển đổi AI cá»§a các doanh nghiệp trong lÄ©nh vá»±c tài chính-ngân hàng.","Với nền tảng kiến thức chuyên sâu về AI được đào tạo tại các trường đại học từ nhiều quốc gia có nền khoa học - công nghệ tiên tiến trên thế giới (Vương Quốc Anh, Ireland, Hàn Quốc) cùng bề dày kinh nghiệm thá»±c chiến và năng lá»±c lãnh đạo, dẫn dắt đội ngÅ© kỹ sư AI triển khai thành công nhiều giải pháp ứng dụng thá»±c tế tại hÆ¡n 20 quốc gia, khẳng định vai trò tiên phong trong việc đưa AI vào vận hành ở quy mô toàn cầu."]},"canh":{"name":"Ngô Xuân Cảnh","role":"CDO · CHIEF DELIVERY OFFICER","paragraphs":["Sở hữu hÆ¡n 20 năm kinh nghiệm trong phát triển phần mềm và IT Outsourcing, với thế mạnh về quản trị, triển khai dá»± án toàn diện và phát triển tổ chức, đặc biệt tại thị trường Nhật Bản. Từng nhiều năm trá»±c tiếp đảm nhiệm vị trí SE, BrSE tại các tập đoàn công nghệ ngay tại Nhật Bản, kết hợp cùng khả năng tá»± học tiếng Nhật thông qua công việc, đã hình thành nền tảng vững chắc để thấu hiểu văn hóa doanh nghiệp, phương thức vận hành dá»± án và những chuẩn má»±c chất lượng khắt khe cá»§a thị trường này.","Tại Việt Nam, từng dẫn dắt nhiều dá»± án quy mô vừa đến lớn, bao gồm những dá»± án lớn sá»­ dụng nguồn vốn ODA cá»§a Chính phá»§ Nhật Bản. Từng xây dá»±ng và phát triển thị trường Nhật Bản cho một trong những tập đoàn công nghệ hàng đá
8433º§u Việt Nam, đồng thời trá»±c tiếp lãnh đạo và phát triển tổ chức chuyên trách thị trường này với quy mô hÆ¡n 200 kỹ sư, bao gồm cả việc thành lập pháp nhân tại Nhật Bản. Phong cách lãnh đạo hướng đến trao quyền, xây dá»±ng niềm tin, lấy con người làm trung tâm và chá»§ động ứng dụng công nghệ mới trong bối cảnh AI đang thay đổi ngành công nghệ."]}},"companyCulture":{"pageCulture":{"title":"React Plus - Ngôi nhà công nghệ đầy nhiệt huyết và tình cảm","description":"React Plus xây dá»±ng văn hoá dá»±a trên sá»± gắn bó được tạo ra trong quá trình chúng tôi cùng làm việc và vượt qua áp lá»±c. Không phải khẩu hiệu, mà chính những lần cùng xá»­ lý vấn đề, cùng chạy tiến độ và cùng hoàn thành mục tiêu đã tạo nên sá»± kết nối bền vững. Sá»± gắn bó đó được duy trì theo thời gian - khi hệ thống phát triển, khi yêu cầu thay đổi, chúng tôi vẫn phối hợp ổn định và liền mạch. Với chúng tôi, sá»± gắn bó không mang tính cảm tính, mà là kết quả cá»§a việc cùng chịu trách nhiệm và cùng tạo ra giá trị trong một hệ thống thống nhất.","cover":"/assets/images/culture/cover.png","titleOffice":"VĂN PHÒNG LÀM VIỆC","subTitleOffice":"Không gian làm việc","officeDescription":"Không gian làm việc được thiết kế theo mô hình văn phòng mở, hiện đại và thoáng đãng, tạo nên môi trường chuyên nghiệp, thuận tiện cho kết nối, hợp tác và nâng cao hiệu quả công việc. Bên cạnh đó, công ty còn trang bị canteen riêng, khu vá»±c thư viện, phòng ODC và các không gian hỗ trợ khác, đáp ứng tốt nhu cầu làm việc và sinh hoạt hằng ngày cá»§a nhân viên.","titleHealth":"React Plus Woman's Cup","descriptionHealth":"Sá»± kiện đá bóng nữ cá»§a React Plus mang một điểm đặc biệt khi được dẫn dắt bởi các nhân sá»± nữ trong môi trường công nghệ. Không chỉ tham gia, họ thi đấu chá»§ động, phối hợp tốt và mang lại năng lượng rất rõ ràng trên sân. Đây không chỉ là hoạt động thể thao, mà còn là cách thể hiện sá»± tá»± tin, tinh thần thá»­ thách và vai trò ngày càng rõ nét cá»§a nhân sá»± nữ tại React Plus.\\r\\n","titleFestival":"Hoạt động văn nghệ ","descriptionFestival":"Các hoạt động văn nghệ tại React Plus luôn là điểm nhấn trong những sá»± kiện lớn, nÆ¡i không khí được đẩy lên cao trào bằng những tiết mục được chuẩn bị chỉn chu và đầy năng lượng. Từ ca hát, nhảy múa đến các màn trình diễn sáng tạo, tất cả đều được đầu tư nghiêm túc và mang dấu ấn riêng cá»§a từng tập thể. Đây không chỉ là phần giải trí, mà còn là sân khấu để thể hiện tinh thần, màu sắc và sá»± gắn kết. Mỗi tiết mục là một phần cá»§a bức tranh chung, góp phần tạo nên những sá»± kiện trọn vẹn và đáng nhớ tại React Plus.","titleKaraoke":"Karaoke Legendary Contest","descriptionKaraoke":"Karaoke Legendary Contest là sá»± kiện nội bộ được tổ chức ngay tại văn phòng React Plus, dành cho những “giọng ca tiềm ẩn” có dịp được thể hiện. Không cần sân khấu lớn, chính không gian quen thuộc lại trở thành nÆ¡i bùng nổ năng lượng với những phần trình diễn đầy cảm xúc. Sá»± kiện thu hút đông đảo nhân sá»± tham gia, không chỉ với vai trò thí sinh mà còn là khán giả cổ vÅ© nhiệt tình. Đây không chỉ là một cuộc thi, mà còn là dịp để giải toả áp lá»±c, tạo không khí sôi động và tăng thêm sá»± kết nối trong tập thể.","titleMatxa":"Chăm sóc sức khỏe phái mạnh","descriptionMatxa":"React Plus mang đến sá»± kiện chăm sóc sức khỏe cho phái nam ngay tại văn phòng để tận hưởng trọn vẹn hai dịch vụ cắt tóc và massage bấm huyệt mà không cần di chuyển. Trong không gi
8433an quen thuộc nhưng được “biến hóa” thành khu thư giãn, nhân sự sẽ được làm mới diện mạo với kiểu tóc gọn gàng, hiện đại, đồng thời giải tỏa căng thẳng với liệu trình bấm huyệt giúp giảm mỏi cổ – vai – gáy. Đây không chỉ là hoạt động chăm sóc cá nhân mà còn là trải nghiệm tái tạo năng lượng để làm việc hiệu quả hơn mỗi ngày.","titleWomanDay":"Hoạt động chăm sóc phái đẹp","descriptionWomanDay":"Sự kiện chăm sóc phái đẹp được tổ chức ngay tại văn phòng trong không gian quen thuộc nhưng được “biến hóa” thành khu trải nghiệm nhẹ nhàng. Nhân sự được tận hưởng trọn vẹn những phút giây thư giãn và làm đẹp với các hoạt động như workshop nail, massage và workshop làm nến thơm tinh dầu,... Đây không chỉ là hoạt động chăm sóc bản thân mà còn là cơ hội để tái tạo năng lượng, cân bằng cảm xúc và kết nối cùng đồng nghiệp, giúp bạn luôn rạng rỡ và tràn đầy cảm hứng trong công việc mỗi ngày.","titleEsport":"Esport Street Fighter","descriptionEsport":"Giải đấu nội bộ Esport Street Fighter của React Plus là sân chơi đối kháng hấp dẫn, nơi các thành viên tranh tài theo thể thức 2vs2 đầy kịch tính. Không chỉ là cuộc tranh tài gay cấn giữa những “chiến binh” quen thuộc nhằm đề cao kỹ năng và chiến thuật, giải đấu còn nổi bật với những phần thưởng giá trị, hứa hẹn mang đến bầu không khí thi đấu sôi động, gắn kết và bùng nổ.","titleBanner":"Hãy tham gia cùng chúng tôi\\n để định hình tương lai của công nghệ","bannerUrl":"/assets/images/culture/yep2025.jpg","textLink":"Tham gia với chúng tôi","linkUrl":"/recruit","awardsLabel":"AWARDS","awardsTitle":"Giải thưởng nội bộ","awardsDescription":"Tại React Plus, thành công không chỉ được tạo nên bởi sản phẩm, dự án hay doanh thu, mà còn đến từ sự nỗ lực bền bỉ của từng cá nhân và tinh thần đồng hành của cả tập thể. Mỗi dòng code chất lượng, mỗi ý tưởng cải tiến, mỗi lần hỗ trợ đồng đội hay mỗi dự án được hoàn thành đúng cam kết đều là những giá trị đáng được ghi nhận."},"awards":[{"id":12,"title":"Dự án hoàn thành dự án trước thời hạn","image":{"url":"/assets/images/culture/award_0.png"},"description":"<p>Tối ưu việc sử dụng nguồn lực chung của dự án đồng thời hoàn thành dự án sớm hơn thời hạn cam kết.</p>\\r\\n","created_at":"2025-05-21T15:02:00.875Z","updated_at":"2025-05-21T15:03:08.693Z"},{"id":11,"title":" Chuyên cần Quý","image":{"url":"/assets/images/culture/award_1.png"},"description":"<p>C&aacute;c c&aacute; nh&acirc;n c&oacute; tinh thần l&agrave;m việc chuy&ecirc;n nghiệp, lu&ocirc;n &yacute; thức đảm bảo giờ giấc l&agrave;m việc một c&aacute;ch chuẩn chỉnh nhất.</p>\\r\\n","created_at":"2024-09-10T10:10:12.498Z","updated_at":"2025-05-21T15:03:34.192Z"},{"id":10,"title":"Đạt các chứng chỉ có uy tín bên ngoài","image":{"url":"/assets/images/culture/award_2.png"},"description":"<p>C&aacute; nh&acirc;n đ&atilde; đạt được c&aacute;c chứng chỉ chuy&ecirc;n m&ocirc;n c&oacute; gi&aacute; trị, n&acirc;ng cao năng lực c&aacute; nh&acirc;n v&agrave; uy t&iacute;n của c&ocirc;ng ty.</p>\\r\\n","created_at":"2024-09-10T10:09:28.113Z","updated_at":"2025-05-21T15:04:07.471Z"},{"id":9,"title":"Cá nhân đạt số giờ đào tạo vượt kế hoạch","image":{"url":"/assets/images/culture/award_3.png"},"description":"<p>C&aacute; nh&acirc;n c&oacute; tinh thần ham học hỏi, đạt số giờ đ&agrave;o tạo vượt 200% so với kế hoạch v&agrave; kh&ocirc;ng ngừng n&acirc;ng cấp&nbsp;bản th&acirc;n.</p>\\r\\n","created_at":"2024-09-10T10:08:04.641Z","updated_at":"2025-05-21T15:04:22.360Z"},{"id":8,"title":"Cá nhân hoàn thành và đạt kết quả cao trong đào tạo","image":{"url":"/assets/images/culture/award_4.png"},"description":"<p>C&aacute; nh&acirc;n đ&atilde; c&oacute; sự nỗ lực kh&ocirc;ng ngừng v&agrave; đạt được những th&agrave;nh t&iacute;ch xuất sắc sau khi ho&agrave;n th&agrave;nh c&aacute;c kh&oacute;a học.</p>\\r\\n","created_at":"2024-09-10T10:07:03.411Z","updated_at":"2025-05-21T15:04:36.885Z"},{"id":7,"title":"Team hoàn thành kế hoạch đào tạo","image":{"url":"/assets/images/culture/award_5.png"},"description":"<p>Đội ngũ đ&atilde; thể hiện tinh thần học hỏi kh&ocirc;ng ngừng v&agrave; đạt được kết quả cao trong việc n&acirc;ng cao năng lực.</p>\\r\\n","created_at":"2024-09-10T10:06:33.099Z","updated_at":"2025-05-21T15:05:07.673Z"},{"id":6,"title":"Cá nhân xuất sắc","image":{"url":"/assets/images/culture/award_6.png"},"description":"<p>C&aacute; nh&acirc;n đ&atilde; thể hiện sự xuất sắc trong c&ocirc;ng việc, l&agrave; tấm gương s&aacute;ng cho to&agrave;n thể nh&acirc;n vi&ecirc;n.</p>\\r\\n","created_at":"2024-09-10T10:06:05.074Z","updated_at":"2025-05-21T15:05:20.962Z"},{"id":5,"title":"Dự án điển hình Quý","image":{"url":"/assets/images/culture/award_7.png"},"description":"<p>Dự &aacute;
8433n lớn, mang lại những gi&aacute; trị vượt trội v&agrave; đ&oacute;ng g&oacute;p t&iacute;ch cực v&agrave;o sự ph&aacute;t triển của c&ocirc;ng ty.</p>\\r\\n","created_at":"2024-09-10T10:05:32.523Z","updated_at":"2025-05-21T15:05:32.232Z"},{"id":4,"title":"Dự án không có bug A lọt sang khách hàng","image":{"url":"/assets/images/culture/award_8.png"},"description":"<p>Dự &aacute;n kh&ocirc;ng chỉ ho&agrave;n th&agrave;nh đ&uacute;ng tiến độ m&agrave; c&ograve;n đạt được chất lượng ho&agrave;n hảo, kh&ocirc;ng c&oacute; bất&nbsp;kỳ lỗi nghi&ecirc;m trọng n&agrave;o (bug A) lọt ra ngo&agrave;i.</p>\\r\\n","created_at":"2024-09-10T10:01:53.122Z","updated_at":"2025-05-21T15:05:45.586Z"},{"id":3,"title":"Dự án phức tạp hoàn thành đúng hạn","image":{"url":"/assets/images/culture/award_9.png"},"description":"<p>Dự án được đánh giá có độ phức tạp cao nhưng luôn đảm bảo sự phối hợp hiệu quả giữa các bộ phận.</p>\\r\\n","created_at":"2024-09-10T10:00:39.711Z","updated_at":"2025-05-21T15:05:57.776Z"},{"id":2,"title":"Dự án nhận được đánh giá cao nhất từ khách hàng","image":{"url":"/assets/images/culture/award_10.png"},"description":"<p>Nhận được đánh giá cao từ phía khách hàng về chất lượng sản phẩm/dịch vụ, thái độ phục vụ.</p>\\r\\n","created_at":"2024-08-13T10:55:27.310Z","updated_at":"2025-05-21T15:06:11.242Z"}],"health":[{"id":3,"type_health_festival":"health","image":{"url":"/assets/images/culture/womans_football_2024.png"},"title":"React Plus Cup","created_at":"2021-11-17T02:11:09.558Z","updated_at":"2024-12-16T10:52:52.615Z"},{"id":1,"type_health_festival":"health","image":{"url":"/assets/images/culture/health_1.png"},"title":"E-Sport","created_at":"2021-11-17T02:11:09.372Z","updated_at":"2024-12-17T02:32:53.760Z"}],"festival":[{"id":8,"type_health_festival":"festival","image":{"url":"/assets/images/culture/festival_0.jpg"},"title":"5th Anniversary ","created_at":"2024-12-17T02:30:54.143Z","updated_at":"2024-12-17T02:30:54.143Z"},{"id":7,"type_health_festival":"festival","image":{"url":"/assets/images/culture/festival_1.png"},"title":"Quốc tế phụ nữ ","created_at":"2021-11-17T02:11:09.724Z","updated_at":"2024-12-17T02:25:33.746Z"},{"id":6,"type_health_festival":"festival","image":{"url":"/assets/images/culture/festival_2.png"},"title":"Karaoke Legendary Contest","created_at":"2021-11-17T02:11:09.690Z","updated_at":"2024-12-16T11:13:19.350Z"}],"villages":[{"id":41,"title":"Nỗ lực và giá trị công việc","description":"Tại React Plus, mỗi dòng code chất lượng đều hướng tới những giá trị thật và ý nghĩa cho khách hàng.","image":{"url":"/company-culture/award/ADS_6586.JPG"}},{"id":40,"title":"Tinh thần đồng đội gắn kết","description":"Sự đoàn kết và thấu hiểu giữa các thành viên là nền tảng cho mọi thành công của doanh nghiệp.","image":{"url":"/company-culture/award/ADS_6570.JPG"}},{"id":31,"title":"Sáng tạo và bứt phá","description":"Chúng tôi không ngừng tìm tòi và ứng dụng những công nghệ mới nhất để giải quyết các bài toán khó.","image":{"url":"/company-culture/award/ADS_7674.jpg"}}],"offices":[{"id":39,"image":{"url":"/assets/images/culture/office_0.jpg"},"type_image":"office","created_at":"2024-08-15T04:20:53.379Z","updated_at":"2024-12-16T10:32:16.101Z"},{"id":38,"image":{"url":"/assets/images/culture/office_1.png"},"type_image":"office","created_at":"2024-08-15T04:17:35.328Z","updated_at":"2024-12-16T10:19:45.057Z"},{"id":37,"image":{"url":"/images/culture/VP1.jpeg"},"title":"Văn phòng mở, hiện đại, thoáng đãng","type_image":"office"},{"id":36,"image":{"url":"/images/culture/VP2.jpeg"},"title":"Khuyến khích kết nối và hợp tác","type_image":"office"},{"id":35,"image":{"url":"/assets/images/culture/office_4.png"},"title":"Đầy đủ tiện ích hỗ trợ","type_image":"office"}]}}`),ZL=JSON.parse('{"aiEnhanced":{"heroLabel":"AI-DRIVEN DEVELOPMENT","title":"Engineering-grade code,\\nkhông phải vibe code","subtitle":"","intro":{"paragraphs":["React Plus build software cho doanh nghiệp với AI agent hỗ trợ engineer trong toàn bộ chu kỳ (Full SDLC) - từ requirements, design, code, test, đến deployment. Mọi đầu ra phải pass full pipeline (review → test → merge → maintain) trước khi vào production.","Code chỉ-có-giá-trị-demo bị reject ở review gate. Đây là cách chúng tôi giảm 80% effort mà không compromise chất lượng production."]},"transformation":{"label":"TRANSFORMATION","title":"Traditional vs AI-Driven Development","desc":"Quy trình phát triển phần mềm đã thay đổi căn bản. Bốn g
8433iai đoạn - bốn cách tiếp cận khác nhau:","headers":{"phase":"GIAI ĐOẠN","traditional":"TRADITIONAL","aiDriven":"AI-DRIVEN"},"rows":[{"phase":"Requirements","traditional":"Phụ thuộc kinh nghiệm cá nhân, thảo luận chậm, viết tài liệu thủ công","aiDriven":"AI tạo prototype, đề xuất specs, tự động hóa tài liệu, đạt đồng thuận nhanh"},{"phase":"Development","traditional":"Code from scratch, refactoring tốn công, research công nghệ chậm","aiDriven":"Code generation + auto-refactoring, AI phân tích codebase và kiến trúc hiện có"},{"phase":"Testing","traditional":"Test design thủ công, thiếu risk scenarios, phát hiện bug muộn","aiDriven":"Auto-generate test cases, bổ sung risk scenarios, phân tích error trends liên tục"},{"phase":"Quality","traditional":"Demo-level code thường stuck ở review/merge, QA & security xử lý reactive","aiDriven":"Engineering-grade pipeline (review → test → merge → maintain), evidence rõ ràng về quality & coverage"}],"callout":"Engineering-grade code - KHÔNG phải vibe code: Mọi code AI-generated phải pass full pipeline. Demo-level code không có giá trị vận hành. Chỉ production-grade code mới được merge.","result":"Kết quả: Giảm khoảng 60-80% effort so với traditional development, với điều kiện duy trì engineering discipline."},"workflow":{"label":"WORKFLOW","title":"AI Agent-First trong full SDLC - Quy trình 5 bước","desc":"Quy trình áp dụng AI agents xuyên suốt SDLC, mỗi bước có artifact rõ ràng và human ownership.","stages":[{"num":"01","name":"Specify","actor":"BA + AI → spec.md","desc":"Business Analyst làm việc với AI để biến yêu cầu nghiệp vụ thành specification. AI draft, BA review và approve."},{"num":"02","name":"Planning","actor":"Dev + AI → plan.md","desc":"Developer làm việc với AI để chia spec thành kế hoạch FE/BE. Sau khi lock API contract giữa FE Dev và BE Dev, hai team chạy parallel."},{"num":"03","name":"Tasking","actor":"Dev + AI → tasks.md","desc":"AI breakdown plan thành các task ≤ 1 ngày. Dev review và approve trước khi bắt đầu code."},{"num":"04","name":"Code + UT + PR","actor":"AI + Dev → code + PR","desc":"AI sinh code và unit test. CI auto-run UT + Lint. AI Code Review chạy inline comments. Dev own PR và là người duy nhất merge."},{"num":"05","name":"Test Execution","actor":"Tester + AI → report","desc":"Tester làm việc với AI để chạy IT/ST trên Dev/Test environment. Bug tracking tự động. Sau pass, PM chọn batch features để release lên Staging."}],"comparisonTitle":"Comparison với Traditional SDLC","comparisonHeaders":{"criteria":"Tiêu chí","traditional":"Traditional","aiFirst":"AI Agent-First"},"comparisonRows":[{"criteria":"Artifact creation","traditional":"Hoàn toàn manual","aiFirst":"AI draft → human review (giảm thời gian đáng kể)"},{"criteria":"FE/BE parallelism","traditional":"Sequential, chờ nhau","aiFirst":"Parallel với API spec lock"},{"criteria":"UT coverage","traditional":"Chỉ Dev tạo test cases","aiFirst":"2 nguồn: Dev UT + QC UT (3 góc nhìn)"},{"criteria":"IT/ST coverage","traditional":"Thường thiếu","aiFirst":"QC Track chạy parallel với Dev Track"},{"criteria":"Boundary control","traditional":"Khó trace approval","aiFirst":"Mỗi stage có gate + audit log trên Git"}]},"aiAgents":{"label":"AI AGENTS","title":"Vai trò AI agents trong từng stage","desc":"Sáu AI agents chuyên trách trong SDLC, mỗi agent có scope và output cụ thể:","agents":[{"name":"Spec Draft Agent","desc":"Draft spec.md từ feature description và Figma design.","output":"Output: bản nháp specification cho BA review."},{"name":"Planning Agent","desc":"Đề xuất plan-fe.md / plan-be.md dựa trên spec và codebase hiện có.","output":"Output: kế hoạch implementation cho FE và BE."},{"name":"Tasking Agent","desc":"Breakdown plan thành tasks-fe.md / tasks-be.md, mỗi task ≤ 1 ngày work.","output":"Output: backlog có thể assign trực tiếp."},{"name":"Code / Test / Fix Agent","desc":"TDD loop - sinh test case, sinh code đáp ứng test, mở PR. Auto-fix khi UT fail.","output":"Output: PR sẵn sàng cho human review."},{"name":"Automation Agent","desc":"Chạy IT/ST trên Dev/Test environment, tổng hợp kết quả.","output":"Output: test report tự động."},{"name":"Bug Report Agent","desc":"Log bugs với severity và repro steps, link với feature.","output":"Output: ticket bug có context đầy đủ."}],"artifactsTitle":"Artifacts Ownership","artifactsHeaders":{"artifact":"Artifact","owner":"Owner"},"artifactsRows":[{"artifact":"requirements.md, basic-design.md, detail-design.md","owner":"BA + Tech Lead"},{"artifact":"spec.md","owner":"BA (Tech Lead nếu phức tạp)"},{"artifact":"ui-spec.md","owner":"BA / UX (BA approve)"},{"artifact":"api-spec.md (locked)","owner":"FE Dev + BE Dev (Tech Lead)"},{"artifact":"plan-fe.md","owner":"FE Dev"},{"artifact":"plan-be.md","owner":"BE Dev"},{"artifact":"tasks-fe.md / tasks-be.md","owner":"FE Dev / BE Dev"},{"artifact":"testcases-ut.md","owner":"Tester / QC (+ AI)"},{"artifact":"testcases-it-st.md","owner":"Tester / QC (+ AI)"},{"artifact":"test-report.md","owner":"Tester sign-off"}]},"qualityGates":{"label":"QUALITY GATES","title":"Quality gates và approval chain","desc":"Mỗi stage có gate riêng, mỗi gate có approver rõ ràng. Toàn bộ approval log trên Git/Backlog để audit.","headers":{"gate":"Gate / Stage","approver":"Approver / Notes"},"rows":[{"gate":"Phase 1 - Req & Design","approver":"BA + Tech Lead approve (requirements / basic-design / detail-design)"},{"gate":"Stage 1 - Specify","approver":"BA self-approve (Tech Lead nếu phức tạp)"},{"gate":"Stage 2.0 - Lock API Contract","approver":"FE Dev + BE Dev"},{"gate":"Stage 2 - Planning (FE/BE)","approver":"FE Dev / BE Dev"},{"gate":"Stage 3 - Tasking (FE/BE)","approver":"FE Dev / BE Dev"},{"gate":"CI Gate 1 - UT + Lint","approver":"CI auto; phải pass mới unblock PR"},{"gate":"CI Gate 2 - AI Code Review","approver":"AI review (inline comments); không auto-commit"},{"gate":"Final Merge Gate","approver":"Dev own PR (chỉ PR owner được merge)"},{"gate":"Stage 5 - Testing","approver":"Tester approve (IT/ST pass trên Dev/Test Env)"},{"gate":"Release to Staging","approver":"PM (chọn batch features đã sign-off)"}],"principle":"Nguyên tắc separate-reviewer: merger ≠ task approver. Người duyệt task không được là người merge code."},"techStack":{"label":"TECH STACK","title":"Công cụ trong AI-Driven Engineering","desc":"Công cụ chúng tôi sử dụng trong workflow AI-Driven Development hàng ngày:","headers":{"layer":"LAYER","technologies":"TECHNOLOGIES"},"rows":[{"layer":"AI Coding Assistants","technologies":"Claude Code • Cursor"},{"layer":"Agent Frameworks","technologies":"Claude Code SDK • LangGraph • Custom orchestration"},{"layer":"Spec & Planning Tools","technologies":"Spec-driven workflow • Figma MCP • Internal templates"},{"layer":"Code Review Automation","technologies":"AI Code Review • SonarQube • Custom review agents"},{"layer":"Testing Automation","technologies":"AI test generation • Pytest • Playwright"},{"layer":"CI/CD Integration","technologies":"GitHub Actions • GitLab CI • Custom AI gates"}
8433,{"layer":"Version Control & Audit","technologies":"Git • Backlog audit log • PR templates • Approval workflows"},{"layer":"Observability","technologies":"Langfuse • Code quality dashboards"}]},"applicability":{"label":"APPLICABILITY","title":"Khi nào dùng - và khi nào không","desc":"AI-Driven Development không phải kiểu Aladin và cây đèn thần. Đây là cách chúng tôi quyết định khi nào áp dụng:","good":{"title":"Phù hợp khi:","items":[{"title":"Build new application từ đầu hoặc feature lớn","desc":"AI tăng tốc đáng kể ở giai đoạn green-field"},{"title":"Codebase có quy chuẩn rõ ràng (style guide, architecture pattern)","desc":"AI agents dễ học và tuân theo"},{"title":"Team đã có engineering discipline (CI/CD, code review, test culture)","desc":"AI augment thay vì replace"},{"title":"Yêu cầu rõ ràng và document được","desc":"AI Spec Draft Agent hoạt động tốt nhất với input có structure"},{"title":"Volume work lớn","desc":"AI giúp scale velocity mà không scale headcount tuyến tính"}]},"bad":{"title":"Không phù hợp khi:","items":[{"title":"Codebase legacy chưa có test coverage và documentation","desc":"AI dễ tạo bug khi context không đầy đủ"},{"title":"Team chưa quen review pipeline","desc":"AI-generated code không được review kỹ sẽ tạo technical debt"},{"title":"Yêu cầu mơ hồ, thay đổi liên tục","desc":"AI agents tốn cycle vô ích"},{"title":"Domain quá đặc thù (real-time control, embedded firmware)","desc":"AI training data không đủ mạnh"},{"title":"Compliance yêu cầu mọi line code phải có human-written audit trail","desc":"Một số ngành có ràng buộc này"}]},"footer":"Khi không phù hợp, chúng tôi vẫn deliver bằng traditional engineering - chỉ là không apply AI Agent-First."}},"aiCapabilities":{"hero":{"eyebrow":"Enterprise AI for Japan","headline":"Hệ thống AI vận hành thực tế, \\n an toàn trong doanh nghiệp","body":["React Plus thiết kế và triển khai hệ thống AI vận hành hàng ngày cho doanh nghiệp Nhật Bản, trong lĩnh vực Tài chính, Logistics và Sản phẩm số."],"groupsTitle":"Bốn nhóm giải pháp trọng tâm:","groups":[{"phase":"Predictive Analytics & Decision Intelligence","content":"Phân tích, dự đoán dựa trên dữ liệu doanh nghiệp và đề xuất các phương án hành động tối ưu hỗ trợ quá trình ra quyết định"},{"phase":"Enterprise Knowledge Systems","content":"Chuyển đổi, khai phá dữ liệu thô (tài liệu, bảng biểu, báo cáo..) thành hệ tri thức doanh nghiệp giúp tự động hóa việc tra cứu, phân tích và phản hồi chính xác theo thời gian thực"},{"phase":"Autonomous AI Agents","content":"Các AI Agent được thiết kế chuyên biệt theo từng nghiệp vụ, tích hợp các hệ thống khác nhau, tự tự động lên kế hoạch, điều phối workflow nhiều bước và tích hợp cơ chế tự sửa sai"},{"phase":"Edge AI","content":"Chạy on-device cho độ trễ thấp, đảm bảo an toàn và bảo mật dữ liệu không rời site"}],"supplementary":"Cùng các năng lực bổ trợ: Document Intelligence (OCR), Visual Understanding, AI Deployment & MLOps","primaryCta":"Bắt đầu trao đổi","secondaryCta":"Khám phá năng lực"},"approach":{"eyebrow":"Approach","headline":"Thiết kế để AI tham gia vào vận hành.","body":["Chúng tôi thiết kế kiến trúc bám sát thực tế vận hành - chỉ chọn các tầng AI thực sự cần thiết về mặt kỹ thuật, có giá trị thương mại rõ ràng, và triển khai được trong ràng buộc thực tế: tuân thủ pháp lý, độ trễ, tích hợp hệ thống hiện hữu, kiểm soát bởi con người.","Đó là lý do công việc của chúng tôi xoay quanh hệ thống, không phải thử nghiệm. Tập trung vào những gì chạy được, mở rộng được, và kiểm soát được trong production."]},"industries":{"title":"Kiến trúc theo Ngành","items":[{"id":"fintech","title":"Fintech & Banking","body":"Xây dựng hệ thống AI cho vận hành tài chính, đánh giá rủi ro, tương tác khách hàng và hỗ trợ ra quyết định nội bộ. Trọng tâm không phải các tính năng AI rời rạc - mà là hệ thống vận hành tích hợp được với nền tảng hiện có, công cụ nội bộ và hạ tầng tài chính lõi.","layers":[{"label":"Applied ML","value":"Credit scoring, tín hiệu gian lận, phân khúc khách hàng, mô hình chuyển đổi, dự báo churn và khả năng trả nợ"},{"label":"LLM Systems","value":"Phân tích tài liệu, tra cứu chính sách, phân tích hợp đồng, hỗ trợ tri thức với trích dẫn nguồn"},{"label":"AI Agents","value":"Xử lý hồ sơ, hỗ trợ KYC/KYB, phân loại đơn vay, định tuyến ngoại lệ, hỗ trợ phê duyệt nội bộ"},{"label":"AI in Software","value":"Đề xuất theo ngữ cảnh, biểu mẫu thông minh, hỗ trợ operator, copilot nội bộ cho workflow tài chính"}],"footer":"Thiết kế cho môi trường tuân thủ nghiêm ngặt, tích hợp hệ thống cũ và đảm bảo khả năng kiểm toán trong production."},{"id":"logistics","title":"Logistics & Supply Chain","body":"Triển khai hệ thống AI sát luồng hàng hóa, tài liệu và vận hành thực địa. Đặc biệt hiệu quả trong môi trường nơi dashboard trung tâm là không đủ - hỗ trợ quyết định phải xảy ra ngay tại điểm hành động.","layers":[{"label":"Applied ML","value":"Dự báo nhu cầu, ước tính ETA, dự báo ngoại lệ, cân bằng khối lượng công việc"},{"label":"LLM Systems","value":"Trích xuất tài liệu, tóm tắt lô hàng, đầu ra có cấu trúc từ hồ sơ logistics"},{"label":"AI Agents","value":"Điều phối liên nhóm, xử lý sự cố, hỗ trợ điều vận, phối hợp workflow xuyên hệ thống"},{"label":"AI in Software","value":"Dashboard dự báo, hành động đề xuất trong giao diện WMS/TMS, intelligence hỗ trợ operator"},{"label":"Edge AI","value":"Nhận dạng tại chỗ, xử lý tài liệu offline, giám sát hình ảnh, hỗ trợ kiểm kho và an toàn lao động"}],"footer":"Thiết kế cho vận hành vật lý, môi trường phân tán và thực thi tại hiện trường."},{"id":"enterprise","title":"Enterprise Software & Digital Products","body":"Đưa AI trở thành phần tự nhiên của trải nghiệm sản phẩm cho các công ty phần mềm và đội ngũ doanh nghiệp. Kết quả không phải một công cụ AI đứng ngoài sản phẩm - mà là phần mềm trở nên hữu ích hơn, chủ động hơn, và có khả năng thực thi công việc thay người dùng.","layers":[{"label":"LLM Systems","value":"Tìm kiếm, truy xuất, tóm tắt, hỗ trợ tri thức, tương tác ngữ nghĩa trong sản phẩm"},{"label":"AI Agents","value":"Thực thi workflow, tự động hóa tác vụ nội bộ, hướng dẫn hành động, xử lý quy trình trong sản phẩm"},{"label":"AI in Software","value":"Đề xuất, dự báo, thu thập dữ liệu thông minh, next-best-action, hỗ trợ dự đoán"}],"footer":"Thiết kế để thúc đẩy áp dụng sản phẩm, nâng cao hiệu quả vận hành và tạo giá trị phần mềm đo lường được."}]},"governance":{"eyebrow":"Responsible AI","headline":"Quản trị AI tích hợp từ thiết kế hệ thống, không bổ sung sau triển khai","body":"AI doanh nghiệp thất bại khi hệ thống không thể quản trị. Mọi hệ thống chúng tôi xây dựng đều bao gồm các cơ chế kiểm soát production từ đầu: đánh giá, kiểm tra tính công bằng, khả năng truy vết, giám sát bởi con người, xử lý quyền riêng tư và giám sát vận hành. Responsible AI là 
8433kiến trúc hệ thống - không phải lớp thương hiệu.","items":[{"id":"evaluation","title":"Evaluation, Fairness & Reliability","description":"Mô hình và workflow được đánh giá dựa trên tác vụ vận hành thực tế - không chỉ điểm benchmark. Với ML: offline metrics, calibration, drift monitoring. Với LLM và agents: đánh giá theo kịch bản, regression testing, phân tích lỗi. Kiểm tra tính công bằng trước deployment: phát hiện bias trên các thuộc tính được bảo vệ, phân tích disparate impact, đánh giá demographic parity, và giám sát distributional shift liên tục trong production."},{"id":"explainability","title":"Explainability & Traceability","description":"Các đầu ra AI quan trọng phải được hiểu, kiểm toán và truy vết. Mô hình ML: feature attribution (SHAP, permutation importance) và lý giải chấm điểm. Hệ thống LLM: nguồn trích dẫn và logging đường truy xuất. AI agents: toàn bộ lịch sử hành động, bản ghi phê duyệt và execution traces. Mọi quyết định chịu ảnh hưởng từ AI đều có audit trail - khi cơ quan quản lý hỏi \\"tại sao,\\" câu trả lời đã được ghi sẵn."},{"id":"oversight","title":"Human Oversight & Policy Control","description":"Xác định rõ: nơi AI được hành động, nơi chỉ được đề xuất, nơi phải chờ phê duyệt, nơi phải chuyển tiếp lên cấp trên. Ranh giới được cấu hình theo từng bài toán và mức độ rủi ro. Human-in-the-loop, approval gates, đường dự phòng và chuỗi trách nhiệm rõ ràng - tự động hóa tăng hiệu quả mà không loại bỏ trách nhiệm giải trình."},{"id":"privacy","title":"Privacy, Security & Compliance","description":"Tối thiểu hóa dữ liệu, mã hóa, kiểm soát truy cập, triển khai on-premise, logging sẵn sàng kiểm toán - thiết kế cho thực tế pháp lý của từng khách hàng. Với doanh nghiệp Nhật Bản: chủ động tuân thủ APPI, kỳ vọng FSA và METI AI Governance Guidelines. Giám sát liên tục model drift, bias drift và suy giảm chất lượng dữ liệu. Sẵn sàng kiểm toán từ ngày đầu."}]},"team":{"eyebrow":"Delivery Team","headline":"Đội ngũ chuyên gia tinh gọn.","subheadline":"Vận hành AI S
8433olutions.","body":"40+ AI Engineers chuyên sâu, dẫn dắt thiết kế và xây dựng hệ thống AI.\\n200+ AI-Driven Engineers - kỹ sư phát triển phần mềm vận hành theo phương pháp AI-Driven, tham gia triển khai và scale dự án.","roles":[{"id":"architect","title":"AI Solutions Architect","description":"Chuyển bài toán kinh doanh thành thiết kế hệ thống AI. Xác định ranh giới tích hợp, ràng buộc governance, kiến trúc tổng thể. Làm việc trực tiếp với CTO/CIO khách hàng.","icon":"/graphic-design.png"},{"id":"engineer","title":"Applied AI Engineer","description":"Xây dựng hệ thống AI end-to-end - predictive models, LLM pipelines, agent workflows, document intelligence, evaluation và monitoring trong production.","icon":"/coding.png"},{"id":"scientist","title":"Applied Research Scientist","description":"Đọc paper NeurIPS, ICML, ACL. Reproduce SOTA algorithm. Tối ưu thuật toán cho ràng buộc vận hành đặc thù mà giải pháp có sẵn không đáp ứng được.","icon":"/debug.png"},{"id":"edge","title":"Embedded & Edge AI Engineer","description":"Triển khai SLM, LLM, agent trên edge hardware (Raspberry Pi, NVIDIA Jetson, Intel NUC). Tích hợp với hệ thống công nghiệp qua OPC-UA, MQTT, Modbus.","icon":"/cogwheel.png"},{"id":"mlops","title":"MLOps & Platform Engineer","description":"Vận hành lifecycle mô hình AI - deployment, versioning, monitoring, retrain. Xây MLOps pipeline, CI/CD cho AI, infrastru
8433cture cloud và on-premise.","icon":"/cogwheel.png"},{"id":"systems","title":"Workflow & Systems Engineer","description":"Kết nối AI với enterprise APIs, workflow phê duyệt, hệ thống cÅ© và giao diện sản phẩm. Đảm bảo AI chạy bên trong quy trình kinh doanh, không đứng bên cạnh.","icon":"/cogwheel.png"},{"id":"domain","title":"Industry & Japan Specialist","description":"Chuyên gia tài chính, ngân hàng, logistics. KYC/AML, đánh giá tín dụng, báo cáo pháp lý, xuất nhập khẩu. Hiểu yêu cầu chuyên ngành và kỳ vọng kinh doanh Nhật Bản.","icon":"/rocket.png"}]},"cta":{"headline":"Sẵn sàng vượt qua giai đoạn thá»­ nghiệm?","body":"Hãy cùng xác định hệ thống AI phù hợp cho vận hành cá»§a bạn - dù mục tiêu là dá»± báo, tá»± động hóa, khai thác tài liệu thông minh, tích hợp vào sản phẩm hay triển khai tại hiện trường.","button":"Bắt đầu trao đổi"},"strapline":"Hệ thống AI production cho doanh nghiệp Nhật Bản - thiết kế để vận hành, tích hợp và kiểm soát."},"fintechKnowhow":{"title":"Điểm mạnh cá»§a React Plus trong ngành Fintech","intro":{"paragraphs":["React Plus tận dụng kiến thức và công nghệ Fintech để đóng góp cho doanh nghiệp."]},"models":{"title":"Năng lá»±c & Thế mạnh cốt lõi","description":"Chúng tôi tin chắc rằng những thế mạnh này có sá»± tương thích cao với lÄ©nh vá»±c và mô hình kinh doanh cá»§a quý khách, \\n qua đó có thể mang lại giá trị gia tăng chắc chắn trong hợp tác tương lai.","model1":{"name":"Năng lá»±c phát triển full-cycle theo từng domain chuyên biệt","input":"Lấy tài chính (Fintech) làm trọng tâm, cùng với các lÄ©nh vá»±c như nhân sá»±, phúc lợi, bán lẻ, logistics (WMS)…, chúng tôi có nhiều kinh nghiệm triển khai thá»±c tế.","output":"Có thể đồng hành xuyên suốt từ xác định yêu cầu, thiết kế, phát triển, vận hành đến cải tiến.","contextLength":"Sở hữu nhiều dá»± án thá»±c tế do các doanh nghiệp lớn trong và ngoài nước trá»±c tiếp làm chá»§ dá»± án theo từng domain."},"model2":{"name":"Năng lá»±c thiết kế & phát triển kiến trúc hệ thống hướng B2B/B2C","input":"Có kinh nghiệm phong phú trong thiết kế và phát triển hệ thống enterprise và web application cho mô hình B2B/B2C.","output":"Thế mạnh trong tối ưu xá»­ lý đa thiết bị, xây dá»±ng UI/UX đa nền tảng, lấy người dùng làm trung tâm."},"model3":{"name":"Cung cấp giải pháp AI toàn diện cùng với năng lá»±c phát triển hệ thống","input":"Chuyên sâu các công nghệ nền tảng AI như machine learning, deep learning; có thể triển khai từ AI agent đến application theo mô hình one-stop.","output":"Trong lÄ©nh vá»±c tài chính, chúng tôi luôn cập nhật và đề xuất việc ứng dụng AI agent cho các bài toán như tá»± động hóa CSKH, nâng cao độ chính xác phân tích rá»§i ro, v.v."},"model4":{"name":"Năng lá»±c R&D · PoC –\\ncó thể tham gia từ\\ngiai đoạn thiết kế","input":"Tham gia từ thiết kế concept, đánh giá tính khả thi kỹ thuật, đề xuất giải pháp.","output":"Thá»±c hiện PoC (xác minh ý tưởng), prototyping nhanh chóng, cùng khách hàng tạo ra giá trị mới.","contextLength":"Sau khi đưa vào phát triển và vận hành chính thức, tiếp tục mở rộng tính năng và cải tiến một cách liên tục."}},"resources":{"helpCenter":{"subtitle":"Công nghệ bảo mật tiên tiến đáp ứng các tiêu chuẩn cao"},"developerForum":{"subtitle":"Có thể xá»­ lý số lượng người dùng quy mô lớn"},"cookbook":{"subtitle":"Cung cấp trải nghiệm người dùng thoải mái"},"status":{"subtitle":"Có thể cung cấp dịch vụ tài chính được tùy chỉnh phù hợp với khách hàng"}},"aiFintechSolutions":{"title":"Các danh mục chính cá»§a kết hợp giải pháp AI + Fintech"},"aiAgentsInFinance":{"title":"AI Agent trong lÄ©nh vá»±c tài chính"},"useOfAiAgentsInFinance":{"title":"Ứng dụng AI Agent trong lÄ©nh vá»±c tài chính"},"saasSolution":{"title":"Giải pháp SaaS"},"startBuilding":{"title":"Các danh mục chính cá»§a Giải pháp Tài chính","title1":"Quản lý Tài chính Cá nhân","subtitle1":"Ứng dụng di động cho mô phỏng kế hoạch cuộc sống và quản lý chi tiêu hàng ngày","title2":"Quản lý Tài chính Doanh nghiệp","subtitle2":"Theo dõi thu chi, tạo báo cáo tài chính và hóa đơn, quản lý lương và thuế","title3":"Hệ thống Dá»± báo","subtitle3":"Hệ thống dá»± đoán biến động tá»· giá hối đoái, rá»§i ro tín dụng, thị trường chứng khoán và thị trường chứng khoán","title4":"Công nghệ Bảo hiểm","subtitle4":"Hệ thống bảo hiểm sá»­ dụng dữ liệu sức khỏe, web và ứng dụng để quản lý chứng chỉ bá
8433º£o hiểm và mua bảo hiểm trá»±c tuyến","title5":"Phân tích Dữ liệu Tài chính","subtitle5":"Tận dụng công nghệ phân tích dữ liệu lớn để cung cấp báo cáo và giải pháp tài chính chính xác, hỗ trợ ra quyết định chiến lược","title6":"Robo-Advisor","subtitle6":"Ứng dụng tối ưu hóa tá»± động danh mục đầu tư dá»±a trên mục tiêu và rá»§i ro, tích hợp ChatGPT, tạo hệ thống cố vấn tài chính ảo"},"agentKit":{"title":"Các danh mục chính cá»§a kết hợp giải pháp AI + Fintech","description":"","items":[{"title":"Phát hiện gian lận theo thời gian thá»±c","content":"Phân tích giao dịch theo thời gian thá»±c bằng deep learning để phát hiện các hoạt động bất thường."},{"title":"Dá»± báo thị trường chứng khoán","content":"Kết hợp deep learning và phân tích tin tức để dá»± đoán biến động giá cổ phiếu."},{"title":"Chấm điểm tín dụng thông minh","content":"Đánh giá năng lá»±c tín dụng dá»±a trên dữ liệu phi truyền thống như lịch sá»­ thanh toán hóa đơn và hành vi mua sắm."},{"title":"Chatbot tư vấn tài chính","content":"Cung cấp tư vấn cá nhân hóa liên quan đến quản lý chi tiêu, ngân sách và đầu tư."},{"title":"Tối ưu hóa danh mục đầu tư","content":"Ứng dụng học tăng cường để cân bằng rá»§i ro và lợi nhuận theo mục tiêu đầu tư cá»§a nhà đầu tư."}
8433,{"title":"Dự báo rủi ro vỡ nợ","content":"Phân tích khả năng xảy ra nợ xấu trong P2P lending dựa trên nhiều yếu tố tài chính khác nhau."},{"title":"Phân tích báo cáo tài chính","content":"Sử dụng NLP để tự động trích xuất thông tin quan trọng từ các báo cáo doanh nghiệp."},{"title":"Định giá bất động sản","content":"Ước tính chính xác giá trị bất động sản dựa trên machine learning và nhiều yếu tố liên quan."}]},"aboutTextTitle":"Năng lực phát triển SaaS tích hợp AI toàn diện","aboutText":["React Plus sở hữu năng lực phát triển toàn diện trong lĩnh vực phát triển sản phẩm ứng dụng AI, có thể đồng hành xuyên suốt từ:","・AI-enhanced SaaS: xây dựng các giải pháp SaaS được tăng cường bởi AI","・AI-driven SaaS: hiện thực hóa nền tảng SaaS vận hành theo AI ở mức độ cao hơn"],"stats":{"title2":"Thế mạnh trong lĩnh vực tài chính – bảo hiểm","title":"Kinh nghiệm thực tế tại thị trường Nhật Bản","description":"Không dừng lại ở hoạt động R&D, với kinh nghiệm triển khai thực tế tại thị trường Nhật Bản, React Plus đã trực tiếp đảm nhiệm:","approval_rate":"Thiết kế nền tảng SaaS","bad_debt_rate":"Phát triển hệ thống","average_score":"Triển khai vận hành","api_response":"Vận hành thực tế các nền tảng SaaS tích hợp AI"},"aboutText2":["Đặc biệt, React Plus có nhiều dự án hợp tác với các ngân hàng và công ty bảo hiểm tại Nhật Bản, qua đó tích lũy kinh nghiệm:","・Đáp ứng linh hoạt các tiêu chuẩn chất lượng khắt khe","・Tuân thủ yêu cầu bảo mật cao","・Phù hợp với quy định pháp lý đặc thù của ngành tài chính"]},"forTheCommunity":{"description":"<p>Chúng tôi tin rằng, trong bất kỳ hoàn cảnh nào, vẫn có thể giúp ai đó - dù chỉ bằng một hành động nhỏ. Hãy bắt đầu từ những điều giản dị nhất: sự chân thành và lòng tử tế, để trao cho người khác một bàn tay nâng đỡ, một sự quan tâm, hoặc đơn giản là để họ cảm thấy mình không phải một mình đối diện mọi thứ. Có khi, một giúp đỡ đúng lúc thôi cũng đủ thắp lên hạnh phúc và hy vọng lớn hơn ta nghĩ. Hãy cùng nhau tạo ra những niềm vui giản dị nhưng có ý nghĩa.</p>","description2":"<p>Tại React Plus, chúng tôi biến sự tận tâm trong công việc của bạn thành những giá trị thực chất cho cộng đồng.</p>","storiesTitle":"Câu chuyện thiện nguyện","stories":[{"id":169,"date":"28/03/2025","title":"React Plus tổ chức hương trình hiến máu nhân đạo - Hành trình sẻ chia, thắp sáng hy vọng","image":"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/169/%E1%BA%A2NH_B%C3%8CA__WEB__7_.png","slug":"react-plus-to-chuc-huong-trinh-hien-mau-nhan-dao---hanh-trinh-se-chia--thap-sang-hy-vong"},{"id":143,"date":"17/09/2024","title":"React Plus cùng hướng trái tim về đồng bào các tỉnh chịu ảnh hưởng mưa lũ sau bão","image":"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/143/%E1%BA%A2NH_B%C3%8CA__WEB__23_.png","slug":"react-plus-cung-huong-trai-tim-ve-dong-bao-cac-tinh-chiu-anh-huong-mua-lu-sau-bao"},{"id":139,"date":"26/08/2024","title":"React Plus khởi hành chuyến xe yêu thương 2024 cùng chiến dịch Tình nguyện Trao yêu thương, tiếp sức học đường","image":"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/139/%E1%BA%A2NH_B%C3%8CA__WEB__20_.png","slug":"react-plus-khoi-hanh-chuyen-xe-yeu-thuong-2024-cung-chien-dich-tinh-nguyen-trao-yeu-thuong--tiep-suc-hoc-duong"},{"id":133,"date":"19/07/2024","title":"React Plus đã chuẩn bị sẵn sàng cho chương trình thiện nguyện \\"Trao yêu thương, tiếp sức học đường\\"","image":"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/133/%E1%BA%A2NH_B%C3%8CA__WEB__15_.png","slug":"react-plus-da-chuan-bi-san-sang-cho-chuong-trinh-thien-nguyen--trao-yeu-thuong--tiep-suc-hoc-duong-"},{"id":128,"date":"27/06/2024","title":"React Plus tổ chức chương trình thiện nguyện - Trao 
8433yêu thương tiếp sức học đường","image":"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/128/%E1%BA%A2NH_B%C3%8CA__WEB__12_.png","slug":"react-plus-to-chuc-chuong-trinh-thien-nguyen---trao-yeu-thuong-tiep-suc-hoc-duong"},{"id":86,"date":"24/07/2023","title":"Tổng kết hoạt động hiến máu nhân đạo tháng 7","image":"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/86/%E1%BA%A2NH_B%C3%8CA__WEB__33_.png","slug":"tong-ket-hoat-dong-hien-mau-nhan-dao-thang-7"}]},"coreValueTechnology":{"capabilities":{"label":"Core Capabilities","title":"Sáu năng lực cốt lõi","items":[{"title":"Applied ML & Data Science","subtitle":"Mô hình dự báo, phân tích dữ liệu và ra quyết định trên dữ liệu nghiệp vụ.","th1":"Năng lực","th2":"Định nghĩa","th3":"Ứng dụng điển hình","rows":[{"col1":"Credit Scoring & Risk Modeling","col2":"Chấm điểm tín dụng tự động, mô hình rủi ro danh mục - phục vụ phê duyệt khoản vay nhanh và kiểm soát tổn thất theo chuẩn ngân hàng Nhật."},{"col1":"Fraud Detection","col2":"Phát hiện giao dịch gian lận real-time, cảnh báo sớm hệ thống nợ xấu - chạy với độ trễ thấp trong môi trường core banking."},{"col1":"Demand & Revenue Forecasting","col2":"Dự báo nhu cầu, tồn kho, doanh thu bằng time-series và ML - giảm sai số dự báo, tối ưu kế hoạch vận hành logistics và bán lẻ."},{"col1":"Customer Analytics & Segmentation","col2":"Phân tích hành vi, churn prediction, customer lifetime value - phục vụ cá nhân hóa sản phẩm và chiến lược tiếp cận khách hàng."}],"techStack":"Python • Scikit-learn • XGBoost • LightGBM • PyTorch • Feast • MLflow • KServe • GenAI","industries":"Ngân hàng & Fintech • Bảo hiểm • Logistics • Bán lẻ • Manufacturing","note":""},{"title":"Document Intelligence","subtitle":"Số hóa và chuẩn hóa dữ liệu từ tài liệu - OCR, structure parsing, normalization.","th1":"Năng lực","th2":"Định nghĩa","th3":"","rows":[{"col1":"OCR đa ngôn ngữ - Tiếng Nhật, Việt, Anh","col2":"Trích xuất văn bản từ ảnh, PDF, scan - bao gồm kanji, hiragana, katakana. Xử lý hồ sơ KYC, hóa đơn, hợp đồng, biểu mẫu kể cả ảnh chụp điện thoại chất lượng thấp."},{"col1":"Document Understanding","col2":"Tự động phân tích, đọc hiểu, nhận diện bảng biểu, phân đoạn, layout phức tạp - chuyển báo cáo tài chính, biểu mẫu nhiều cột thành dữ liệu có cấu trúc."},{"col1":"eKYC & Identity Verification","col2":"Đọc tự động CCCD, hộ chiếu, giấy tờ tùy thân - trích xuất thông tin, xác minh và đối chiếu real-time, hỗ trợ onboarding khách hàng nhanh."},{"col1":"Data Normalization for Downstream","col2":"Chuyển dữ liệu thô từ tài liệu thành cấu trúc sạch, sẵn sàng đẩy vào core banking, ERP, CRM. Đây là cầu nối giữa giấy tờ và hệ thống số."}],"techStack":"PaddleOCR • Tesseract • LayoutLM • OpenCV • Hugging Face • Custom Vietnamese/Japanese OCR models • VLMs • Reasoning Models","industries":"Ngân hàng KYC • Bảo hiểm • Logistics • Back-office • Pháp lý","note":""},{"title":"LLM Systems & NLP","subtitle":"Hệ thống dựa trên LLM cho doanh nghiệp - RAG, agents, semantic search, document Q&A.","th1":"Năng lực","th2":"Định nghĩa","th3":"","rows":[{"col1":"RAG - Q&A trên dữ liệu nội bộ","col2":"Advanced RAG techniques cho phép AI trả lời chính xác dựa trên tài liệu, quy trình, cơ sở dữ liệu và knowledge base riêng - không hallucination, có audit trail."},{"col1":"Semantic Search & Document Intelligence","col2":"Tìm kiếm theo ngữ nghĩa thay vì từ khóa, trích xuất thực thể (NER) từ hợp đồng, hồ sơ pháp lý, báo cáo tài chính - hỗ trợ tiếng Nhật, tiếng Việt, tiếng Anh."},{"col1":"AI Copilots cho nghiệp vụ","col2":"Trợ lý AI chuyên biệt theo nghiệp vụ - copilot p
8433hân tích hồ sơ tín dụng, copilot rà soát hợp đồng, copilot hỗ trợ nhân viên ngân hàng."},{"col1":"On-premise LLM Deployment","col2":"Triển khai và vận hành LLM trên hạ tầng nội bộ của khách hàng - đáp ứng yêu cầu dữ liệu không rời khỏi tổ chức theo quy định Nhật Bản (FISC, J-SOX)."},{"col1":"LLM Evaluation & Guardrails","col2":"Đánh giá chất lượng đầu ra, phát hiện hallucination, thiết lập guardrails - đảm bảo AI hoạt động đúng, an toàn trong môi trường compliance nghiêm ngặt."}],"techStack":"OpenAI • Anthropic Claude • Hugging Face • LangChain • LlamaIndex • vLLM • Ollama • Langfuse • sentence-transformers","industries":"Ngân hàng & Bảo hiểm • Pháp lý & Compliance • HR & Internal Ops • Dịch vụ chuyên nghiệp","note":""},{"title":"AI Agents & Automation","subtitle":"AI tự lập kế hoạch và thực thi quy trình - kết nối hệ thống, điều phối workflow nhiều bước.","th1":"Năng lực","th2":"Định nghĩa","th3":"","rows":[{"col1":"Multi-step Workflow Automation","col2":"Tự động hóa quy trình liên phòng ban - xử lý hồ sơ vay, phê duyệt, onboarding KYC - không cần lập trình lại từng hệ thống."},{"col1":"Tool Use & API/Agent Orchestration","col2":"Agent điều phối, sử dụng đúng tools, đúng Agents - truy vấn database, gọi API ngân hàng, tạo báo cáo - kết nối các hệ thống legacy với AI."},{"col1":"Human-in-the-Loop Workflow","col2":"Bài toán cần con người duyệt ở các bước rủi ro cao - agent xử lý phần tự động, con người kiểm soát quyết định trên ngưỡng. Đáp ứng yêu cầu human oversight của AI Governance."},{"col1":"AI-assisted Software Development","col2":"Multi-agent hỗ trợ vòng đời phát triển phần mềm - phân tích yêu cầu, sinh code, review, testing, CI/CD. Đây là cách React Plus tự vận hành delivery, đồng thời triển khai cho khách hàng."}],"techStack":"LangGraph • CrewAI • Agno • n8n • Model Context Protocol • Claude Code SDK • OpenAI API • Claude API • Gemini API • Agent Skill • A2A","industries":"Ngân hàng & Fintech • Bảo hiểm • Logistics • HR & Back-office • Software Development","note":""},{"title":"Embedded AI for Legacy Industrial Systems","subtitle":"Nhúng LLM/SLM agent vào máy móc và hệ thống cũ - biến hạ tầng đã đầu tư từ 10-20 năm trước thành hệ thống có khả năng suy luận, không cần thay thế phần cứng.","context":"Embedded Software đã định hình ngành công nghiệp Nhật Bản trong ba thập kỷ qua - software gắn vào máy móc, biến phần cứng \\"câm\\" thành thiết bị thông minh. Trào lưu tiếp theo là AI-Brain nhúng: SLM và agents chạy trên edge hardware, gắn vào hạ tầng cũ, giúp máy móc đã đầu tư trước đây có khả năng suy luận, đối thoại và tự động hóa.","th1":"Năng lực","th2":"Định nghĩa","th3":"","rows":[{"col1":"Embedded SLM trên Edge Hardware","col2":"Triển khai SLM domain-specific (Phi-3, Gemma, Llama 3.2, Qwen 2.5, hoặc model fine-tune theo nghiệp vụ khách hàng) trên Raspberry Pi, NVIDIA Jetson, Intel NUC. Hoạt động hoàn toàn offline, dữ liệu không rời thiết bị - đáp ứng yêu cầu bảo mật của doanh nghiệp Nhật.","col3":""},{"col1":"AI Agent gắn vào hệ thống legacy","col2":"Agent đóng vai trò lớp trung gian giữa hệ thống cũ và người vận hành. Đọc log, hiểu trạng thái máy, đưa ra cảnh báo và đề xuất bằng ngôn ngữ tự nhiên - không thay đổi phần cứng, không thay đổi quy trình hiện tại của khách hàng.","col3":""},{"col1":"Voice & Multimodal Interface cho Operator","col2":"Operator hỏi máy bằng tiếng Nhật, tiếng Việt, hoặc tiếng Anh - \\"Máy 3 đang chạy chậm vì sao?\\", \\"Lô sản xuất hôm qua có lỗi gì?\\" - agent truy log, phân tích, trả lời. Thay thế giao diện HMI cũ kỹ bằng AI conversation.","col3":""},{"col1":"Predictive Maintenance on-device","col2":"Mô hình nhỏ chạy ngay trên thiết bị edge - phân tích rung động, nhiệt độ, dòng điện, tiếng máy - phát hiện sớm hỏng hóc, đề xuất bảo trì trước khi máy dừng. Toàn bộ inference chạy local, không gửi dữ liệu ra ngoài.","col3":""},{"col1":"Industrial Protocol Integration","col2":"Tích hợp với hệ thống điều khiển công nghiệp qua các protocol thông dụng - REST, MQTT, OPC-UA, Modbus - kết nối AI layer với PLC, SCADA, SIS đã có. Với các yêu cầu real-time control sâu vào PLC layer, React Plus phối hợp với đối tác chuyên về industrial automation để đảm bảo tuân thủ safety standard.","col3":""}],"techStack":"Phi-3 • Gemma • Llama 3.2 • Qwen 2.5 • Custom SLM fine-tuning • llama.cpp • Ollama • ONNX Runtime • TensorFlow Lite • Raspberry Pi • NVIDIA Jetson • Intel NUC • Industrial protocol bridges (OPC-UA, MQTT, Modbus)","industries":"Manufacturing Nhật Bản • Logistics & Warehouse • Industrial IoT • Legacy System Modernization • Quality Control","note":""},{"title":"AI Deployment & Platform Engineering","subtitle":"Đưa mô hình AI vào production - cloud, on-premise, edge và MLOps liên tục.","th1":"Năng lực","th2":"Định nghĩa","th3":"","rows":[{"col1":"Cloud & Hybrid Deployment","col2":"Triển khai trên AWS, Azure, GCP hoặc hybrid - tận dụng managed services, auto-scaling, cost optimization theo workload thực tế."},{"col1":"On-premise & Private AI","col2":"Chạy toàn bộ AI stack trong hạ tầng nội bộ khách hàng - đáp ứng FISC, J-SOX và các yêu cầu bảo mật dữ liệu nghiêm ngặt của ngân hàng, bảo hiểm Nhật Bản."},{"col1":"MLOps & Model Lifecycle","col2":"Pipeline CI/CD cho AI, model versioning, experiment tracking, A/B testing - đảm bảo mỗi mô hình deploy đều có evaluation và rollback rõ ràng."},{"col1":"Production Monitoring & Drift Detection","col2":"Giám sát performance liên tục, phát hiện data drift và model drift, retrain tự động khi metric suy giảm - đảm bảo AI duy trì chất lượng lâu dài."}],"techStack":"Kubernetes • Docker • MLflow • Kubeflow • Apache Airflow • Terraform • ArgoCD • Prometheus • Grafana • Evidently AI","industries":"AWS • Azure • GCP • Private Cloud • On-premise • Mobile / Edge","industriesLabel":"Môi trường","note":""}],"footer":"Năng lực ML và data science vững là điều kiện tiên quyết cho mọi ứng dụng AI cấp doanh nghiệp. Năng lực Deployment & MLOps là yếu tố quyết định liệu AI có thực sự chạy được trong production hay không."},"principles":{"label":"Principles","title":"Bốn nguyên tắc kỹ thuật","items":[{"title":"Constraint-driven design","de
8433sc":"Chúng tôi thiết kế hệ thống bắt đầu từ ràng buộc thực tế - pháp lý, độ trễ, tích hợp hệ thống cũ, điểm kiểm soát của con người - không từ khả năng kỹ thuật của model. Model tốt nhất là model phù hợp với ràng buộc, không phải model SOTA."},{"title":"Data quality over model complexity","desc":"Khi mô hình không đạt yêu cầu, chúng tôi kiểm tra dữ liệu trước, không kiểm tra mô hình. 80% vấn đề trong AI production đến từ chất lượng dữ liệu - feature engineering, data profiling và đầu vào sạch quan trọng hơn việc tăng độ phức tạp model."},{"title":"Measurable, not anecdotal","desc":"Mọi quyết định triển khai dựa trên metric đo được, không dựa trên cảm tính hay demo. Mô hình mới chỉ deploy khi có evaluation tự động vượt qua tiêu chí định trước. Hiệu quả kinh doanh được track liên tục, không phải báo cáo một lần lúc go-live."},{"title":"Human in the loop, by design","desc":"Trong các quyết định có rủi ro cao - phê duyệt khoản vay, xử lý hồ sơ pháp lý, can thiệp vận hành - con người là điểm kiểm soát cuối cùng, không phải AI. Hệ thống được thiết kế với approval gates và escalation workflows từ đầu, không bổ sung sau khi go-live."}]},"governance":{"label":"Responsible AI","title":"AI Governance","desc":"React Plus áp dụng khung quản trị AI (AI Governance Framework) tích hợp sẵn trong mọi hệ thống, đáp ứng các tiêu chuẩn quốc tế hiện hành và dự kiến có hiệu lực trong 12 tháng tới.","th1":"Trụ cột","th2":"Mục tiêu","th3":"Cơ chế triển khai","items":[{"title":"Explainability","goal":"Mọi quyết định AI phải giải thích được lý do","mechanism":"Tích hợp SHAP, LIME; lưu decision audit cho từng trường hợp"},{"title":"Bias Detection","goal":"Đảm bảo công bằng, không phân biệt đối xử","mechanism":"Fairness metrics, phân tích theo subgroup, giám sát bias liên tục"},{"title":"Audit Infrastructure","goal":"Truy vết đầy đủ: input → model → output","mechanism":"Logging, model versioning, data lineage tracking"},{"title":"Human Oversight","goal":"Con người giữ quyền kiểm soát cuối cùng","mechanism":"Human-in-the-loop, approval gates, escalation workflows"},{"title":"Regulatory Compliance","goal":"Tuân thủ khung pháp lý quốc tế","mechanism":"Thiết kế theo EU AI Act, NIST AI RMF, ISO/IEC 42001:2023, METI Guidelines v1."}],"standards":{"title":"Tiêu chuẩn quốc tế áp dụng","th1":"Tiêu chuẩn","th2":"Cơ quan ban hành","th3":"Phạm vi","rows":[{"standard":"EU AI Act","issuer":"Liên minh Châu Âu (thông qua 2024, áp dụng theo lộ trình đến 2027)","scope":"Phân loại Al theo mức rủi ro; bắt buộc minh bạch, giám sát con người, quản lý rủi ro cho hệ thông AI rủi ro cao"},{"standard":"NIST AI RMF","issuer":"Viện Tiêu chuẩn & Công nghệ Quốc gia Hoa Kỳ (NIST)","scope":"Khung quản lý rủi ro AI gồm 4 chức năng: Govern, Map, Measure, Manage"},{"standard":"ISO/IEC 42001:2023","issuer":"Tổ chức Tiêu chuẩn hóa Quốc tế (ISO) & Ủy ban Kỹ thuật Điện Quốc tế (IEC)","scope":"Tiêu chuẩn quốc tế đầu tiên về hệ thông quản trị AI (AI Management System)"},{"standard":"AI事業者ガイドライン (AI Business Guidelines) v1.1","issuer":"METI (Bộ Kinh tế, Thương mại & Công nghiệp) và MIC (Bộ Nội vụ & Truyền thông) Nhật Bản - ban hành 28/03/2025","scope":"Hướng dẫn quản trị AI cho developer, provider, user hoạt động tại hoặc hợp tác với thị trường Nhật Bản"},{"standard":"AI推進法(AI Promotion Act)","issuer":"Quốc hội Nhật Bản - thông qua 28/05/2025, hiệu lực 04/06/2025","scope":"Luật AI đầu tiên của Nhật Bản; thiết lập AI Strategic Headquarters và Basic AI Plan; tiếp cận \\"innovation-first\\", không có chế tài tài chính"}]},"pillarsTitle":"Năm trụ cột","commitments":{"title":"Cam kết governance","text":"Governance được tích hợp từ giai đoạn thiết kế, không phải bổ sung sau triển khai."}},"stack":{"label":"Engineering Foundation","title":"Engineering Foundation","desc":"Các công cụ và framework chủ đạo trong hệ thống của chúng tôi - được lựa chọn dựa trên hiệu suất production, cộng đồ
8433ng kỹ thuật và khả năng tích hợp thực tế.","th1":"Layer","th2":"Technologies","rows":[{"layer":"Data Pipeline & Feature Store","technologies":"Pandas • Polars • dbt • Apache Airflow • Feast • Great Expectations"},{"layer":"MLOps & Lifecycle","technologies":"MLflow • Kubeflow • DVC • Weights & Biases • Optuna"},{"layer":"Evaluation & Testing","technologies":"Custom eval frameworks • RAGAS • LLM-as-judge • A/B testing • Pytest"},{"layer":"Monitoring & Observability","technologies":"Prometheus • Grafana • Evidently AI • Langfuse • Custom dashboards"},{"layer":"Cloud & Infrastructure","technologies":"AWS • Azure • GCP • Docker • Kubernetes • Terraform • ArgoCD"},{"layer":"On-premise & Edge Runtime","technologies":"NVIDIA Triton • ONNX Runtime • TensorFlow Lite • llama.cpp • Bare-metal deployment"},{"layer":"Security & Compliance","technologies":"OAuth 2.0 • RBAC • Audit logging • Cloud IAM (AWS/Azure/GCP) • Data encryption"},{"layer":"Integration Protocols","technologies":"REST API • gRPC • MQTT • OPC-UA • Modbus • Webhook"}]},"cta":{"title1":"Xây dựng hệ thống AI","title2":"cùng chúng tôi.","desc":"Từ kiến trúc đến production - hãy bắt đầu với một cuộc trò chuyện về bài toán cụ thể của bạn.","btnPrimary":"Đặt lịch trao đổi →","btnSecondary":"Ngành tài chính →"}},"coreValueServices":{"hero":{"label":"Services · Financial","title1":"AI cho ngành tài chính","desc":["React Plus đã thiết kế, phát triển và vận hành nền tảng SaaS tích hợp AI cho khách hàng tài chính tại Nhật Bản, full-cycle từ bài toán nghiệp vụ, kiến trúc hệ thống, AI integration, đến vận hành lâu dài.","Đối tác chiến lược của chúng tôi tại Nhật là MILIZE (Milize.co.jp) - công ty Financial AI Engineering tiên phong, ứng dụng AI, fintech và big data để tái cấu trúc dịch vụ tài chính dưới góc nhìn người dùng. Khách hàng của MILIZE bao gồm Mitsubishi UFJ Trust Bank, Sony Bank, Aozora Bank, Yokohama Bank, cùng nhiều mega bank tại Nhật.","React Plus là technical partner đứng sau nhiều sản phẩm production trong hệ sinh thái này. Phạm vi đã làm trải dài từ banking operations, retail finance, lending platform đến investment management.","Chúng tôi cũng hợp tác với MILIZE để triển khai nhiều sản phẩm Fintech do React Plus phát triển đến khách hàng tại Nhật (tham khảo TFA Alternative Data AI Scoring), cùng với đó là Joint Venture các công ty AI/Fintech ở cả Nhật và Việt Nam."]},"trackRecord":{"label":"JAPAN-SPECIFIC","title":"Bài toán đặc thù khi làm AI cho fintech Nhật","desc":"Fintech Nhật có những ràng buộc và yêu cầu khác biệt rõ rệt so với fintech khu vực khác. Đây là những điểm React Plus đã làm việc nhiều năm và xử lý quen thuộc:","items":[{"title":"Hệ thống core banking cũ","desc":"Hầu hết core banking Nhật chạy trên hạ tầng đã đầu tư 10-20 năm, không có REST API hiện đại. Tích hợp AI cần lớp trung gian xử lý SOAP, batch file, message queue legacy."},{"title":"Yêu cầu bảo mật personal data nghiêm ngặt","desc":"APPI và quy định nội bộ ngân hàng yêu cầu dữ liệu khách hàng không rời khỏi Nhật. AI deployment phải on-premise hoặc cloud Nhật, không dùng được API model US/EU."},{"title":"Tài liệu tiếng Nhật đặc thù","desc":"Kanji, hiragana, katakana trong cùng tài liệu. Báo cáo tài chính, hợp đồng có format truyền thống. OCR và NLP cần model fine-tune riêng cho Nhật."},{"title":"Văn hóa risk-averse","desc":"Quyết định có rủi ro tài chính bắt buộc human-in-the-loop, approval đa cấp. AI không được autonomous trong các quyết định ảnh hưởng tiền của khách hàng."},{"title":"Workflow approval đa cấp","desc":"Quy trình phê duyệt nội bộ trong tổ chức tài chính Nhật phức tạp hơn các nước khác. AI agent phải hiểu và tuân theo cấu trúc approval này."}]},"capabilities":{"label":"USE CASES","title":"Use case AI fintech đã triển khai","desc":"Các use case React Plus đã làm thật trong production, áp dụng cho banking, lending, capital markets, và real estate finance.","techLabel":"Tech:","appliedLabel":"Áp dụng:","items":[{"title":"Phát hiện gian lận giao dịch real-time","desc":"Phân tích giao dịch theo thời gian thực bằng deep learning để phát hiện hoạt động bất thường - chuyển khoản bất thường, hành vi đăng nhập đáng ngờ, pattern fraud lặp lại.","tech":"Deep learning, anomaly detection, real-time scoring","applied":"Banking core, payment platform, e-wallet"},{"title":"Dự báo biến động chứng khoán","desc":"Kết hợp deep learning trên dữ liệu giá lịch sử và NLP trên tin tức/báo cáo để dự đoán xu hướng giá cổ phiếu trong khung thời gian ngắn-trung hạn.","tech":"Deep learning, NLP, time-series forecasting","applied":"Investment platform, securities firm"},{"title":"Chấm điểm tín dụng từ dữ liệu phi truyền thống","desc":"Đánh giá năng lực tín dụng dựa trên dữ liệu ngoài credit bureau - lịch sử thanh toán hóa đơn tiện ích, hành vi mua sắm online, behavioral patterns. Mở rộng phổ khách hàng có thể đánh giá vượt khỏi nhóm có credit history.","tech":"ML scoring, alternative data, feature engineering","applied":"Consumer lending, BNPL, micro-finance"},{"title":"Chatbot tư vấn tài chính cá nhân","desc":"Trợ lý AI hỗ trợ người dùng quản lý chi tiêu, lập ngân sách, hiểu sản phẩm tài chính. Đối thoại bằng ngôn ngữ tự nhiên với context cá nhân hóa từ dữ liệu giao dịch của user.","tech":"LLM, RAG, personalization","applied":"Retail banking app, fintech app"},{"title":"Tối ưu hóa danh mục đầu tư","desc":"Cân bằng rủi ro và lợi nhuận theo mục tiêu của nhà đầu tư bằng học tăng cường - adapt phân bổ tài sản theo điều kiện thị trường và risk profile cá nhân.","tech":"Reinforcement learning, portfolio optimization","applied":"Wealth management, robo-advisor"}
8433,{"title":"Dự báo rủi ro vỡ nợ trong P2P lending","desc":"Phân tích khả năng nợ xấu dựa trên multi-factor: thu nhập, lịch sử vay, hành vi trả nợ, dữ liệu macro. Output dùng để pricing lãi suất và quyết định approval.","tech":"Risk modeling, multi-factor analysis","applied":"P2P lending platform, online lender"},{"title":"Trích xuất thông tin từ báo cáo tài chính","desc":"Tự động đọc báo cáo doanh nghiệp, trích xuất các chỉ số tài chính quan trọng (revenue, EBITDA, debt ratio), tóm tắt nội dung định tính, structure hóa thành dữ liệu có thể truy vấn.","tech":"NLP extraction, document AI, summarization","applied":"Equity research, credit analysis, M&A advisory"},{"title":"Định giá bất động sản tự động","desc":"Ước tính giá trị bất động sản dựa trên dữ liệu thị trường, đặc điểm tài sản, vị trí, và xu hướng giao dịch tương tự. Output có confidence interval để hỗ trợ thẩm định.","tech":"ML regression, feature engineering, market data","applied":"Mortgage origination, real estate platform, asset appraisal"}]},"faq":{"label":"FAQ","title":"Câu hỏi thường gặp khi làm AI Fintech ở Nhật","desc":"Tổng hợp các câu hỏi mà CTO, Head of Risk, Head of Innovation tại các tổ chức tài chính Nhật thường đặt ra khi đánh giá vendor AI. Câu trả lời dựa trên kinh nghiệm thực tế của React Plus trong nhiều năm triển khai fintech AI tại thị trường Nhật.","items":[{"question":"Liệu mô hình AI có giải thích được quyết định cho regulator?","answer":"Mọi mô hình production của chúng tôi có decision audit trail và explainability layer. Với mô hình ML truyền thống, dùng SHAP và LIME để giải thích từng feature contribution. Với LLM, lưu prompt, context, response và intermediate reasoning steps.\\n\\nTrong fintech Nhật, đây là mặc định, không phải tùy chọn. JFSA và quy định nội bộ của ngân hàng đều yêu cầu khả năng truy vết khi có khiếu nại từ khách hàng hoặc audit từ regulator."},{"question":"Làm sao đảm bảo dữ liệu khách hàng không rời khỏi Nhật?","answer":"Có 3 lớp xử lý.\\n\\nLớp hạ tầng: Triển khai on-premise trong data center của khách hàng, hoặc private cloud trong region Nhật (AWS Tokyo, Azure Japan East, GCP Tokyo).\\n\\nLớp model: LLM dùng mô hình open-source self-hosted (Llama, Qwen, Mistral, GPT-OSS) chạy trong infrastructure của khách hàng. Không dùng public API cross-border của OpenAI hay Anthropic cho dữ liệu nhạy cảm.\\n\\nLớp dữ liệu: Encryption at rest và in transit. Access control theo role và phòng ban. Audit log mọi truy cập dữ liệu cá nhân để đáp ứng APPI.\\n\\nĐây là điểm React Plus định vị là năng lực mũi nhọn - local LLM/SLM deployment cho khách hàng có yêu cầu data sovereignty."},{"question":"Mô hình ra quyết định sai dẫn đến tổn thất - ai chịu trách nhiệm?","answer":"Mô hình AI hỗ trợ quyết định, không thay thế quyết định cuối. Trong các bài toán có rủi ro tài chính (cho vay, từ chối giao dịch, lock tài khoản, chặn fraud), approval gate đảm bảo có người chịu trách nhiệm cho mỗi quyết định business critical.\\n\\nAI cung cấp recommendation và confidence score. Nhân viên ngân hàng review và approve. Decision được ghi log với cả input AI lẫn người approve cuối - phục vụ audit và resolution khi có dispute."},{"question":"Tích hợp với core banking cũ thế nào nếu không có REST API?","answer":"Đây là tình huống phổ biến ở Nhật, nơi nhiều core banking đã chạy 10-20 năm trên hạ tầng legacy.\\n\\nCách tiếp cận của chúng tôi: xây lớp adapter chuyển đổi protocol - SOAP-to-REST, batch file processing, message queue listener. AI component đứng phía sau adapter, giao tiếp qua interface chuẩn hiện đại. Core banking không cần thay đổi gì.\\n\\nVới batch processing (phổ biến cho settlement, end-of-day report), AI chạy theo schedule và đẩy kết quả vào hệ thống downstream qua format file mà core banking đã quen."},{"question":"Có làm fine-tuning trên dữ liệu nội bộ của khách hàng không?","answer":"Có. Đặc biệt với các bài toán đặc thù domain - phân tích báo cáo tài chính, đọc hợp đồng tiếng Nhật, customer service chuyên về sản phẩm cụ thể.\\n\\nFine-tuning chạy trên hạ tầng của khách hàng. Dữ liệu training và model weights không rời khỏi tổ chức. Output là một model riêng cho khách hàng, không shared với khách hàng khác.\\n\\nCách thường dùng: bắt đầu với model open-source (Llama, Qwen), fine-tune bằng LoRA hoặc QLoRA trên GPU on-premise, deploy qua vLLM hoặc Ollama."},{"question":"Thời gian từ PoC đến production thường bao lâu?","answer":"Phụ thuộc độ phức tạp dữ liệu và mức độ tích hợp với hệ thống cũ. Pattern thường gặp:\\n\\nPoC để chứng minh khả thi: 4-6 tuần. Output là prototype chạy trên dataset mẫu, có evaluation report.\\n\\nHardening và pilot: 2-3 tháng. Tích hợp với hạ tầng thật, chạy thử với scope giới hạn (một chi nhánh, một segment khách hàng).\\n\\nProduction rollout: 1-3 tháng tùy scale. Bao gồm load testing, security review, regulatory check, rollback plan.\\n\\nTổng cộng dự án fintech điển hình từ PoC đến full production: 6-12 tháng."},{"question":"Có làm việc trực tiếp với regulator (JFSA) không?","answer":"Không. React Plus là engineering vendor, không thay thế khách hàng trong quan hệ với regulator. Tổ chức tài chính của khách hàng giữ trách nhiệm và quyền tương tác với JFSA, FISC.\\n\\nVai trò của chúng tôi là cung cấp documentation kỹ thuật, audit trail, explainability evidence để khách hàng dùng khi làm việc với regulator. Chúng tôi tham gia hỗ trợ kỹ thuật khi khách hàng có buổi meeting hoặc audit, nhưng không đại diện chính thức."}]},"cta":{"title1":"AI cho tài chính -","title2":"bắt đầu từ đây","desc":"Chia sẻ bài toán ngành của bạn. Chúng tôi đề xuất architecture và approach phù hợp nhất.","btnPrimary":"Đặt lịch trao đổi →","btnSecondary":"Xem tất cả giải pháp →"}},"coreValueSolutions":{"hero":{"label":"Solutions","title1":"10 giải pháp AI","title2":"cho doanh nghiệp Nhật Bản","de
8433sc":"Mỗi giải pháp giải một bài toán cụ thể, có phạm vi rõ ràng và chạy được trong production."},"catalog":{"scopeLabel":"Phạm vi:","fitLabel":"Phù hợp khi:","items":[{"title":"Chiến lược & Kiến trúc Data, AI","desc":"Đánh giá toàn diện năng lá»±c Data & AI cho doanh nghiệp – Xác định bài toán ưu tiên, quy hoạch hạ tầng dữ liệu đạt chuẩn AI-ready và thiết kế kiến trúc hệ thống AI để bắt đầu triển khai.","scope":["Đánh giá hiện trạng & AI-ready Data: Khảo sát chất lượng, cấu trúc và độ sẵn sàng cá»§a nguồn dữ liệu hiện tại; xây dá»±ng kế hoạch, chiến lược cho AI, AI-ready Data","Đề xuất các use cases ưu tiên: Xác định các bài toán kinh doanh có thể giải quyết bằng AI & Data dá»±a trên chỉ số ROI và business case cụ thể cho từng hạng mục.","Target Architecture: Thiết kế mô hình tổng thể bao gồm Tech stack, Integration layer, Data & Knowledge layer, AI Core& Orchestraton, Governance & Monitoring..","Roadmap: Xây dá»±ng kế hoạch hành động chi tiết theo từng giai đoạn, cân đối giữa hạ tầng dữ liệu và tiến độ phát triển mô hình AI.","Đánh giá Build vs Buy: Phân tích và khuyến nghị giải pháp tá»± xây dá»±ng hay mua ngoài đối với từng cấu phần trong hệ thống AI & Data để tối ưu chi phí."],"fit":"Doanh nghiệp chưa rõ nên ưu tiên bài toán nào, mức độ AI ready data hoặc cần đánh gía tính khả thi cá»§a các dá»± án AI"},{"title":"Document Intelligence Platform","desc":"Hệ thống tá»± động xá»­ lý tài liệu thông minh – chuyển đổi toàn bộ giấy tờ, biểu mẫu, ảnh chụp... thành dữ liệu sạch có thể tích hợp trá»±c tiếp vào các hệ thống cá»§a doanh nghiệp","scope":["Công nghệ OCR đa ngôn ngữ: Nhận diện và trích xuất dữ liệu, chữ viết tay chính xác từ văn bản đa ngôn ngữ, đặc biệt tối ưu cho tiếng Nhật (Kanji, Hiragana, Katakana), tiếng Việt và tiếng Anh.","Document Understanding: phân tích, đọc hiểu, nhận diện bảng biểu, biểu đồ, layout phức tạp - chuyển báo cáo tài chính, biểu mẫu nhiều cột thành dữ liệu có cấu trúc","Giải pháp eKYC: Tá»± động đọc thông tin từ các loại giấy tờ tùy thân (ID Card, Hộ chiếu) và thá»±c hiện đối chiếu, kiểm tra danh tính theo thời gian thá»±c.","Data Normalization: xá»­ lý, làm sạch dữ liệu tạo đầu ra chuẩn, sẵn sàng tích hợp với hệ thống ERP, CRM...","Độ chính xác cao: đưa ra kết quả độ chính xác với Confidence score cho từng trường dữ liệu và cảnh báo người dùng với các trường dữ liệu có độ chính xác thấp."],"fit":"Các tổ chức phải xá»­ lý khối lượng lớn giấy tờ, hồ sÆ¡, hóa đơn, chứng từ thá»§ công – đặc biệt là tài liệu tiếng Nhật phức tạp hoặc ảnh chụp thá»±c tế có chất lượng thấp."},{"title":"Enterprise Knowledge System","desc":"Hệ thống truy vấn dữ liệu nội bộ (unstructured, structured and semi-structured data) bằng ngôn ngữ tá»± nhiên - như chat với chuyên gia đã hiểu hết tài liệu công ty.","scope":["Kết nối nguồn dữ liệu đa dạng:  tạo Knowledge base từ nhiều nguồn dữ liệu khác nhau bao gồm cả dữ liệu phi cấu trúc (PDF, Word, SharePoint, Confluence) và có cấu trúc (Relational Database, Data Warehouse)....","Explainable result: Cung cấp câu trả lời minh bạch, tá»± động tổng hợp từ nhiều nguồn khác nhau, kèm theo trích dẫn chính xác nguồn tài liệu gốc hoặc bảng dữ liệu tham chiếu để người dùng dễ dàng kiểm chứng","Khả năng tích hợp linh động: cung cấp giao diện Chat UI độc lập hoặc nhúng vào công cụ giao tiếp như Slack/Teams, cung cấp API kết nối với các hệ thống khác","Bảo mật  & Phân quyền: Đảm bảo hệ thống tuân thá»§ chặt chẽ quyền truy cập dữ liệu theo phòng ban, vai trò và sÆ¡ đồ tổ chức cá»§a doanh nghiệp.","Update & Giám sát: Tá
8433»± động đồng bộ khi có tài liệu mới hoặc dữ liệu database được cập nhật; tích hợp framework đánh giá để kiểm soát hiện tượng AI Hallucination"],"fit":"Doanh nghiệp có nhiều tài liệu nội bộ, hệ thống dữ liệu vận hành phân mảnh, khiến nhân viên mất nhiều thời gian để tìm kiếm thông tin và tổng hợp báo cáo từ nhiều nguồn khác nhau."},{"title":"Applied ML Production System","desc":"Xây dá»±ng và đưa vào vận hành thá»±c tế các mô hình Machine Learning/Deep Learning – Giải quyết các bài toán dữ liệu phức tạp ở quy mô lớn với độ ổn định cao","scope":["Production-grade AI Model: Phát triển các mô hình ML/DL chuyên biệt (Credit Scoring, Fraud Detection, Forecasting, Anomaly Detection, Recommendation) theo tiêu chuẩn production.","Data Pipeline & Feature Store: Thiết kế, xây dá»±ng scalable data pipeline và feature store cho doanh nghiệp","Đánh giá tá»± động: Thiết lập quy trình tá»± động đánh giá chất lượng mô hình trước khi triển khai, đảm bảo độ chính xác theo yêu cầu nghiệp vụ","Monitoring & Drift Alerts: Theo dõi hiệu suất mô hình theo thời gian thá»±c và tá»± động gá»­i cảnh báo khi xuất hiện hiện tượng Data/Concept/Model Drift","Retrain pipeline: Tá»± động kích hoạt quy trình huấn luyện lại mô hình khi các chỉ số trên môi trường thá»±c tế có dấu hiệu suy giảm."],"fit":"Doanh nghiệp đã sở hữu lượng dữ liệu lịch sá»­, cần một hệ thống AI/ML/DL vận hành thá»±c tế (Production-ready) chứ không chỉ dừng lại ở mức thá»­ nghiệm (PoC)."},{"title":"AI Agent for Workflow Automation","desc":"Tá»± động hóa các quy trình nghiệp vụ phức tạp bằng AI Agent – Khả năng tá»± đọc hiểu ngữ cảnh, đưa ra quyết định, điều phối và phối hợp linh hoạt giữa các hệ thống/agent với con người là approve cuối cùng","scope":["Customized AI Agent: Thiết kế, phát triển các AI Agent theo đúng các quy trình, nghiệp vụ cá»§a doanh nghiệp","Quản lý bộ nhớ: quản lý bộ nhớ ngắn hạn/trung hạn/dài hạn cho AI Agent để ghi nhớ ngữ cảnh, thông tin khách hàng và lịch sá»­ giao dịch xuyên suốt.","Tích hợp các hệ thống: Kết nối AI Agent với các hệ thống khác nhau theo các tiêu chuẩn quốc tế (Agent-to-Agent (A2A), Agent-to-System (MCP), API...)","Approval Gates & Safety: Thiết lập các cÆ¡ chế cần con người phê duyệt tại các bước quyết định quan trọng, thiết lập các cÆ¡ chế bảo mật, guardrail cho hệ thống","Audit Trail: Ghi log/trace toàn bộ hành động, quyết định và luồng tư duy cá»§a AI Agent để phục vụ công tác kiểm tra, rà soát, đảm bảo chất lượng và đảm bảo các yêu cầu về đạo đức, tuân thá»§ và trách nhiệm AI","Admin Panel: Cung cấp giao diện trá»±c quan để quản lý, theo dõi hiệu suất, giám sát hoạt động và can thiệp khi cần thiết."],"fit":"Doanh nghiệp vận hành các quy trình nhiều bước, cần khả năng reasoning và thinking cá»§a AI thay vì các công cụ RPA truyền thống cứng nhắc, thiếu linh hoạt."},{"title":"Computer Use Agent","desc":"Tá»± động hóa tác vụ trá»±c tiếp trên giao diện người dùng bằng AI Agent với khả năng phân tích giao diện, điều khiển chuột, bàn phím… thao tác trên mọi ứng dụng bao gồm cả các hệ thống legacy không có API","scope":["GUI Automation: AI Agent quan sát/phân tích màn hình và điều khiển chuột/bàn phím để thao tác trá»±c tiếp trên mọi ứng dụng desktop, web mà không cần tích hợp API.","Vision-based Understanding: Ứng dụng mô hình thị giác (VLM) để nhận diện, phân tích nút bấm, biểu mẫu, bảng biểu và ngữ cảnh trên màn hình, từ đó xác định hành động phù hợp.","Task Planning & Execution: Tá»± lập kế hoạch, chia nhỏ tác vụ phức tạp thành các bước thao tác cụ thể để thá»±c thi, có khả năng tá»± phát hiện và sá»­a lỗi khi thao tác thất bại.","Approval Gates & Safety: Thiết lập cÆ¡ chế cần con người phê duyệt tại các bước quan trọng và giới hạn phạm vi thao tác (sandbox) để đảm bảo an toàn.","Audit Trail: Ghi lại toàn bộ thao tác (screenshot/log) và luồng quyết định cá»§a Agent để phục vụ kiểm tra, rà soát và đảm bảo tuân thá»§."],"fit":"Doanh nghiệp cần tá»± động hóa các tác vụ trên phần mềm/hệ thống không có API, cần khả năng thinking/reasoning cá»§a AI mà các công cụ RPA truyền thống phải cần rule mới thá»±c hiện được"},{"title":"On-Premise LLM & Private AI Deployment","desc":"Triển khai các mô hình LLM, VLM, SLM...và hạ tầng AI trên môi trường nội bộ – Bảo mật dữ liệu tuyệt đối và không để thông tin rời khỏi tổ chức.","scope":["Triển khai Self-hosted LLM: triển khai và vận hành các mô hình LLM/VLM/SLM (Llama, Qwen, DeepSeek, Mistral...) trên hạ tầng On-premise hoặc Private Cloud.","Model Fine-tuning: Huấn luyện, tinh chỉnh mô hình theo dữ liệu và tri thức nội bộ cá»§a công ty.","Tối ưu hóa Model Serving: tối ưu hoá model và inference engine (vLLM, TGI, Ollama) kết hợp với tối ưu hóa phần cứng GPU đảm bảo các chỉ số về speed, throughput đáp ứng tiêu chuẩn production","Security: Thiết lập cÆ¡ chế kiểm soát truy cập Access Control, Rate limiting, Audit log nhằm đảm bảo an toàn tuyệt đối cho toàn bộ hạ tầng AI nội bộ.","Tối ưu hóa chi phí vận hành: Áp dụng các kỹ thuật Quantization, Batching, Caching để giảm thiểu tài nguyên phần cứng và tối ưu hóa chi phí xá»­ lý.","Lifecycle Management: Quản lý toàn bộ vòng đời mô hình một cách thống nhất –fine-tuning, serving, A/B testing, Versioning/Rollback"],"fit":"Các doanh nghiệp, tổ chức có chính sách bảo mật nghiêm ngặt, yêu cầu dữ liệu không được rời khỏi hệ thống hoặc cần kiểm soát chi phí cố định cho lưu lượng sá»­ dụng lớn."},{"title":"Embedded AI for Legacy Industrial","desc":"AI nhúng trá»±c tiếp vào máy móc và hạ tầng công nghiệp đã đầu tư từ 10-20 năm trước – Biến các thiết bị phần cứng “câm” thành hệ thống biết suy luận mà không cần thay mới phần cứng.","scope":["Edge Computing:  Triển khai, tích hợp các thiết bị tính toán biên nhỏ gọn (Raspberry Pi, NVIDIA Jetson, Intel NUC) vào các máy móc, hệ thống hiện có.","Domain Specific SLM: Đưa các mô hình ngôn ngữ nhỏ (Phi-3, Gemma, Llama 3.2, Qwen 2.5) hoặc các mô hình đã fine-tune, domain specific SLM chạy trá»±c tiếp tại biên.","Analytical AI Agent: AI Agent đọc và phân tích dữ liệu log m
8433áy theo thời gian thực, đưa ra cảnh báo và giải thích trạng thái nhanh chóng, kịp thời.","Predictive Maintenance: Thu thập và phân tích các chỉ số vật lý như độ rung động, nhiệt độ, dòng điện để dự đoán sớm các sự cố hư hỏng.","Giao diện tương tác đa chế độ (Voice/Text Interface): Phát triển giao diện điều khiển bằng giọng nói hoặc text hỗ trợ đa ngôn ngữ (Nhật, Việt, Anh…)","Kết nối chuẩn công nghiệp: Tích hợp và giao tiếp thông qua các giao thức tiêu chuẩn (OPC-UA, MQTT, Modbus)."],"fit":"Có hạ tầng công nghiệp cũ vẫn chạy tốt nhưng chưa có \\"brain\\", muốn thêm AI mà không thay phần cứng. Yêu cầu real-time control sâu vào PLC layer."},{"title":"AI Solutions SaaS & Product","desc":"Xây dựng sản phẩm và giải pháp SaaS với AI là trọng tâm ngay từ đầu, thay vì chỉ gắn thêm tính năng AI lên hệ thống có sẵn.","scope":["AI Solutions Architecture: Kiến trúc sản phẩm đặt mô hình AI Agent là nền tảng, thay vì chỉ xem AI như một service/API tách biệt. AI là năng lực cốt lõi vận hành toàn bộ hệ thống từ  data ingestion, decision logic tới user interaction.","Agentic system: chuyển đổi từ phần mềm \\"người dùng vận hành\\", rule based sang AI chủ động phân tích, điều phối, ra quyết định với human-approval","Continuous Learning & self improvement: hệ thống được thiết kế để mỗi tương tác người dùng đều được AI sử dụng để tự học và tự cải thiện liên tục theo thời gian.","Next generation UI/UX: chuyển đổi từ giao diện tĩnh, clicked-based sang AI, intent-based UI/UX. Thay vì chỉ tương tác với menu, button, text cố định, người dùng chỉ cần mô tả ý định, AI sẽ hỗ trợ người dùng hoàn thành tác vụ với UI/UX tuỳ chỉnh linh hoạt theo tác vụ đó.","Production grade Saas&Product: hệ thống vận hành đầy đủ với Authentication, Billing/Subscription, Observability, evaluation, guardrail, multi-tenant support  theo tiêu chuẩn production"],"fit":"Doanh nghiệp muốn xây dựng sản phẩm SaaS AI Solutions, không phải gắn AI vào sản phẩm có sẵn."},{"title":"AI-Driven Software Development","desc":"Xây dựng hệ thống phần mềm doanh nghiệp với quy trình AI-Driven tiên tiến (Spec-driven, Intent-driven) – Tăng tốc độ phát triển nhờ AI Coding Agent nhưng đảm bảo kiểm duyệt chặt chẽ bởi senior.","scope":["End-to-End Software: Phát triển các hệ thống phần mềm custom theo yêu cầu doanh nghiệp, có hoặc không kèm tính năng AI bên trong.","AI-assisted lifecycle: Ứng dụng AI Agent vào tất cả các khâu trong chu trình phát triển phần mềm bao gồm requirment engineering, design, implementation, testing, deployment and maintainance","Chuẩn hóa Codebase: Bàn giao mã nguồn kèm theo tài liệu kiến trúc, kỹ thuật phần mềm và các báo cáo testing/pen testing","Kiểm duyệt chất lượng: Đảm bảo 100% mã nguồn và logic phần mềm được rà soát trực tiếp bởi Senior Engineer tại mọi điểm merge code.","Tự động hóa vận hành: Thiết lập CI/CD pipeline hoàn chỉnh và tự động hóa quy trình triển khai và vận hành."],"fit":"Doanh nghiệp cần xây dựng phần mềm trong thời gian ngắn, chi phí thấp hơn phương pháp truyền thống mà vẫn đảm bảo chất lượng cao"}]},"process":{"label":"Process","title":"Quy trình triển khai","desc":"Bốn giai đoạn với quality gate cho từng bước. Vấn đề phát sinh ở mỗi giai đoạn được report và xử lý trước khi tiến tiếp.","items":[{"title":"Discovery & Framing","desc":"Định khung bài toán, đánh giá dữ liệu, xác định ROI và ràng buộc vận hành. Chốt kiến trúc đích trong 2-4 tuần.","gate":"Dữ liệu đủ chất lượng để giải bài toán; ROI và ràng buộc rõ ràng. Nếu không đủ - chúng tôi report lại và đề xuất hướng xử lý: chuẩn bị data, điều chỉnh scope, hoặc thiết kế giải pháp ít phụ thuộc data."}
8433,{"title":"Architecture Design","desc":"Thiết kế kiến trúc AI cho bài toán cụ thể. Spec kỹ thuật chi tiết, đánh giá build vs buy, integration plan với hệ thống cũ.","gate":"Kiến trúc được duyệt bởi senior architect và khách hàng. Nếu phát hiện gap về dữ liệu, integration, hoặc ràng buộc pháp lý - quay lại Discovery để làm rõ."},{"title":"Build & Evaluate","desc":"Engineer build model và hệ thống với AI agent hỗ trợ. Senior review code trước khi merge. Mỗi version chạy qua evaluation pipeline tự động, so với metric target đã set ở Architecture.","gate":"Metric đạt target sau evaluation. Không đạt - phân tích nguyên nhân: data không đủ → quay lại Discovery; approach sai → quay lại Architecture; cần tinh chỉnh → iterate tiếp ở Build."},{"title":"Deploy & Govern","desc":"Triển khai hệ thống lên production của khách hàng. Setup monitoring, alert, approval workflow cho các quyết định rủi ro cao. Audit trail được thiết lập từ ngày đầu.","gate":"Hệ thống chạy ổn định trong 2-4 tuần đầu - uptime đạt SLA, metric production khớp evaluation. Không đạt - rollback về version trước, xử lý theo runbook đã chuẩn bị từ Build."}]},"engagement":{"label":"Engagement","title":"Các cách thức hợp tác","desc":"Bốn hình thức, từ sprint ngắn đến đội chuyên trách dài hạn.","items":[{"title":"Strategy Sprint","desc":"Một hợp đồng ngắn 2-4 tuần dành cho khách hàng chưa rõ bài toán AI nào nên ưu tiên. Chúng tôi đi vào phân tích hiện trạng, đánh giá khả thi, đề xuất kiến trúc và lộ trình. Kết thúc bằng một assessment report đủ chi tiết để lãnh đạo ra quyết định đầu tư tiếp theo."},{"title":"PoC to Production","desc":"Triển khai một solution cụ thể qua nhiều giai đoạn - từ PoC trong 4-6 tuần để chứng minh khả thi, sang Pilot chạy thử với user thật, rồi rollout đến Production. Sau mỗi giai đoạn, khách hàng dựa vào kết quả thực tế để quyết định đi tiếp hay dừng. Phù hợp với các tổ chức đã chọn được bài toán nhưng muốn đo ROI trước khi commit ngân sách lớn."},{"title":"Dedicated AI Squad","desc":"Một đội chuyên trách dài hạn, embedded với team khách hàng theo cam kết quý hoặc năm. Đội này ownership từ đầu đến cuối các solution mà khách hàng triển khai - không phải hợp đồng từng dự án rời rạc. Phù hợp với các tổ chức đã commit chiến lược AI dài hạn và cần năng lực ổn định bên trong."},{"title":"Enablement Program","desc":"Chương trình đào tạo và coaching cho team kỹ thuật của khách hàng. Khác với ba mô hình trên - nơi React Plus làm - ở đây React Plus dạy team khách hàng tự làm. Sau chương trình, đội kỹ thuật nội bộ vận hành được phương pháp AI-driven mà không phụ thuộc vendor."}]},"cta":{"title":"Bắt đầu từ đâu?","desc":"Discovery Call - 30 phút để xác định bài toán, đề xuất approach và ước lượng scope.","btnPrimary":"Đặt lịch trao đổi →","btnSecondary":"Fintech Solutions →"}}}'),tO={title:"Bảng tin",subtitle:`Trang cập nhật nhanh chóng các hoạt động, sự kiện, thành tựu và thông báo quan trọng của React Plus,
8434đồng thời kết nối nhân sá»±, khách hàng, đối tác và lan tỏa văn hóa doanh nghiệp.`,sort:"Sắp xếp",loading:"Đang tải...",empty:"Không có tin tức",loadMore:"Xem thêm",categories:{All:"Tất cả",Event:"Sá»± kiện",News:"Blog",Charity:"Thiện nguyện",Culture:"Văn hóa",Career:"Kiến thức nghề nghiệp",Company:"Nội bộ",AiBlog:"Kiến thức AI"}},eO={mainHeading:"Liên hệ với chúng tôi",subheading:"Vui lòng sá»­ dụng biểu mẫu để gá»­i các câu hỏi, yêu cầu tư vấn hoặc trao đổi hợp tác với React Plus.",description:"Chúng tôi sẽ liên hệ lại trong thời gian sớm nhất sau khi xác nhận nội dung.",learnMore:"Tìm hiểu thêm",features:{title:"",feature1:"",feature2:"",feature3:"",feature4:""},trusted:{title:"Được hàng trăm công ty đối tác tin tưởng lá»±a chọn"},phoneLabel:"Điện thoại liên hệ",emailLabel:"Email liên hệ",form:{companySize:"Quy mô công ty",companyName:"Tên công ty",lastName:"Họ",firstName:"Tên",fullName:"Họ và tên",workEmail:"Email",phoneNumber:"Số điện thoại",productInterest:"Bạn quan tâm đến sản phẩm hoặc dịch vụ nào cá»
8434§a chúng tôi?",businessNeeds:"Bạn có thể chia sẻ thêm về nhu cầu và thách thức kinh doanh cá»§a mình không?",submit:"Gá»­i",submitting:"Đang gá»­i...",selectPlaceholder:"Vui lòng chọn",selectDropdownPlaceholder:"Vui lòng chọn",lastNamePlaceholder:"Nhập họ",firstNamePlaceholder:"Nhập tên",companyNamePlaceholder:"Nhập tên công ty",workEmailPlaceholder:"Nhập email",phoneNumberPlaceholder:"Nhập số điện thoại",businessNeedsPlaceholder:"Mô tả nhu cầu và thách thức kinh doanh cá»§a bạn...",errors:{required:"Trường này là bắt buộc",emailInvalid:"Địa chỉ email không hợp lệ",emailTooLong:"Email không được vượt quá 100 ký tá»±",phoneInvalid:"Số điện thoại không hợp lệ",phoneTooShort:"Số điện thoại phải có ít nhất 10 số",phoneTooLong:"Số điện thoại không được vượt quá 12 số",nameTooLong:"Tên không được vượt quá 50 ký tá»±",lastNameTooLong:"Họ không được vượt quá 50 ký tá»±",companyNameTooLong:"Tên công ty không được vượt quá 100 ký tá»±",businessNeedsTooLong:"Nội dung không được vượt quá 2000 ký tá»±",submitError:"Đã xảy ra lỗi khi gá»­i biểu mẫu. Vui lòng thá»­ lại.",emailTooShort:"Email phải có ít nhất 5 ký tá»±",nameTooShort:"Tên phải có ít nhất 2 ký tá»±",lastNameTooShort:"Họ phải có ít nhất 2 ký tá»±",companyNameTooShort:"Tên công ty phải có ít nhất 2 ký tá»±",businessNeedsTooShort:"Nội dung phải có ít nhất 10 ký tá»±"},companySizeOptions:{"1-10":"1-10 người","11-50":"11-50 người","51-200":"51-200 người","201-500":"201-500 người","500+":"500+ người"},productOptions:{aiFintechSolutions:"Giải pháp AI・Fintech",atobarAi:"Về Atobar AI",adHousing:"Về AD Housing",adPassport:"Về AD Passport",liveNowPayLater:"Về Live now, Pay later",recruitment:"Tuyển dụng",other:"Khác"},footer:{text:"Để biết thêm thông tin, vui lòng truy cập",helpCenter:"trung tâm trợ giúp"}},thankYou:{title:"Cảm Æ¡n",message:"Đội ngÅ© kinh doanh cá»§a chúng tôi rất mong được kết nối với bạn. Chúng tôi sẽ sớm liên hệ với bạn!",sendAgain:"Gá»­i lại"}},nO={greeting:{morning:"Good morning. How can I help you?",afternoon:"Good afternoon. How can I help you?",evening:"Good evening. How can I help you?"},title:"Tôi có thể giúp gì cho bạn?",chips:{search:"Về React Plus",talk:"React Plus ứng dụng AI vào phát triển như thế nào?",research:"React Plus có thể cung cấp những giải pháp AI / Fintech nào?",aiCapabilities:"Năng lá»±c AI",more:"React Plus hiện có những product nào?"},placeholders:["Nhập câu hỏi cá»§a bạn vào đây","Vui lòng chọn chá»§ đề phía dưới"],errors:{network:"Lỗi kết nối mạng. Vui lòng kiểm tra đường truyền và thá»­ lại.",guardrail:"Yêu cầu bị từ chối do chính sách bảo mật nội dung.",rateLimit:"Bạn đã gá»­i quá nhiều yêu cầu. Vui lòng thá»­ lại sau.",tokenLimit:"Đã đạt giới hạn token trong phiên làm việc. Vui lòng thá»­ lại sau.",general:"Không thể gá»­i tin nhắn. Vui lòng thá»­ lại sau."},actions:{like:"Thích",dislike:"Không thích",retry:"Thá»­ lại"}},aO={copyright:"React Plus Joint Stock Company",allRights:"All rights reserved"},sO={hero:{badge:"HOUSING AFFORDABILITY ASSESSMENT",title:"AD Housing",description:"Nền tảng AI đánh giá khả năng chi trả nhà ở - phân tích 20+ nguồn dữ liệu, 5+ AI Agents kiểm tra chéo mỗi đánh giá để đảm bảo kết quả trung thá»±c và công bằng. Không phân biệt đối xá»­."},stats:{accuracy:"Độ chính xác mô hình",data_sources:"Nguồn Alternative Data (utility, bank, rental, mobile)",risk_reduction:"Giảm rá»§i ro vỡ nợ so với phương pháp truyền thống",processing_time:"Đánh giá toàn diện (AI scoring < 200ms)"},features:{title:"Key Features",subtitle:"Đánh giá toàn diện chi phí nhà ở qua AI và Alternative Data analysis",comprehensive_analysis:{title:"Phân tích chi phí toàn diện",description:"Tiền thuê nhà, tiền đặt cọc, tá»· lệ nợ trên thu nhập (DTI), các khoản tiết kiệm"},data_sources:{title:"HÆ¡n 20 nguồn dữ liệu",description:"Hóa đơn tiện ích, giao dịch ngân hàng, lịch sá»­ thuê nhà, ví điện tá»­"},accuracy:{title:"Đánh giá công bằng",description:"Fairness Agent kiểm tra mọi đánh giá - giảm rá»§i ro pháp lý và bảo vệ uy tín"},real_time:{title:"Xá»­ lý thời gian thá»±c",description:"Phản hồi trong vòng 30 giây, pipeline xá»­ lý song song 20+ nguồn"},early_detection:{title:"Fraud Detection - 97%+",description:"Dẫn đầu trong phát hiện gian lận, vượt trội trong dá»± báo khả năng vỡ nợ"},smart_recommendations:{title:"Đề xuất thông minh",description:"XAI giải thích rõ lý do quyết định, gợi ý lộ trình cải thiện và cá nhân hóa kế hoạch thanh toán"}}
8434,benefits:{title:"Who Benefits",subtitle:"Mang lại giá trị cho toàn bộ hệ sinh thái tài chính nhà ở",guarantee_companies:{title:"Công ty bảo lãnh",description:`Giảm 75% rủi ro vỡ nợ nhờ affordability assessment toàn diện kết hợp Alternative Data scoring.
8435Audit trail bất biến - chứng minh quyết định hợp pháp trước cơ quan quản lý.`,feature1:"Giảm tỷ lệ nợ xấu",feature2:"Risk assessment chính xác hơn",feature3:"Tự động hóa quy trình ra quyết định"},lnpl_providers:{title:"Nhà cung cấp LNPL",description:`Tăng 40% tỷ lệ phê duyệt mà vẫn giữ chất lượng danh mục nhờ Alternative Data insights.
8436Báo cáo Fairness tự động theo từng batch - tuân thủ Fair Housing Act.`,feature1:"Mở rộng tập khách hàng",feature2:"Phê duyệt nhanh hơn",feature3:"Nâng cao lợi thế cạnh tranh"},property_managers:{title:"Công ty quản lý bất động sản",description:`Tối ưu quy trình sàng lọc người thuê - tiết kiệm 60% chi phí, đánh giá khả năng chi trả tức thì.
8437Dashboard real-time hiển thị score, tỷ lệ phê duyệt và fairness metrics.`,feature1:"Sàng lọc người thuê nhanh",feature2:"Giảm tỷ lệ trống căn",feature3:"Giảm chi phí vận hành"}},process:{title:"How It Works",subtitle:"Quy trình 4 bước đánh giá khả năng chi trả nhà ở",step1:{title:"Đăng ký",description:"Khách hàng nhập thông tin cơ bản và đồng ý chia sẻ dữ liệu"},step2:{title:"Thu thập dữ liệu",description:"Hệ thống tự động thu thập Alternative Data từ 20+ nguồn → Fairness Agent kiểm tra đảm bảo không bias theo vùng miền, giới tính, độ tuổi"},step3:{title:"Multi-Agent AI phân tích",description:"5+ AI Agents độc lập phân tích và kiểm tra chéo: Data Analysis → Fairness Check → XAI Explanation → Compliance Audit"},step4:{title:"Quyết định & kết quả",description:"Kết quả kèm giải thích → top 5 yếu tố quyết định + lộ trình cải thiện nếu chưa đạt. Gửi ngay cho đối tác và khách hàng."}},data_sources:{badge:"DATA SOURCES",title:"20+ Alternative Data Sources",description:"Tích hợp dữ liệu toàn diện cho affordability assessment chính xác",utility_bills:{title:"Hóa đơn tiện ích",description:"Lịch sử thanh toán điện, nước, gas, truyền hình công cộng - đo tính đúng hạn"},bank_transactions:{title:"Giao dịch ngân hàng",description:"Các khoản vay, lịch sử tín dụng, nguồn thu nhập"},rental_history:{title:"Lịch sử thuê nhà",description:"Tỷ lệ thanh toán đúng hạn, thời gian thuê, thông tin tham chiếu từ chủ nhà"},mobile_payments:{title:"Thanh toán di động",description:"Tần suất và mức độ ổn định giao dịch PayPay, Line Pay, Rakuten Pay"},ecommerce:{title:"Thương mại điện tử",description:"Lịch sử mua sắm và hành vi tiêu dùng trên Amazon JP, Rakuten, Mercari"},telco_cdr:{title:"Telco CDR",description:"Dữ liệu viễn thông và lịch sử thanh toán từ các nhà mạng lớn"},social_insurance:{title:"Bảo hiểm xã hội",description:"Lịch sử đóng bảo hiểm xã hội, bảo hiểm y tế và lương hưu"},employment_verification:{title:"Xác minh việc làm",description:"Xác minh tình trạng việc làm, tư cách lưu trú và thông tin thẻ cư trú"}},technology:{badge:"TECHNOLOGY",title:"AI Technology Stack",description:"Kiến trúc được xây dựng cho accuracy, speed và security",ml_models:{title:"Ensemble ML Models",description:"XGBoost + LightGBM + Deep Neural Network - 92% prediction accuracy. Model liên tục học từ data patterns mới thông qua online learning."},real_time:{title:"Real-time Data Pipeline",description:"Tích hợp Feast Feature Store với 825+ features, xử lý song song 20+ nguồn dữ liệu. Kết quả trong 30 giây, uptime 99.9%."},security:{title:"Bảo mật & tuân thủ",description:"End-to-end encryption AES-256-GCM, truy cập API bảo mật. Tuân thủ GDPR, FISC, luật bảo vệ thông tin cá nhân và Fair Housing Act. Pen testing định kỳ."}},fair_housing:{title:"Fair Housing Commitment",description:"AD Housing cam kết đánh giá khả năng chi trả dựa trên năng lực tài chính thực tế - KHÔNG dựa trên vùng miền, giới tính, độ tuổi hay dân tộc.",bullet1:"Fairness Agent kiểm tra Demographic Parity mỗi đánh giá - ga
8437p < 2%",bullet2:"Equalized Odds: tỷ lệ false positive đồng đều giữa mọi nhóm",bullet3:"Rent-to-income ratio chuẩn: khuyến nghị < 30% thu nhập",subtext:"Tuân thủ Fair Housing Act - luật chống phân biệt đối xử nhà ở - mọi đánh giá được audit độc lập"}},oO={hero:{badge:"IMMIGRATION ASSESSMENT",title:"AD Passport",description:"Nền tảng AI đánh giá nhập cư toàn diện - 30+ nguồn dữ liệu quốc tế, 5 AI Agents đảm bảo mọi đánh giá TRUNG THỰC, CÔNG BẰNG và KHÔNG PHÂN BIỆT quốc tịch, chủng tộc, tôn giáo, giới tính. Cam kết quyền được giải thích cho mọi người."},stats:{reliability:"Độ chính xác - kiểm chứng trên dữ liệu đa quốc gia",data_sources:"Nguồn dữ liệu quốc tế - ngân hàng, chính phủ, giáo dục, tuyển dụng",processing_time:"Đánh giá toàn diện (6 khía cạnh × Multi-Agent check)",high_risk_detection:"Phát hiện rủi ro - precision rate (không sai phạt người hợp pháp)"},features:{badge:"CORE FEATURES",title:"Key Features of AD Passport",subtitle:"Nền tảng đánh giá toàn diện cho xác minh nhập cư và phân tích rủi ro",multi_dimensional:{title:"Đánh giá đa chiều",description:"Phân tích toàn diện 6 khía cạnh: mỗi khía cạnh được AI chuyên biệt phân tích, Fairness Agent kiểm tra và đánh giá chéo."},data_sources:{title:"Hơn 30 nguồn dữ liệu quốc tế",description:"Tích hợp dữ liệu từ ngân hàng quốc tế, cơ quan chính phủ, mạng nghề nghiệp - được kiểm chứng qua Data Analysis Agent, loại bỏ proxy features mã hóa bias."},risk_profiling:{title:"Hồ sơ rủi ro thông minh",description:"Xây dựng risk profile chi tiết với 15+ chỉ số, tự động phân loại thành 5 cấp độ, cảnh báo sớm các dấu hiệu bất thường."},scoring:{title:"Hệ thống scoring minh bạch",description:"TFA Scoring với XAI giải thích cho MỌI kết quả - không có quyết định nào thiếu lý do."},fairness:{title:"Chống phân biệt đối xử",description:"Fairness Agent kiểm tra Demographic Parity theo quốc tịch, chủng tộc, giới tính cho từng đánh giá."},explainable:{title:"Quyền được biết",description:"XAI Agent sinh giải thích rõ ràng bằng ngôn ngữ đơn giản cho mọi đánh giá - bạn luôn biết TẠI SAO."},appeal:{title:"Quyền khiếu nại",description:"Không đồng ý kết quả? Bạn có quyền yêu cầu human reviewer xem xét lại bất cứ lúc nào."}},benefits:{title:"Benefits for Stakeholders",subtitle:"Cải thiện có thể đo lường cho doanh nghiệp và cơ quan quản lý",time_reduction:{value:"85%",title:"Giảm thời gian xử lý",subtitle:"Dành cho doanh nghiệp"},detection_accuracy:{value:"95%",title:"Độ phát hiện chính xác",subtitle:"Dành cho cơ quan quản lý"},fast_processing:{value:"10x",title:"Xử lý nhanh gấp 10 lần",subtitle:"So với quy trình truyền thống"},fraud_reduction:{value:"80%",title:"Giảm gian lận",subtitle:"Phát hiện hồ sơ giả mạo"}},assessment:{badge:"ASSESSMENT DIMENSIONS",title:"6 Key Assessment Dimensions",description:"Phân tích đa chiều toàn diện cho đánh giá nhập cư chính xác",financial:{title:"Năng lực tài chính",description:"Thu nhập, tài sản, nợ - đánh giá năng lực tài chính thuần túy, KHÔNG DÙNG quốc tịch làm proxy."},professional:{title:"Nền tảng nghề nghiệp",description:"Kinh nghiệm làm việc, kỹ năng chuyên môn, mức độ ổn định nghề nghiệp - đánh giá theo 
8437năng lá»±c thá»±c tế."},education:{title:"Xác minh học vấn",description:"Hồ sÆ¡ học tập, bằng cấp, thành tích - xác minh cÆ¡ sở đào tạo qua nguồn dữ liệu quốc tế."},migration:{title:"Lịch sá»­ cư trú",description:"Visa trước đây, lịch sá»­ di chuyển, tuân thá»§ quy định, các lần qua biên giới - không dùng quốc gia xuất xứ để phân biệt."},social:{title:"Mạng lưới nghề nghiệp",description:"Hồ sÆ¡ LinkedIn, mối quan hệ chuyên môn, uy tín trá»±c tuyến, thư giới thiệu - đã audit để loại bỏ yếu tố nhạy cảm (race/ethnicity)."},personal:{title:"Thông tin cá nhân",description:"Xác minh danh tính và kiểm tra lý lịch - không sá»­ dụng quốc tịch, tôn giáo hoặc dân tộc trong quá trình scoring."}},use_cases:{badge:"USE CASES",title:"AD Passport Use Cases",description:"Hỗ trợ nhiều kịch bản nhập cư và xác minh khác nhau",recruitment:{title:"Tuyển dụng quốc tế",description:"Đánh giá ứng viên dá»±a trên năng lá»±c, không dá»±a vào nÆ¡i sinh - kèm Fairness Report, xác minh bằng cấp, kinh nghiệm và mức độ ổn định chuyên môn."},study:{title:"Đánh giá du học",description:"Phân tích năng lá»±c tài chính và học vấn - kèm XAI giải thích minh bạch cho từng ứng viên, xác minh hồ sÆ¡ học tập và thành tích."},investment:{title:"Nhập cư đầu tư",description:"Phân tích tài sản, nguồn vốn và kế hoạch kinh doanh - Audit Trail đầy đủ, xác minh nguồn gốc tài sản, lịch sá»­ đầu tư và đánh giá rá»§i ro rá»­a tiền (AML)."},family:{title:"Đoàn tụ gia đình",description:"Đánh giá năng lá»±c bảo lãnh dá»±a trên tiêu chí minh bạch - xác minh quan hệ gia đình và năng lá»±c tài chính cá»§a người bảo lãnh, không phân biệt xuất xứ."}},data_integration:{badge:"DATA INTEGRATION",title:"30+ International Data Sources",description:"Tích hợp dữ liệu toàn cầu cho đánh giá nhập cư toàn diện",international_banks:{title:"Ngân hàng quốc tế",description:"SWIFT, cross-border banking records, PCB"},government_agencies:{title:"CÆ¡ quan chính phá»§",description:"Xác minh visa, criminal clearance (với consent)"},social_networks:{title:"Mạng lưới nghề nghiệp",description:"LinkedIn, professional references - không score theo race/religion"},employment_platforms:{title:"Nền tảng tuyển dụng",description:"Lịch sá»­ việc làm và skill verification (Indeed, LinkedIn)"},education_systems:{title:"Hệ thống giáo dục",description:"Degree verification, credential check (WES, NACES)"},global_databases:{title:"CÆ¡ sở dữ liệu toàn cầu",description:"Compliance DB - sanctions list, PEP screening, AML checks, GDPR compliant"},credit_bureaus:{title:"Tổ chức tín dụng",description:"Credit Bureaus quốc tế - TransUnion, Experian, PCB, CIC"},property_records:{title:"Hồ sÆ¡ bất động sản",description:"Property records, rental history, asset verification"}},anti_discrimination:{title:"Anti-Discrimination Commitment",lead:"AD Passport cam kết KHÔNG SỬ DỤNG các yếu tố sau trong scoring:",excluded1:"Quốc tịch / NÆ¡i sinh",excluded2:"Chá»§ng tộc / Dân tộc",excluded3:"Tôn giáo / Tín ngưỡng",excluded4:"Giới tính",excluded5:"Tình trạng hôn nhân",positive:"CHỈ ĐÁNH GIÁ Dá»°A TRÊN: Năng lá»±c tài chính · Kinh nghiệm nghề nghiệp · Trình độ học vấn · Lịch sá»­ uy tín",fairness:"Fairness Agent kiểm tra Demographic Parity theo quốc tịch cho TỪNG đánh giá - gap < 2%",rights:"Quyền cá»§a bạn: Được giải thích (XAI) · Được xóa dữ liệu (GDPR Art. 17)"},user_rights:{title:"User Rights",right1:"Quyền được biết - Mọi đánh giá kèm XAI giải thích chi tiết bằng ngôn ngữ đơn giản",right2:"Quyền khiếu nại - Yêu cầu human reviewer xem xét lại kết quả bất cứ lúc nào",right3:"Quyền xóa - Yêu cầu xóa toàn bộ dữ liệu cÃ
8437¡ nhân (GDPR Article 17)",right4:"Quyền truy cập - Tải về toàn bộ dữ liệu cá»§a bạn (GDPR Article 15)",right5:"Consent - Dữ liệu chỉ được thu thập khi có sá»± đồng ý rõ ràng. Thu hồi bất kỳ lúc nào."},compliance:{title:"International Legal Compliance",badge1:{name:"FISC",desc:"Trung tâm hệ thống thông tin tài chính"},badge2:{name:"APPI",desc:"Luật bảo vệ thông tin cá nhân (Nhật Bản)"},badge3:{name:"GDPR",desc:"Bảo vệ dữ liệu cá nhân EU (cross-border)"},badge4:{name:"ISO 27001",desc:"Quản lý bảo mật thông tin"}}},iO=JSON.parse('{"hero":{"badge":"BNPL INNOVATION","title":"Atobar.ai","description":"Giải pháp credit scoring thế hệ mới - xây dá»±ng trên Alternative Data. Không còn phụ thuộc vào CIC/JICC hay lịch sá»­ tín dụng truyền thống. Atobar.ai dùng Ensemble ML để phân tích 250+ features từ 15+ nguồn dữ liệu thay thế, trả về credit insight chính xác cao, công bằng và giải thích được qua Explainable AI.","button1":"Explore Features","button2":"Contact Sales"},"stats":{"title":"Key Metrics","description":"Xá»­ lý 1 triệu giao dịch mỗi ngày, mở ra cÆ¡ hội tài chính công bằng cho hàng triệu người thuộc nhóm thin-file tại Nhật Bản","approval_rate":"Tá»· lệ phê duyệt","bad_debt_rate":"Tá»· lệ nợ xấu","average_score":"Điểm TFA trung bình","api_response":"Thời gian phản hồi API","data_features":"250+ features được phân tích"},"journey":{"title":"User Journey","description":"3 bước để bắt đầu sá»­ dụng Atobar.ai"},"step1":{"title":"Đăng ký","description":"Tạo tài khoản trong 2 phút, xác minh danh tính qua eKYC. Nhanh, bảo mật tuyệt đối, minh bạch hoàn toàn."},"step2":{"title":"Xây dá»±ng hồ sÆ¡ tín dụng","description":"Kết nối 15+ nguồn Alternative Data: hóa đơn tiện ích, ví điện tá»­, thanh toán di động, mạng xã hội. Hệ thống tá»± động extract features, tính credit score và xây dá»±ng credit profile toàn diện."},"step3":{"title":"Mua sắm với BNPL","description":"Kết nối đến các dịch vụ BNPL đối tác, phê duyệt dá»±a trên credit profile đã xây dá»±ng, kèm giải thích XAI rõ ràng cho từng quyết định."},"how_it_works":{"badge":"HOW IT WORKS","title":"Simple, powerful & fairness","description":"Nền tảng quản lý BNPL tập trung - phát hiện rá»§i ro sớm, tối ưu trải nghiệm người dùng. Dấu vết tài chính thay thế cá»§a bạn được 5 AI Agents phân tích độc lập và kiểm tra công bằng: Data Analysis → Scoring → Fairness Check → XAI Explanation → Compliance Audit.","detailed":"Atobar.ai thay đổi cách chấm điểm tín dụng bằng cách khai thác Alternative Data - đánh giá năng lá»±c tín dụng vượt xa phạm vi các tổ chức tín dụng truyền thống. Nền tảng AI cung cấp quyết định tức thì, vẫn đảm bảo độ chính xác ở mức cao nhất.","button":"Tìm hiểu thêm"},"core_values":{"badge":"CORE VALUE","title":"What Atobar.ai Delivers"},"individual":{"title":"Người dùng cá nhân","subtitle":"Toàn quyền kiểm soát và theo dõi credit profile. Được đánh giá CÔNG BẰNG - không phân biệt bạn là ai.","track_credit":{"title":"Theo dõi & quản lý điểm tín dụng","description":"Dashboard cá nhân cập nhật score theo thời gian thá»±c"},"ai_advisor":{"title":"Tư vấn cải thiện tín dụng bằng AI","description":"Đề xuất cá nhân hóa dá»±a trên spending pattern để cải thiện score"},"bnpl_hub":{"title":"BNPL Hub","description":"Quản lý tập trung tất cả dịch vụ BNPL trong một nÆ¡i"},"smart_shopping":{"title":"Mua sắm thông minh","description":"So sánh lãi suất BNPL và tính toán khả năng chi trả"}},"providers":{"title":"Nhà cung cấp BNPL","subtitle":"Bộ công cụ risk assessment và portfolio optimization cho nhà cung cấp","risk_assessment":{"title":"Đánh giá rá»§i ro chính xác","description":"Mô hình AI chính xác cao, scoring được cả khách hàng thin-file"},"early_detection":{"title":"Phát hiện rá»§i ro sớm","description":"Dá»± đoán xác suất phát sinh nợ xấu trong 90 ngày"}
8437,"portfolio":{"title":"Tối ưu hóa danh mục","description":"Customer segmentation thông minh kết hợp analytics nâng cao"},"integration":{"title":"Tích hợp nhanh","description":"RESTful API với tài liệu đầy đủ, tích hợp trong < 1 ngày"}},"alternative_data":{"badge":"ALTERNATIVE DATA","title":"Diverse Alternative Data Sources","description":"Atobar.ai phân tích 250+ features từ 15+ nguồn dữ liệu thay thế để đưa ra đánh giá tín dụng toàn diện"},"data_sources":{"mobile_payment":{"title":"Thanh toán di động","description":"PayPay, Line Pay, Merpay, Rakuten Pay"},"ewallet":{"title":"Ví điện tử","description":"Suica, Pasmo, WAON, nanaco"},"ecommerce":{"title":"Thương mại điện tử","description":"Amazon, Rakuten, Yahoo!, Mercari"},"utility_bills":{"title":"Hóa đơn tiện ích","description":"Điện, nước, gas, internet, điện thoại"},"banking":{"title":"Ngân hàng","description":"Lịch sử giao dịch, saving patterns"},"telco":{"title":"Dữ liệu viễn thông","description":"Lịch sử thanh toán, usage patterns từ các nhà mạng"},"rent":{"title":"Tiền thuê & đăng ký dịch vụ","description":"Tiền thuê hàng tháng, Netflix, YouTube, phòng gym"},"subscription":{"title":"Các hoạt động tương tác trên mạng xã hội","description":"Facebook, Line, Instagram, X (Twitter)"}},"score_classification":{"title":"Score Classification","description":"Phân loại điểm tín dụng dựa trên Alternative Data - hiểu rõ khoảng điểm và lợi ích tương ứng"},"score":{"excellent":{"title":"Excellent","range":"750-850","description":"Lãi suất tốt nhất cho mọi loại khoản vay. Credit limit cao nhất. Điều kiện ưu đãi."},"good":{"title":"Good","range":"700-749","description":"Lãi suất cạnh tranh. Nhiều lựa chọn sản phẩm. Phê duyệt nhanh."},"fair":{"title":"Fair","range":"650-699","description":"Lãi suất tiêu chuẩn. Credit limit trung bình. Điều kiện thông thường."},"below_fair":{"title":"Below Fair","range":"550-649","description":"Lựa chọn hạn chế. Lãi suất cao hơn. Cần bổ sung thêm điều kiện."}},"advantages":{"badge":"WHY ATOBAR.AI","title":"Competitive Advantages","first_mover":{"title":"Chi phí tối ưu","description":"API pay-per-use, không phí setup. Giải pháp Alternative Data scoring đầu tiên tại Nhật Bản."},"plug_play":{"title":"Plug & Play","description":"Không gián đoạn hệ thống BNPL hiện tại. Tích hợp REST API trong < 1 ngày."},"explainable_ai":{"title":"Explainable AI","description":"Mọi score đi kèm giải thích SHAP/LIME. Người dùng biết chính xác TẠI SAO được score như vậy - xây dựng niềm tin thực sự."},"b2b_platform":{"title":"Nền tảng B2C","description":"API cho đối tác B2B + App cho người dùng cuối. Tạo giá trị song song cho ngân hàng, tổ chức tài chính và end-user."},"fairness_first":{"title":"Fairness-First","description":"Kiểm tra bias cho mọi quyết định. Demographic parity audit theo từng batch - chứng minh không discriminate."}},"features":{"badge":"COMPLETE FEATURES","title":"Detailed Features & Benefits"},"advanced_tech":{"badge":"SCORING SYSTEM","title":"Alternative Data Scoring System","description":"Hệ thống scoring dựa trên AI phân tích nhiều nguồn dữ liệu với trọng số khác nhau, đưa ra đánh giá tín dụng chính xác nhất."},"tech_stack":{"badge":"TECHNOLOGY","title":"Technical Approach","description":"Kiến trúc được thiết kế cho accuracy, speed và security","data_sources":{"title":"250+ features từ 15+ nguồn Alternative Data","description":"Hóa đơn tiện ích, ví điện tử, thanh toán di động, thương mại điện tử, social commerce, giao dịch ngân hàng, dữ liệu viễn thông, tiền thuê và đăng ký dịch vụ."},"ai_ml":{"title":"Ensemble AI Engine - XGBoost + Deep Neural Network, AUC 0.8","description":"Machine Learning, Deep Learning, NLP và Graph Neural Networks - phân tích quan hệ phức tạp g
8437iữa các features và dự đoán hành vi tín dụng."},"real_time":{"title":"Xử lý thời gian thực - <200ms P99, 10.000 req/phút","description":"Phản hồi dưới 200ms với SLA uptime 99.9%. Hạ tầng auto-scaling, sẵn sàng cho peak load."},"privacy":{"title":"Bảo mật Enterprise - AES-256-GCM, tuân thủ FISC · GDPR · PCI DSS","description":"Zero-knowledge proof, Homomorphic Encryption. Tuân thủ đầy đủ GDPR/CCPA."}},"roadmap":{"title":"Development Roadmap","phase1":{"year":"2025","title":"Giai đoạn 1: BNPL Hub","description":"Nền tảng App/Web quản lý BNPL tập trung. Smart dashboard với hướng dẫn XAI cho end-user."},"phase2":{"year":"2026","title":"Giai đoạn 2: Checkout Layer","description":"Tích hợp vào các nền tảng thương mại điện tử. Real-time scoring API kèm fraud detection tại điểm thanh toán."},"phase3":{"year":"2027+","title":"Giai đoạn 3: Credit Platform","description":"B2B API platform cho phân khúc thin-file. Hệ sinh thái dữ liệu do người dùng kiểm soát (data portability)."}},"detailed_features":{"individual_users":{"title":"Với người dùng cá nhân"},"track_manage_credit":{"title":"Theo dõi & quản lý điểm tín dụng","feature1":"Dashboard cá nhân với score cập nhật real-time","feature2":"Lịch sử thay đổi score chi tiết theo thời gian","feature3":"So sánh score với mức trung bình thị trường","feature4":"Alert tự động khi score giảm đột ngột"},"ai_advisor":{"title":"Tư vấn cải thiện tín dụng bằng AI","feature1":"Đề xuất cá nhân hóa dựa trên spending pattern","feature2":"Kế hoạch cải thiện credit theo tháng","feature3":"Nội dung hướng dẫn tài chính thực tế","feature4":"Tracking tiến độ và phần thưởng theo cột mốc"},"bnpl_hub":{"title":"BNPL Hub","feature1":"Xem tập trung mọi tài khoản BNPL","feature2":"Nhắc nhở thanh toán và lên lịch tự động","feature3":"Phân tích chi tiêu và insight hành vi","feature4":"Gợi ý tối ưu credit limit"},"smart_shopping":{"title":"Mua sắm thông minh","feature1":"So sánh lãi suất BNPL giữa các nền tảng","feature2":"Công cụ tính khả năng chi trả trước khi mua","feature3":"Gợi ý sản phẩm phù hợp ngân sách","feature4":"Thông báo khi giá giảm"},"providers":{"title":"Với nhà cung cấp BNPL"},"risk_assessment":{"title":"Đánh giá rủi ro chính xác","feature1":"Mô hình AI với prediction accuracy cao","feature2":"Credit scoring cho khách hàng thin-file","feature3":"Đánh giá khả năng hoàn trả real-time","feature4":"Phân tích 250+ features từ 15+ nguồn Alternative Data"},"early_detection":{"title":"Phát hiện rủi ro sớm","feature1":"Cảnh báo sớm hành vi loan stacking","feature2":"Dự đoán xác suất nợ xấu trong 90 ngày","feature3":"Fraud detection bằng AI/ML","feature4":"Giám sát 24/7 với alert tự động"},"portfolio_optimization":{"title":"Tối ưu hóa danh mục","feature1":"Customer segmentation thông minh","feature2":"Gợi ý limit và lãi suất tối ưu cho từng phân khúc","feature3":"A/B testing cho credit policy","feature4":"Analytics dashboard chi tiết"},"quick_integration":{"title":"Tích hợp nhanh","feature1":"RESTful API với tài liệu đầy đủ","feature2":"SDK cho các nền tảng phổ biến","feature3":"Webhook thông báo real-time","feature4":"Giải pháp white-label sẵn sàng triển khai"}},"scoring_system":{"mobile_payment":{"title":"Thanh toán di động - 35%","description":"Dữ liệu real-time, accuracy 93.5%"},"ewallet":{"title":"Ví điện tử - 25%","description":"Đồng bộ hàng ngày, reliability 90.2%"},"ecommerce":{"title":"Thương mại điện tử - 20%","description":"Phân tích hành vi mua sắm, precision 87.8%"},"utility_bills":{"title":"Hóa đơn tiện ích - 15%","description":"Theo dõi tính nhất quán thanh toán, accuracy 84.3%"},"banking":{"title":"Ngân hàng - 5%","description":"Phân tích transaction patterns, reliability 94.1%"}}}
8437'),rO={hero:{badge:"NỀN TẢNG ĐA TÁC TỬ AI",title:"AppOS",description:"AppOS là nền tảng đa tác tử (Multi-Agent) giúp chuyển đổi ý tưởng kinh doanh thành ứng dụng thực tế có thể triển khai ngay lập tức."},flow:{idea_label:"Ý tưởng",idea_example:'"Hãy tạo một ứng dụng quản lý công việc cho nhóm"',engine:"Đa tác tử AI",app_label:"Ứng dụng thực tế",app_features:"UI hoàn chỉnh · Cơ sở dữ liệu · Hành động · Khởi chạy tức thì · iOS & Android"},principles:{badge:"NGUYÊN TẮC CỐT LÕI",title:"Triết lý thiết kế của AppOS",subtitle:`Ba nguyên tắc nền tảng giúp AppOS biến mọi ý tưởng thành ứng dụng thực tế một cách nhanh chóng,
8438ổn định và có kiểm soát.`,image:"/AppOS/AppOS.png",ai_first:{title:"AI-First Approach",description:"Thay vì bắt đầu bằng thao tác kéo-thả thủ công như truyền thống, AppOS khởi đầu từ Intent (ý định) của người dùng. Hệ thống tự động phân tích Prompt hoặc thiết kế Figma, sắp xếp yêu cầu và sinh ra cấu trúc ứng dụng."},metadata_driven:{title:"Metadata-Driven",description:"Ý tưởng không được chuyển thành mã nguồn rời rạc, mà được chuyển đổi sang Metadata có cấu trúc. Nhờ đó, ứng dụng đạt được cấu trúc ổn định, runtime được chuẩn hóa và khả năng bảo trì cao."},human_in_loop:{title:"Human-in-the-Loop",description:"AI đảm bảo tốc độ, con người giữ quyền kiểm soát cuối cùng. Nền tảng được thiết kế để AI sinh nhanh, con người xác nhận và điều chỉnh. Người dùng có thể tinh chỉnh ứng dụng thông qua Chat hoặc Canvas."}},steps:{badge:"QUY TRÌNH",title:"6 bước tạo ứng dụng",subtitle:"Từ ý tưởng đến phát hành trên Store - chỉ với 6 bước đơn giản.",step1:{title:"Nhập ý tưởng",description:"Không cần kỹ năng lập trình. Chỉ cần mô tả ứng dụng bạn muốn bằng ngôn ngữ tự nhiên."},step2:{title:"AI phân tích",description:"Hệ thống đa tác tử tự động làm rõ yêu cầu và sinh ra bản đặc tả chi tiết."},step3:{title:"Người dùng phê duyệt",description:"Human-in-the-loop: xác nhận và phê duyệt kế hoạch trước khi bắt đầu sinh ứng dụng."},step4:{title:"Bắt đầu sinh ứng dụng",description:"AI tự động sinh UI, cơ sở dữ liệu, hành động (actions) và ràng buộc dữ liệu (data binding)."},step5:{title:"Xem trước & xác nhận",description:"Xem trực quan ứng dụng trên Canvas, có thể điều chỉnh trước khi hoàn thiện."},step6:{title:"Triển khai lên Store",description:"Phát hành ứng dụng lên App Store & Google Play chỉ với vài thiết lập đơn giản."}}},uO={hero:{badge:"AI GUARDIAN CHO NHÂN TÀI",title:"CVAgent",tagline:'"Get your Dream Job while staying invisible."',description:"CVAgent là nền tảng AI giúp bạn nhận được Dream Offer và Sign-on Bonus tương đương 10~15% thu nhập hàng năm - hoàn toàn không tốn công sức (Zero Effort), ẩn danh tuyệt đối (100% Anonymity)."},how:{badge:"CÁCH HOẠT ĐỘNG",title:"Bắt đầu chỉ trong vài phút",step1:{title:"Thiết lập đơn giản",description:"Tạo hồ sơ chỉ mất 5~10 phút."},step2:{title:"Đặt trạng thái và chờ",description:'Chọn "Active" (Tích cực), "Thinking" (Đang cân nhắc) hoặc "Idle" (Chờ đợi) - rồi chỉ việc chờ.'},step3:{title:"AI Agent lo tất cả",description:"AI Agent chuyên dụng của bạn sẽ xử lý mọi thứ - từ phản hồi offer đến đàm phán - thay bạn."}},values:{badge:"NĂNG LỰC CỐT LÕI",title:"4 năng lực cốt lõi",anonymity:{title:"100% Ẩn danh",headline:'Bạn hoàn toàn vô hình trên thị trường. Cho đến khi "Dream Offer" lý tưởng được đề xuất, không ai biết bạn đang cân nhắc chuyển việc.',description:"Danh tính của bạn được bảo vệ tuyệt đối trong suốt quá trình."},ai_agent:{title:"AI Agent chuyên dụng",headline:"Không cần nói chuyện với recruiter hay phản hồi tin nhắn phiền phức. AI Agent cá nhân hóa sẽ xử lý toàn bộ giao tiếp và tự động lọc bỏ các offer không hấp dẫn.",description:"Mọi tương tác đều được AI đại diện thay bạn."}
8438,advisor:{title:'Cố vấn "Ở hay Đi"',headline:'AI phân tích và đánh giá tất cả offer, so sánh với vị trí hiện tại của bạn. Nếu chưa đủ tốt, chúng tôi sẽ thẳng thắn khuyên: "Bạn nên ở lại công ty hiện tại."',description:"Ưu tiên hàng đầu không phải hoa hồng, mà là sự nghiệp của bạn."},bonus:{title:"Sign-on Bonus",headline:"Khi nhận việc, bạn nhận được khoản tiền thưởng tương đương 10~15% thu nhập hàng năm.",description:"Phí recruiter (35~40%) được hoàn trả trực tiếp cho bạn."}},mission:{badge:"SỨ MỆNH",title:"Cách mạng hóa nền kinh tế nhân tài",subtitle:"Chúng tôi tin rằng mô hình tuyển dụng truyền thống không còn phù hợp trong thời đại AI. Sứ mệnh của CVAgent là:",pillar1:{title:"Giải phóng chuyên gia",description:"Với sức mạnh AI, nhân tài thực sự có thể tiếp cận cơ hội tuyệt vời mà không bị làm phiền bởi sự ồn ào và rắc rối."},pillar2:{title:"Phần thưởng xứng đáng",description:'Triết lý rất đơn giản: "Người tạo ra giá trị chính là bạn. Vì vậy, người nhận phần thưởng cũng phải là bạn."'}},why:{badge:"TẠI SAO CVAGENT",title:"Tại sao chọn CVAgent?",subt
8438itle:'"Trong thời đại AI, mô hình cá»§a chúng tôi tạo ra <em>Moat</em> (rào cản cạnh tranh) mà đối thá»§ truyền thống không thể vượt qua."',moat1:{badge:"Agencies vs CVAgent",title:"Bất đối xứng mô hình kinh doanh",description:"Các công ty tuyển dụng truyền thống có chi phí vận hành cao, không thể hoàn trả 15% phí cho nhân tài. CVAgent với mô hình tinh gọn và AI-driven có thể hoàn trả phí trá»±c tiếp cho ứng viên."},moat2:{badge:"LinkedIn vs CVAgent",title:"Bất đối xứng kiến trúc",description:'LinkedIn quá công khai và nhiều nhiễu. Chuyên gia muốn "ẩn mình" chứ không phải "được tìm thấy". Mạng xã hội không thể hoạt động như một Private Proxy (đại diện ẩn danh) mà không phá há»§y mô hình kinh doanh cá»§a chính mình.'},moat3:{badge:"AI Knowhow",title:"DNA Kỹ thuật",description:"Chúng tôi không phải công ty nhân sá»±. Chúng tôi là công ty công nghệ với hÆ¡n 300 kỹ sư. Chúng tôi xây dá»±ng AI Agent hiểu bạn và giành được sá»± tin tưởng. Giao nhiệm vụ cho AI để bạn hoàn toàn yên tâm (Peace of Mind)."}}},lO={hero:{badge:"RENTAL SOLUTION",title:"Live Now, Pay Later (LNPL)",description:"LNPL giúp giảm 70% chi phí thuê nhà ban đầu tại Nhật - chia nhỏ tiền đặt cọc (Shikikin), tiền lễ (Reikin) thành trả góp linh hoạt. Đánh giá bằng TFA Scoring với 5 AI Agents kiểm tra chéo - công bằng cho cả người Nhật và người nước ngoài.",cta_primary:"Nộp hồ sÆ¡ ngay",cta_secondary:"Tìm hiểu thêm"},stats:{upfront_cost_reduction:"Giảm chi phí ban đầu - Ví dụ: Â¥500,000 → chỉ Â¥150,000",approval_time:"Phê duyệt bằng TFA Scoring (5 AI Agents kiểm tra chéo)",approval_rate:"Tá»· lệ phê duyệt - công bằng cho người Nhật và người nước ngoài",default_risk_reduction:"Giảm rá»§i ro vỡ nợ* (*so với phương pháp truyền thống, dữ liệu nội bộ)",ai_features:"250+ features được AI phân tích"},core_value:{badge:"CORE VALUE",title:"Core Values of LNPL",description:"Giải pháp tài chính thuê nhà toàn diện - giảm chi phí ban đầu, mở rộng khả năng tiếp cận thị trường.",tenants:{title:"Dành cho người thuê nhà",description:"Giảm 70% chi phí ban đầu. Trả góp linh hoạt. XAI giải thích mọi quyết định - bạn luôn biết TẠI SAO. Đặc biệt hỗ trợ người nước ngoài tại Nhật - đánh giá công bằng, không phân biệt quốc tịch."},providers:{title:"Dành cho chá»§ nhà / nhà cung cấp LNPL",description:"Giảm 30% rá»§i ro vá
8438»¡ nợ. TFA Scoring đánh giá 250+ features. Audit trail cho mọi khoản vay - chứng minh compliance khi cần."},trust:{title:"Tin cậy & tuân thá»§",description:"XAI Explanation - mọi quyết định kèm top 5 yếu tố ảnh hưởng + lộ trình cải thiện nếu chưa đạt. Tuân thá»§ GDPR · CCPA · FISC · luật cho vay Nhật Bản."}},cost_components:{badge:"COST BREAKDOWN",title:"Initial Cost Components",description:"Phân bổ điển hình chi phí thuê nhà ban đầu tại Nhật Bản",example:"Ví dụ: Thuê Â¥80,000/tháng → Chi phí ban đầu Â¥400,000 → Với LNPL chỉ Â¥120,000 + Â¥25,000/tháng × 12 kỳ",deposit:{title:"Tiền đặt cọc",percentage:"Tá»· trọng điển hình",amount:"Shikikin - chiếm ~60%, tương đương 1-2 tháng tiền thuê. LNPL chia thành 6-12 kỳ trả góp."},key_money:{title:"Tiền lễ",amount:"Reikin - chiếm ~25%, tương đương 0.5-1 tháng. Không hoàn lại. LNPL giúp chia nhỏ khoản này."},advance_rent:{title:"Tiền thuê trả trước",amount:"Mae-yachin - chiếm ~15%, tương đương 0.5-1 tháng. Tiền thuê tháng đầu, trả góp cùng gói LNPL."}},process:{badge:"PROCESS",title:"How LNPL Works",description:"Quy trình 4 bước - từ nộp hồ sÆ¡ đến nhận nhà",step1:{title:"Nộp hồ sÆ¡",description:"Cung cấp thông tin cá nhân và tài chính (consent rõ ràng, quyền thu hồi bất cứ lúc nào)"},step2:{title:"5 AI Agents đánh giá",description:"Data Analysis → Scoring → Fairness Check → XAI Explanation → Compliance Audit. Kết quả < 30 giây."},step3:{title:"Phê duyệt & nhận nhà",description:"Phê duyệt kèm giải thích XAI - biết chính xác vì sao được duyệt. Nếu chưa đạt: lộ trình cải thiện cụ thể."},step4:{title:"Thanh toán trả góp",description:"Trả góp linh hoạt 6/12/24 kỳ. Phí và lãi suất minh bạch. Dashboard tracking real-time. Early warning tá»± động khi có rá»§i ro."}},coverage:{badge:"COVERAGE OPTIONS",title:"Financing Packages",description:"Kế hoạch tài chính linh hoạt, phù hợp với nhu cầu thuê nhà khác nhau",cta:"Đăng ký gói này",recommended:"Recommended",basic:{title:"CÆ¡ bản - Tiền đặt cọc",description:"Từ Â¥15,000/tháng. 6 kỳ trả góp. Dành cho thuê nhà tiêu chuẩn - chỉ chia nhỏ tiền đặt cọc."},standard:{title:"Tiêu chuẩn - Đặt cọc + Tiền lễ",description:"Từ Â¥25,000/tháng. 12 kỳ. Gói được chọn nhiều nhất - cover cả đặt cọc và tiền lễ."},premium:{title:"Cao cấp - Toàn bộ chi phí",description:"Từ Â¥35,000/tháng. 24 kỳ. Cover đặt cọc + tiền lễ + tiền thuê trả trước. Giảm tối đa 70% chi phí ban đầu."}},fairness:{heading:"Fair for Everyone",lead_text:"Thị trường cho thuê tại Nhật có thể khó khăn với người nước ngoài. LNPL cam kết đánh giá dá»±a trên NĂNG Lá»°C TÀI CHÍNH, không phải QUỐC TỊCH.",stat1_title:"Demographic Parity",stat1:"Fairness Agent: gap giữa các nhóm quốc tịch < 2%",stat2_title:"Equalized Odds",stat2:"Tá»· lệ từ chối sai đồng đều giữa người Nhật và người nước ngoài",stat3_title:"XAI Transparency",stat3:"100% đánh giá kèm giải thích XAI - bạn biết tại sao"},faq:{heading:"FAQ",q1_q:"Tiền lễ (Reikin) là gì?",q1_a:"Khoản tiền trả cho chá»§ nhà khi ký hợp đồng, không hoàn lại. Thường bằng 0.5-1 tháng tiền thuê.",q2_q:"Người nước ngoài có đủ điều kiện không?",q2_a:"Có. LNPL đánh giá dá»±a trên năng lá»±c tài chính - không phân biệt quốc tịch. Fairness Agent đảm bảo điều này.",q3_q:"Bị từ chối thì sao?",q3_a:"Mọi quyết định đều kèm XAI explanation: lý do cụ thể + lộ trình cải thiện để đủ điều kiện lần sau.",q4_q:"Lãi suất bao nhiêu?",q4_a:"Từ X%/năm tùy gói. Công khai minh bạch, không phí ẩn.",q5_q:"Dữ liệu cá nhân có an toàn không?",q5_a:"Mã hóa AES-256. Tuân thá»§ GDPR · FISC. Quyền xóa dữ liệu bất cứ lúc nào (right to erasure)."},compliance:{heading:"Legal Compliance",badge1:"FISC - Trung tâm hệ thống thông tin tài chính",badge2:"Luật kinh doanh cho vay (Money Lending Business Act)",badge3:"Luật hợp đồng tiêu dùng (Consumer Contract Act)",badge4:"GDPR - Bảo vệ dữ liệu cÃ
8438¡ nhân xuyên biên giới",text:"LNPL hoạt động theo giấy phép phù hợp quy định tài chính Nhật Bản"}},cO={header:"Chính sách bảo vệ thông tin cá nhân",title:"Về thông tin cá nhân mà công ty chúng tôi xá»­ lý",section1:"Chính sách bảo vệ thông tin cá nhân",section1Content:{title1:"1. Thu thập, sá»­ dụng và cung cấp thông tin cá nhân",content1:`Công ty chúng tôi xác định rõ mục đích sá»­ dụng thông tin cá nhân trong phạm vi hoạt động kinh doanh và thá»±c hiện việc thu thập, sá»­ dụng và cung cấp thông tin cá nhân một cách công bằng, phù hợp trong giới hạn cần thiết để đạt được các mục đích đó. 
8439Ngoài ra, để ngăn ngừa việc sá»­ dụng thông tin cá nhân ngoài mục đích đã xác định, chúng tôi áp dụng các biện pháp thích hợp.`,title2:"2. Tuân thá»§ pháp luật và các chuẩn má»±c",content2:"Công ty chúng tôi tuân thá»§ các quy định pháp luật liên quan đến thông tin cá nhân, các hướng dẫn do Nhà nước ban hành, cÅ©ng như các chuẩn má»±c và trật tá»± xã hội khác, đồng thời nỗ lá»±c bảo vệ thông tin cá nhân một cách thích hợp.",title3:"3. Quản lý thông tin cá nhân một cách phù hợp",content3:"Công ty chúng tôi nhận thức đầy đủ các rá»§i ro như truy cập trái phép, mất mát, há»§y hoại, sá»­a đổi hoặc rò rỉ thông tin cá nhân mà chúng tôi xá»­ lý, và thá»±c hiện các biện pháp quản lý an toàn hợp lý. Trong trường hợp xảy ra sá»± cố, chúng tôi sẽ nhanh chóng triển khai các biện pháp khắc phục phù hợp.",title4:"4. Xá»­ lý các yêu cầu và thắc mắc",content4:"Đối với thông tin cá nhân mà công ty chúng tôi xá»­ lý, khi có yêu cầu từ chính chá»§ thể dữ liệu về việc công bố, chỉnh sá»­a, ngừng sá»­ dụng hoặc khiếu nại, tư vấn, chúng tôi sẽ xá»­ lý một cách trung thá»±c và phù hợp."},smallInformation:{inf1:"React Plus Joint Stock Company",inf2:"CEO Luong Xuan Hai",inf3:"Số điện thoại:(+84)24 6299 7777 (Giờ tiếp nhận 9:00〜17:00/Trừ Thứ Bảy, Chá»§ Nhật và ngày lễ)",inf4:"Email:[email protected]",inf5:"Địa chỉ:Tầng 7 Tòa nhà Golden Field, 24 Nguyễn CÆ¡ Thạch, Hà Nội, Việt Nam"},section2:"Về thông tin cá nhân mà công ty chúng tôi xá»­ lý",section2Subtitle:`Công ty chúng tôi thá»±c hiện việc bảo vệ thông tin cá nhân một cách phù hợp dá»±a trên “Chính sách bảo vệ thông tin cá nhân”.
8440 Đối với thông tin cá nhân mà công ty thu thập hoặc lưu giữ nhằm phục vụ hoạt động kinh doanh, chúng tôi xin thông báo như sau:`,section2Content:{title1:"1. Tên đơn vị xá»­ lý thông tin cá nhân",table1:{title1:"Tên doanh nghiệp",row1:"React Plus Joint Stock Company",title2:"CEO",row2:"Luong Xuan Hai",title3:"Địa chỉ",row3:"Tầng 7 Tòa nhà Golden Field, 24 Nguyễn CÆ¡ Thạch, Hà Nội, Việt Nam"},title2:"2. Mục đích sá»­ dụng thông tin cá nhân",title2Subtitle:"【Dữ liệu cá nhân do công ty lưu giữ】",table2:{header1:"Loại thông tin cá nhân",header2:"Mục đích sá»­ dụng",title1:"Thông tin cá»§a khách hàng sá»­ dụng dịch vụ cá»§a công ty",row1:"Dùng để giới thiệu và thá»±c hiện hoạt động kinh doanh liên quan đến các sản phẩm, dịch vụ cá»§a công ty và các công ty liên quan; thông báo hội thảo, triển lãm; gá»­i yêu cầu khảo sát; cung cấp thông tin liên quan đến hoạt động kinh doanh; cá nhân hóa website và dịch vụ email; gá»­i email bản tin dá»±a trên việc trao đổi danh thiếp.",title2:"Thông tin đối tác giao dịch",row2:"Phục vụ cho công tác quản lý nghiệp vụ, liên lạc, lập hóa đơn và quản lý thanh toán.",title3:"Thông tin nhân viên",row3:"Sá»­ dụng cho mục đích quản lý nhân sá»± như nghiệp vụ, lao động, nhân sá»±, tiền lương và phúc lợi.",title4:"Thông tin ứng viên tuyển dụng ",row4:"Phục vụ cho công tác tuyển chọn và liên lạc tuyển dụng.",title5:"Thông tin người đã nghỉ việc",row5:"Phục vụ việc liên lạc và xá»­ lý các yêu cầu từ người đã nghỉ việc.",title6:"Thông tin người liên hệ",row6:"Dùng để trả lời các câu hỏi, yêu cầu.",title7:"Thông tin cá»
8440§a bản thân hoặc người đại diện",row7:"Dùng để xá»­ lý các yêu cầu công bố thông tin."},title3:"3. Về việc sá»­ dụng chung thông tin cá nhân",content3:"Trừ trường hợp dá»±a trên quy định pháp luật, thông tin cá nhân đã thu thập có thể được sá»­ dụng chung trong phạm vi sau:",list3:{title:"Các hạng mục thông tin cá nhân được sá»­ dụng chung",item1:"Họ tên, ngày sinh, địa chỉ, số điện thoại, email và các thông tin liên hệ",item2:"Thông tin nÆ¡i làm việc, thông tin gia đình, thông tin về tài sản và nợ phải trả",item3:"Nội dung giao dịch và thông tin cần thiết cho việc quản lý giao dịch"},card3:{title:"Phạm vi các bên cùng sá»­ dụng",subtitle:"Các công ty thuộc các bên liên quan React Plus, bao gồm:",card1:{row1:"React Plus Joint Stock Company",row2:"Địa chỉ:Tầng 7 Tòa nhà Golden Field, 24 Nguyễn CÆ¡ Thạch, Hà Nội, Việt Nam",row3:"Đại diện:Luong Xuan Hai",row4:"URL:https://reactplus.com/"},card2:{row1:"Mirai Plus Inc",row2:"Địa chỉ:CANAL GATE SHIBAURA Building, 12-38 Shibaura 4-chome, Minato-ku, Tokyo 108-0023",row3:"Đại diện:Tanaka Toru",row4:"URL:https://mirai-plus.co.jp/"}},list3_2:{title:"Mục đích sá»­ dụng chung",item1:"Đề xuất, giới thiệu, nghiên cứu và phát triển sản phẩm, dịch vụ",item2:"Đưa ra quyết định khi cung cấp dịch vụ",item3:"Quản lý kinh doanh và quản lý rá»§i ro nhằm đảm bảo vận hành phù hợp toàn bộ doanh nghiệp"},text3:{title:"Đơn vị chịu trách nhiệm quản lý thông tin cá nhân dùng chung",content1:"React Plus Joint Stock Company",content2:"CEO Luong Xuan Hai"},title4:"4. Bộ phận tiếp nhận liên hệ về thông tin cá nhân",text4:"Mọi khiếu nại, tư vấn hoặc thắc mắc liên quan đến việc xá»­ lý thông tin cá nhân, vui lòng liên hệ theo thông tin dưới đây.",card4:{row1:"【Liên hệ】",row2:"React Plus Joint Stock Company",row3:"Điện thoại:(+84)24 6299 7777(Giờ tiếp nhận 9:00〜17:00/Trừ Thứ Bảy, Chá»§ Nhật và ngày lễ)",row4:"Email:[email protected]"},title5:"5. Về thá»§ tục yêu cầu công bố thông tin",text5:`Công ty chúng tôi sẽ phản hồi nhanh chóng và phù hợp đối với các yêu cầu từ chính chá»§ hoặc người đại diện hợp pháp liên quan đến việc công bố, chỉnh sá»­a, xóa, ngừng sá»­ dụng dữ liệu cá nhân. 
8441Sau khi xác minh danh tính người yêu cầu, chúng tôi sẽ xử lý trong phạm vi và thời gian hợp lý.`,title6:"6. Về cookie",text6:`Công ty chúng tôi sử dụng cookie nhằm nâng cao chất lượng dịch vụ và phục vụ việc phân phối quảng cáo.Người dùng có thể lựa chọn cho phép hoặc từ chối cookie trong cài đặt trình duyệt. 
8442Trường hợp từ chối cookie, một số dịch vụ có thể không sử dụng được.`,title7:"7. Biện pháp đảm bảo an toàn thông tin cá nhân",text7:`Công ty chúng tôi triển khai các biện pháp quản lý an toàn thông tin cá nhân theo tiêu chuẩn JIS Q 15001, bao gồm các biện pháp về tổ chức, con người, vật lý và kỹ thuật. 
8443Để biết thêm chi tiết, vui lòng liên hệ bộ phận tiếp nhận nêu trên.`,card7:{row1:"React Plus Joint Stock Company",row2:"CEO Luong Xuan Hai",row3:"Điện thoại:(+84)24 6299 7777",row4:"Email:[email protected]"}}},dO={title:"Chúng tôi đã đổi logo mới!",description:`React Plus vừa công bố bộ nhận diện thương hiệu mới.
8444Cùng tìm hiểu ý nghÄ©a và câu chuyện đằng sau logo mới.`,button:"Xem thông báo đổi logo",articleLink:"/news/214"},pO={applyTitle:"Ứng tuyển vị trí {{jobTitle}}",defaultJob:"ứng viên tiềm năng",form:{back:"Quay lại",personalInfo:"Thông tin cá nhân",fullName:"Họ và tên *",fullNamePlaceholder:"Nhập họ và tên",email:"Email *",emailPlaceholder:"[email protected]",phone:"Số điện thoại *",phonePlaceholder:"0xxx xxx xxx",dob:"Ngày tháng năm sinh",day:"Ngày",month:"Tháng",year:"Năm",resume:"Hồ sÆ¡ / CV",uploadTitle:"Tải CV lên *",uploadHelper:"PDF, DOCX, JPG hoặc PNG (tối đa 10MB)",selectFile:"Chọn tệp",linksTitle:"Liên kết",portfolio:"Portfolio / Trang web cá nhân",portfolioPlaceholder:"https://",additionalInfo:"Thông tin bổ sung",additionalInfoPlaceholder:"Hãy cho chúng tôi biết bất kì điều gì bạn muốn chia sẻ thêm...",submitting:"Đang gá»­i...",submit:"Gá»­i hồ sÆ¡ ứng tuyển",cancel:"Há»§y",submitSuccessTitle:"Gá»­i hồ sÆ¡ thành công",submitSuccessMessage:"Dạ, cảm Æ¡n bạn đã quan tâm đến React Plus. Chúng tôi sẽ sớm liên hệ với bạn nhé!",backToRecruit:"Quay lại trang tuyển dụng",errors:{required:"Không được bỏ trống",emailInvalid:"Sai định dạng Email",emailTooLong:"Email không được vượt quá 100 ký tá»±",phoneInvalid:"Số điện thoại không đúng định dạng",phoneTooShort:"Số điện thoại phải có ít nhất 10 số",phoneTooLong:"Số điện thoại không được vượt quá 12 số",nameTooLong:"Họ tên không được vượt quá 100 ký tá»±",fileTooLarge:"Tệp không được vượt quá 10MB",linkInvalid:"Liên kết phải bắt đầu bằng http:// hoặc https://",linkTooLong:"Liên kết không được vượt quá 255 ký tá»±",contentTooLong:"Nội dung không được vượt quá 2000 ký tá»±",submitError:"Đã có lỗi xảy ra. Vui lòng thá»­ lại sau.",emailTooShort:"Email phải có ít nhất 5 ký tá»±",nameTooShort:"Họ tên phải có ít nhất 2 ký tá»±",linkTooShort:"Liên kết phải có ít nhất 5 ký tá»±",contentTooShort:"Nội dung phải có ít nhất 10 ký tá»±"}},hero:{title:"Vị trí tuyển dụng",subtitle:"Cùng React Plus kiến tạo tương lai số. Chúng tôi tìm kiếm những cá nhân xuất sắc để cùng đồng hành trong hành trình chinh phục những thách thức công nghệ mới.",applyButton:"Đăng ký ứng tuyển"},jobList:{title:"Các vị trí đang tìm kiếm",searchPlaceholder:"Tìm kiếm theo vị trí hoặc khu vá»±c...",error:"Không thể tải dữ liệu:",notFound:"Không tìm thấy vị trí phù hợp.",fullTime:"Full-time",partTime:"Part-time"},careerPathTitle:"Lộ trình phát triển",steps:{step1:"Được đào tạo và trải nghiệm thá»±c tế.",step2:"Vững nền tảng, ký hợp đồng chính thức.",step3:"Xá»­ lý hiệu quả yêu 
8444cầu khách hàng.",step4:"Đào tạo Fresher, xá»­ lý bài toán khó.",step5:"Điều phối dá»± án và quản lý nhóm.",step6:"Vận hành dá»± án lớn và xây dá»±ng văn hoá.",step7:"Định hướng chiến lược công nghệ."},process:{title:"Quy trình",step1:{title:"Gá»­i hồ sÆ¡",desc:"Gá»­i CV ứng tuyển trá»±c tiếp qua website hoặc email [email protected]"},step2:{title:"Phỏng vấn",desc:"Tham gia phỏng vấn đánh giá kỹ năng chuyên môn và văn hoá công ty."},step3:{title:"Gia nhập",desc:"Thoả thuận hợp đồng và bắt đầu hành trình cùng React Plus."}}},gO={back:"Quay lại",notFound:"Không tìm thấy việc làm",notFoundMessage:"Vui lòng quay lại trang tuyển dụng.",backToRecruit:"Quay lại trang tuyển dụng",noContent:"Chi tiết công việc sẽ hiển thị tại đây.",applyButton:"Ứng tuyển vị trí này",relatedJobs:"Công việc liên quan"},mO={cards:[{title:"AX - AI Transformation cho doanh nghiệp Nhật",description:"Nhật Bản đã đi qua giai đoạn DX. Bây giờ là lúc quá trình AX bắt đầu. React Plus giúp doanh nghiệp Nhật biến AI thành năng lá»±c vận hành thá»±c tế."},{title:"Vì sao doanh nghiệp Nhật gặp khó với AI?",description:"Biết AI quan trọng nhưng không biết bắt đầu từ đâu. Có ý tưởng nhưng không biến thành hệ thống chạy thật."},{title:"React Plus có thể làm gì?",description:"AI Solutions company chuyên giúp doanh nghiệp Nhật triển khai AX thông qua AI products, AI Agent, automation workflows."}],page:{eyebrows:{hero:"OUR STORY",background:"BACKGROUND",challenge:"THE CHALLENGE",remoteBrain:"REMOTE AI BRAIN",howWeWork:"HOW WE WORK"},back:"← Quay lại trang chá»§",heroTitle:"Our Story",heroQuote:`Nhật Bản đã đi qua giai đoạn DX. Bây giờ là lúc quá trình AX bắt đầu.
8445React Plus ở đây để giúp doanh nghiệp Nhật biến AI thành năng lực vận hành thực tế.`,section1:{title:"AX (AI Transformation) là gì?",intro:`Nếu DX là quá trình số hóa, thì AX là đưa AI vào trong cách doanh nghiệp vận hành, phát triển và ra quyết định.
8446AX không chỉ là dùng chatbot hay vài công cụ AI riêng lẻ. AX là thay đổi cách công ty làm việc ở cấp độ thực tế.`,points:[{title:"Từ digitize sang intelligence",description:"Không chỉ số hóa dữ liệu, mà dùng AI để hiểu, phân tích và hỗ trợ quyết định."},{title:"Từ hỗ trợ con người sang tăng năng lực cho toàn bộ tổ chức",description:"AI không chỉ giúp từng cá nhân nhanh hơn, mà giúp cả team vận hành khác đi."},{title:"Từ workflow cố định sang workflow thích ứng",description:"Nhiều quy trình trước đây cứng và thủ công, giờ có thể linh hoạt và hiệu quả hơn đáng kể nhờ AI."},{title:"Từ headcount growth sang productivity leverage",description:"Không phải cứ tăng người mới tăng output. AI tạo ra sự thay đổi năng suất một cách đáng kinh ngạc."}]},section2:{title:"Vì sao doanh nghiệp Nhật gặp khó?",points:[{title:"Khủng hoảng nhân sự Hybrid",description:"Thị trường đang thiếu trầm trọng những kỹ sư vừa hiểu AI vừa giỏi triển khai. Sau giai đoạn thiếu kỹ sư phần mềm, Nhật Bản đang bước vào giai đoạn thiếu kỹ sư AI và 
8446kỹ sư AI-Driven - một cuộc khan hiếm còn nghiêm trọng hơn."},{title:"Biết AI quan trọng nhưng không biết bắt đầu từ đâu",description:"Rất nhiều công ty có áp lực phải làm AI, nhưng chưa xác định được use case nào tạo giá trị thật."},{title:"Có ý tưởng nhưng không biến thành hệ thống chạy thật",description:"Demo thì dễ. Tích hợp vào vận hành thực tế mới khó."},{title:"Hệ thống cũ, dữ liệu phân mảnh, rào cản bảo mật",description:"Doanh nghiệp Nhật phần lớn đã xây dựng hệ thống vận hành qua hàng chục năm. AI phải thích nghi với hệ thống cũ, tôn trọng compliance, và xử lý được dữ liệu đang nằm rải rác ở nhiều nơi. Đây là bài toán tích hợp, không phải bài toán xây mới."}]},section3:{title:"Không cần tự xây, hãy đặt bộ não AI của bạn tại React Plus.",intro:"Bạn vẫn giữ chiến lược, định hướng, và outcome. React Plus đóng vai trò cánh tay AI vận hành cho doanh nghiệp - mang đến 3 thứ mà tự xây in-house phải mất nhiều năm để có:",highlights:["Đội ngũ kỹ sư AI đã làm việc thực tế cho doanh nghiệp Nhật","Hệ thống AI đang chạy production cho mega bank và tập đoàn lớn","Quy trình triển khai phù hợp với cách doanh nghiệp Nhật ra quyết định"],closing:"Đây là cách nhanh nhất để có năng lực AI thực sự - mà không phải đánh cược nhiều năm vào việc tự xây team từ đầu."},section4:{title:"Cách React Plus triển khai cho doanh nghiệp Nhật",subsections:[{title:"Tìm use case đáng làm",points:["Ưu tiên bài toán có ROI (hiệu quả đầu tư) thực","Tiết kiệm rất nhiều chi phí R&D, cũng như chi phí đầu tư cho nhân lực AI"]},{title:"Build thành sản phẩm / workflow / hệ thống chạy thật",points:["AI workflow","AI Agent","Internal tools","Domain solutions cho Fintech / nghiệp vụ doanh nghiệp"]},{title:"Triển khai theo cách phù hợp với doanh nghiệp Nhật",points:["Hiểu cách doanh nghiệp Nhật ra quyết định và triển khai thay đổi",'Tận dụng tối đa hệ thống hiện có "Plus" AI',"Đi từ use case nhỏ nhưng đúng, gắn vào vận hành thật, hiệu quả tức thì","Biến AI thành năng lực lâu dài, không phải demo ngắn hạn"]}]},closingQuote:`AI Transformation sẽ là một bước tiến vĩ đại trong lịch sử nhân loại.
8447Chúng tôi ở đây để đồng hành cùng bạn trong quá trình chuyển đổi lịch sá»­ đó.`,ctaButton:"Liên hệ với chúng tôi"}},hO={common:WL,sidebar:XL,header:YL,caseStudy:QL,about:JL,core:ZL,news:tO,contact:eO,chat:nO,footer:aO,ad_housing:sO,ad_passport:oO,atobar:iO,appos:rO,cvagent:uO,lnpl:lO,privacyPolicy:cO,logoAnnouncement:dO,recruit:pO,jobDetail:gO,ourStory:mO},_O={loading:"Loading...",error:"Error",success:"Success",cancel:"Cancel",continue:"Continue",back:"Back",save:"Save",edit:"Edit",delete:"Delete",confirm:"Confirm",close:"Close",submit:"Submit",next:"Next",previous:"Previous"},fO={backToHome:"トップページ",aboutUs:"ご紹介",companyInformation:"会社情報",ourExpert:"役員紹介",companyCulture:"企業文化",coreValues:"コアコンピタンス",products:"製品",helpCenter:"サポートセンター",privacyPolicy:"個人情報保護方針",contactUs:"お問い合わせ",aiEnhanced:"AI駆動型開発",aiFintechSolutions:"AI・フィンテックソリューション",socialImpact:"社会的影響",forTheCommunity:"社会貢献",aiCapabilities:"AI能力",coreValueOverview:"概要",coreValueSolutions:"AIソリューション",coreValueTechnology:"AI能力",coreValueServices:"フィンテック"},kO={news:"ニュース・イベント",aiBlog:"AIコラム",subsidiaries:"関連会社",contact:"お問い合わせ",recruit:"採用",caseStudy:"主要プロジェクト",strategicPartners:"戦略的パートナー",subsidiaryCompanies:"子会社",associatedCompanies:"関連会社",caseStudySubtitle:"React Plusの代表的なプロジェクトは、当社がクライアントと共にテクノロジーソリューションを開発・推進する過程において培ってきた実装力、実務経験、そして持続的な価値創出力を明確に示しています。",coreValues:"コアコンピタンス",coreValueOverview:"概要",coreValueOverviewDesc:"コアバリュー概要",coreValueSolutions:"AIソリューション",coreValueSolutionsDesc:"10個のAIソリューション日本企業向け",coreValueTechnology:"AI能力",coreValueTechnologyDesc:"企業で実践的に活用できるAIシステムを提供―AIをPoCで終わらせない",coreValueServices:"フィンテック",coreValueAiEnhanced:"AI駆動型開発",coreValueAiEnhancedDesc:"ソフトウェア開発におけるAI活用",coreValueAiCapabilities:"AI能力",coreValueAiCapabilitiesDesc:"実運用AIシステム",coreValueServicesDesc:"金融向けAI"},vO={categories:{All:"すべて",AI:"AI",FinTech:"FinTech",Others:"その他"}},yO=JSON.parse('{"companyInformation":{"brandIdentity":{"sectionLabel":"ブランドアイデンティティ","title":"React Plusの新ロゴ","subtitle":"無限に進化する知性","description":"React Plusのロゴは、メビウスの帯(Möbius Strip)から着想を得ています。表と裏の区別がなく、終端を持たない単一の連続面 - 数学における無限と統一の象徴です。\\nこの造形は、データ・推論(Reason)・行動(Act)が絶えず循環し、自己最適化を続けるAIのクローズドループを表現しています。\\n社å
8447ã€ŒReact Plus」もまた、この思考モデルに由来します。Reason(推論)とAct(行動) - 現代AIを駆動する二つの本質的プロセスそのものです。\\nロゴ全体を俯瞰すると、メビウスの帯はスタイリッシュな「A」の文字へと昇華されています。これは、日本におけるAI Transformationの潮流において、React Plusが最先端(A-class)を牽引するという揺るぎないコミットメントの表明です。","mobiusIntro":{"title":"メビウスの帯:AIにおける循環型プロセスと永続性","subtitle":"React Plusのロゴアイコン形状","body":"ブランドアイデンティティの中核には、メビウスの帯(Mobius Strip)というモチーフを採用しています。これは、単一の面を持ち、終端を持たない特異な数学構造であり、無限性と統一性を象徴する古典的なシンボルです。","mathNote":"数学において、メビウスの帯は、表面が1つしかなく、境界も1本のみを持つ特異な構造です。この帯の長さに沿ってペンで線を描くと、ペンを離したり裏返したりすることなく、出発点に戻ることができます。"},"closingNote":"React Plusでは、ロゴのあらゆる接点が、無限の知性が絶えず動き続け、顧客および社会に対して革新的な価値を創出する未来へのコミットメントを示しています。","meanings":[{"id":"react-cycle","number":"1","title":"メビウスの帯:AIにおける閉ループと永続性","subtitle":"React Plusという名称は、「Reason(推論)」と「Act(行動)」という思考モデルに由来しています。メビウスの帯は、入力データ、知的処理、そして実践的な成果の間で絶えず循環するプロセスを表現しています。","points":[{"label":"継続的学習","text":"AIの世界において、これは継続的に学習し続けるサイクルを意味します。システムが稼働すればするほど、データは最適化され、知識と効率が高まる好循環が生まれます。"},{"label":"統合","text":"始点も終点も持たないこの形状は、論理的思考(Reason)と実行(Act)の境界が曖昧になることを象徴しています。"}]},{"id":"adaptability","number":"2","title":"デザイン化された「A」の文字:リーダーシップへのコミットメント","subtitle":"全体的な視点で見ると、メビウスの帯は巧みに調整され、大文字の「A」を想起させるデザインとなっています。","points":[{"label":"AIファースト","text":"React Plusは、すべてのソリューションにおいてAIを中核に据えるというDNAを体現しています。"},{"label":"Advanced & Alpha(アドバンスト&アルファ)","text":"「A」という文字は、最高水準の品質を追求する志と、テクノロジー市場における先進的なポジションへの挑戦を象徴しています。"}]},{"id":"letter-a","number":"03","title":"多次元空間における柔軟性","subtitle":"メビウスの帯は単一の面しか持たないにもかかわらず、三次元空間の中で存在し、動き続けます。これは、React Plusの持つ能力を示しています。","points":[{"label":"複雑な課題の解決","text":"多角的なデータから課題にアプローチし、最適なソリューションを導き出す能力。"},{"label":"適応性","text":"滑らかな曲線は、柔軟性を象徴し、日々変化するテクノロジーの時代において先導するための適応力を表しています。"}]},{"id":"color-meaning","number":"04","title":"色彩と形状の言語","subtitle":"すべてのビジュアル要素は、信頼性・深み・知性を伝えるために慎重に選定されています。","points":[{"label":"ブルーグラデーション(変化する青の表現)","text":"テクノロジーと信頼性を象徴するブルーは、淡い色から濃い色へと変åŒ
8447–するグラデーションで表現されています。この効果により奥行きが生まれ、プロセスの透明性と技術力の深さを象徴しています。"},{"label":"モダンなタイポグラフィ","text":"安定感とミニマルさを兼ね備えたサンセリフ体のフォントを採用し、上部の柔らかなシンボルとのバランスを図っています。この組み合わせにより、プロフェッショナルで信頼できるテクノロジーパートナーとしての印象を与えます。"}]}]},"intro":{"title":"当社React Plusは","items":[{"title":"会社名","content":"株式会社React Plus"},{"title":"設立","content":"2019å¹´5月"},{"title":"代表取締役","content":"ルオン・スアン・ハイ"},{"title":"サービス","content":"AI×フィンテックソリューションの提供"},{"title":"ベトナムオフィス所在地","content":"7th Floor, Golden Field Building\\r\\n24 Nguyen Co Thach Street, Tu Liem Ward, Hanoi, Vietnam\\r\\n\\r\\n5th Floor, X2 Office Building\\r\\n458 Nguyen Huu Tho Street, Cam Le, Da Nang, Vietnam"},{"title":"日本の所在地","content":"〒108-0023\\r\\n東京都港区芝浦4丁目12-38\\r\\nCANAL GATE SHIBAURAビル"},{"title":"トップページ","content":"https://www.reactplus.com"},{"title":"規模","content":"320名(2025å¹´12月時点)"},{"title":"日本法人","content":"株式会社みらいプラス"},{"title":"パートナー","content":"株式会社MILIZE"}],"subtitle":"あとはAIに任せる"},"vision":{"title":"ビジョン","body":"日本企業にとってのリモートAIブレインとなり、単に業務を効率化するだけでなく、よりインテリジェントなオペレーションの実現と、AIトランスフォーメーション時代における成長の加速を支援します。","learnMore":"詳細はこちら"},"mission":{"title":"ミッション","body":"React PlusはAIソリューション企業として、インテリジェントなシステムを構築し、日本におけるフィンテック、ロジスティクス、デジタルプロダクトの分野において、スピードと効率の向上を実現しています。"},"strategy":{"title":"コア戦略","subtitle":"ビジョンを実現するために、React Plusは4つの中核戦略に注力しています。","s1":{"title":"AIソリューション企業","body":"私たちは、AIを単なる支援ツールではなく、あらゆる開発プロセスの中核とする組織の構築を目指しています。専門家チームとともに、私たちのAI実装アプローチは、顧客に対して高い効率性と独自性を提供できると確信しています。"},"s2":{"title":"フィンテックは私たちの中核的な事業領域です。","body":"ReactPlusは、銀行および金融機関向けのソリューション構築に注力しており、スコアリング、業務ワークフロー、コンサルティング支援、オペレーションシステムまで幅広く対応ã
8447—ています。この領域において、私たちは明確な差別化を生み出せると確信しています。"},"s3":{"title":"AIプロダクトを開発し、市場へ提供しています。","body":"React Plusは、スコアリングシステム、エージェントワークフロー、予測ダッシュボード、プロダクトに組み込まれたインテリジェンスなど、実運用されるAIプロダクトを構築し、企業に対して直接的な価値を提供しています。"},"s4":{"title":"コアとなるAI能力の構築に取り組んでいます。","body":"フィンテックに加え、React Plusは以下のような幅広い分野に適用可能なAI能力を有しています:\\r\\nAIエージェントおよび意思決定の自動化、エッジAIおよびオンサイトインテリジェンス、ソフトウェアおよびプロダクトへの組み込みAI。"}},"safety":{"title":"なぜReact Plusなのか?","open":"詳細表示","close":"閉じる","cards":[{"id":"kids","title":"経験豊富なAI専門家チーム","body":"50名以上のAI専門家が、AIエージェント、LLM、エッジAIを活用した実運用型ソリューションを開発・導入し、技術をデモやプロトタイプに留めるのではなく、実際の業務能力へと転換しています。"},{"id":"privacy","title":"ドメインおよび業務に関する深い知見","body":"日本においてフィンテック、ロジスティクス、デジタルプロダクト領域に精通した数百名のエンジニアが、深い専門知識と経験に基づき、精度の高い最適なAIソリューションを提供しています。"},{"id":"deepfake","title":"大手企業との協業経験","body":"私たちは、日本の多くの大手企業やメガバンク向けにプロジェクトを実施し、信用、リスク、業務運用、カスタマーサービスといった複雑な課題を解決してきました。これにより、最も厳しい要件にも対応できるソリューションを提供しています。"},{"id":"bias","title":"AIドリブンエンジニアによるソフトウェア開発","body":"ReactPlusのAIドリブンエンジニアリングモデルにより、従来型の開発モデルと比較して、開発期間およびコストを大幅に削減することが可能です。"}]}}
8447,"ourExpert":{"title":"経営陣について","ceoMessage":{"title":"CEOメッセージ","paragraphs":["「十分に発達したいかなる技術も、魔法と見分けがつかない。」","— Arthur C. Clarke","私はそのことを、React PlusのプロダクトであるAppOSが、自然言語によるプロンプトをわずか数分で動作するモバイルアプリへと変換する瞬間を目の当たりにしたとき、強く実感しました。\\nモックアップでも、デモでもありません。実際に使え、カスタマイズでき、導入可能なモバイルアプリケーションです。\\nアイデアが言語からほぼ瞬時にプロダクトへと変換されるとき、「計画」「構築」「展開」といった従来の境界は次第に崩れ始めます。その瞬間、私は気づきました。AIはもはや単なる支援ツールではなく、新たな生産能力へと進化しつつあるのです。","15年以上にわたるテクノロジー分野での起業経験を通じて、私は一つの見方に至りました。近年のAIの波は、単なる技術的進歩にとどまるものではありません。これは業界における転換点です。AIはソフトウェア開発プロセスを消し去るのではなく、かつては想像し難かった速度でそれを圧縮しています。ソフトウェアの創出スピードが変化すれば、業界における競争のロジックそのものも変わります。\\nそのため、React PlusはAIソリューションという道を選択しました。\\n当社はAIを、ビジネスストーリーを飾る付加的なレイヤーとしてではなく、企業が「魔法のような瞬間」を創出するための実質的な力として捉えています。AIエージェント、LLM、エッジAIに至るまで、これは新たな生産能力であり、その一貫した目的は、AIを実運用における価値へと転換することにあります。","私は、そう遠くない将来において、企業間の差はもはや人員数の多寡ではなく、いかにAIを中心に組織を再構築できるかにあると考えています。\\nNorbert Wienerは次のように警鐘を鳴らしました。","「私たちは自らの環境を根本的に変えてしまった。その結果、今やその新たな環境の中で生きるために、私たち自身が変わらなければならない。」","— Norbert Wiener","この新たな環境において、企業に求められるのは単なるデータ/テクノロジーの活用にとどまりません。データ/テクノロジーを前提とした構造へと自らを変革することこそが、今後10年にわたり持続的な成長を実現するための前提条件となります。"],"name":"ルオン・スアン・ハイ (Luong Xuan Hai)","role":"CEO"},"hai":{"name":"ルオン・スアン・ハイ","role":"代表取締役","paragraphs":["2011年、米国・ボストンのスタートアップ向けマッチングプラットフォームの開発に参画し、キャリアをスタート。その後、米国の退役軍人支援に関する複数のプロジェクトをリード。元米国大統領ジョージ・W・ブッシュ氏が設立した政策研究機関であるGeorge W. Bush Instituteと、U.S. Chamber of Commerce Foundationが展開する「Hiring Our Heroes」による共同イニシアチブをはじめ、全米の退役軍人を追悼する非営利団体「Wreaths Across America」のプロジェクトなど、社会的意義の高い取り組みに携わる。2014年には、GoogleおよびDropbox出身のエンジニアとともに、Apple Watch向けアプリケーションの開発会社を共同設立。黎明期のウェアラブル市場におけるプロダクト開発に取り組む。2015年にはJavaScriptに特化した開発会社Sphinxを創業。技術力を強みに事業を拡大し、2017年にはM&Aを成功裏に実現した。","2018年には日本市場向けのテクノロジー企業を設立し、複数分野への事業拡大を実現しました。その後、2019年に日本企業とのパートナーシップのもと同社のM&Aを成功させています。同年、React Plusを創業し、革新的なアイデアと挑戦の精神を通じて企業の成長を牽引してきました。"]},"mai":{"name":"ジェシカ・マイ","role":"共同創業者 兼 CRO","paragraphs":["2011年に神戸大学大学院にて修士課程を修了。2014年よりベトナム最大のIT企業であるFPTにて、大手フィンテックおよび自動車業界の顧客を担当するアカウントマネージャーとして従事。戦略提案、プロジェクトマネジメント、グローバルビジネス拡大支援を担いました。","その後、ReactPlusを共同創業し、テクノロジーとビジネスの橋渡し役として、企業のデジタルトランスフォーメーションを支援しています。"]}
8447,"hung":{"name":"ダオ・フウ・フング(大西)","role":"CTO","paragraphs":["慶應義塾大学にてAI分野の博士号を取得。研究から実運用まで、約20年にわたりAIプログラムを牽引。VPBank、FPTソフトウェア、VinBrain(NVIDIA Vietnam)にてAIセンター長(Director of AI Center)を歴任し、GenAI戦略の策定および銀行エコシステム向けAIエージェントプラットフォームの開発を主導。","キャリアを通じて、銀行・金融・物流・医療・自動車・製造など多岐にわたる分野で300件以上のAIプロジェクトを牽引。研究とビジネスの双方に強固な基盤を持ち、多数の学術論文の発表や日本における特許取得の実績に加え、AIを研究段階からプロダクト・収益・組織能力へと昇華させてきた豊富な経験を有する。"]},"fujino":{"name":"藤野 康生","role":"取締役","paragraphs":["ソフトバンク株式会社にてシステム運用保守・ヘルプデスクの現場経験を経て、オフショアへのITアウトソーシングの企画・計画・推進を10年以上担当した実績があります。その後に独立しオフショアコンサルタントとして活動しています。","以前はほとんどが中国へのオフショア提案でしたが、ここ数年はベトナムへのオフショア企画・推進をメインで進めています。親日で勤勉なベトナム人とのビジネスは楽しくやりがいがあります。ストレスのないオフショア活用を目指して全力でサポートします。"]},"tuan":{"name":"チュー・アイン・トゥアン","role":"執行役員","paragraphs":["IT分野において20年以上の経験を有し、フィンテック、政府機関、ヘルスケア、HRテックといった領域で、グローバル顧客向けの大規模プロジェクトを成功に導いてきました。PMP、アジャイル、システムアーキテクチャに関する確かな知見を持ち、さらに2,500名規模の多拠点チームの構築・運営経験も有しています。","大規模な教育プログラムの戦略立案および推進を通じて、高度なIT人材の育成に直接貢献してきました。また、ISO/IEC 27001およびISO 9001といった国際標準に基づくマネジメントシステムの標準化を主導し、組織のオペレーション能力、セキュリティ、および持続可能な成長の向上に寄与しています。"]},"tetsumura":{"name":"鉄村和之","role":"日本市場セールスマネージャー","paragraphs":["NECにてキャリアをスタートし、中南米地域における通信インフラ構築プロジェクトの推進を担当。その後、NTTドコモにて海外事業投資および法人向け事業に従事し、米国および中南米における事業拠点の立ち上げに貢献しました。","2020年より日商エレクトロニクス・ベトナムを率い、約110名の組織規模のもと、オフショア開発事業の推進、新規事業の創出、ならびにテクノロジースタートアップの支援に従事しました。現在は、Mirai Plusにおける事業拡大に注力しています。"]},"tinh":{"name":"ファム・スアン・ティン","role":"CAIO · CHIEF AI OFFICER","paragraphs":["CAIO(Chief AI Officer)のファム・スアン・ティンは、AI分野において11年以上の実践的な経験を持ち、特にGenAI(生成AI)、Agentic AI(エージェント型AI)、およびエンタープライズ向けAI活用プラットフォームの構築において高い専門性を有しています。韓国の忠南大学校で情報工学を専攻し卒業した後、英国セント・アンドルーズ大学にてデータマイニング&AI、アイルランドのメイヌース大学にて高信頼ソフトウェア開発(Rigorous Software Development)の分野で、2つのエラスムス・ムンドゥス(Erasmus Mundus)修士号を取得しました。","2025年には、ベトナム大手商業銀行VPBankのAIセンターにてGenAI部門のヘッドを務め、年間優秀社員『VPBank Top 100』に選出されました。現在は、当社のGenAI / Agentic AIチームを牽引し、グローバル規模の企業向けにマルチエージェント(Multi-Agent)プラットフォームの構築を統括。40以上の拠点と30以上の言語をサポートする日系多国籍企業向けのAI基盤構築プロジェクトなどを指揮しています。専門とする技術領域は、Agentic AI、LLM、RAG、ベクトルデータベース(Vector DB)、NLP(自然言語処理)であり、LangChain、LangGraph、LangFuse、MCP、A2Aといった最先端フレームワークや設計パターンの実践的な導入に深い知見を持っています。"]}
8447,"canh":{"name":"ゴ・スアン・カイン","role":"CDO · CHIEF DELIVERY OFFICER","paragraphs":["ソフトウェア開発およびITアウトソーシング分野で20年以上の経験を有し、プロジェクトの総合的なマネジメント・推進、組織開発を強みとし、特に日本市場において豊富な実績を有する。日本の大手テクノロジー企業にてSE、BrSEとして長年現地で業務に携わり、実務を通じて日本語を自ら習得・活用してきた経験から、日本企業の企業文化、プロジェクトの進め方、そして日本市場で求められる高い品質基準を深く理解している。","ベトナムでは、中規模から大規模まで数多くのプロジェクトをリードし、日本政府のODA資金を活用した大規模プロジェクトにも携わる。また、ベトナムを代表する大手テクノロジー企業の一つにおいて、日本市場の開拓・事業拡大を担い、200名を超えるエンジニアを擁する日本市場向け専門組織の立ち上げ・成長を直接リードするとともに、日本法人の設立にも携わった。AIによってテクノロジー業界が大きく変化ã
8447™ã‚‹ä¸­ã€æ¨©é™å§”譲と信頼を重視し、人を中心に据えながら、新たなテクノロジーを積極的に取り入れる柔軟なリーダーシップを実践している。"]}},"companyCulture":{"pageCulture":{"title":"React Plus ― 情熱と温かさに満ちたテクノロジーのホーム","description":"ReactPlusの文化は、共に働き、プレッシャーを乗り越える過程で生まれる結びつきを基盤としています。それはスローガンではなく、問題解決に取り組み、スケジュールを守り、共通の目標を達成してきた一つひとつの経験によって築かれた、持続的なつながりです。この結びつきは時間とともに維持され、システムが成長し要件が変化する中でも、私たちは安定かつシームレスに連携し続けています。私たちにとって結びつきとは感情的なものではなく、責任を共有し、統一されたシステムの中で価値を共に創出することの結果なのです。","cover":"/assets/images/culture/cover.png","titleOffice":"オフィス","subTitleOffice":"ワークスペース","officeDescription":"ワークスペースはオープンオフィス型を採用し、現代的で開放感のある設計となっており、プロフェッショナルでありながら、コミュニケーション、協働、生産性の向上を促進する環境を実現しています。さらに、社員の働きやすさと日常生活のニーズに応えるため、社内カフェテリア、ライブラリスペース、ODCルームなどの各種サポートエリアも整備されています。","titleHealth":"React Plusウィメンズカップ","descriptionHealth":"ReactPlusの女子フットボールイベントは、テクノロジー業界における女性メンバーが中心となって運営・推進している点に大きな特徴があります。単なる参加にとどまらず、主体的にプレーし、優れたチームワークを発揮しながら、ピッチ上で明確なエネルギーを生み出しています。これは単なるスポーツ活動ではなく、React Plusにおける女性メンバーの自信、挑戦精神、そしてその役割の重要性がより明確に示される場でもあります。","titleFestival":"文化・芸術活動","descriptionFestival":"ReactPlusの文化・芸術活動は、主要な社内イベントにおいて常に大きな見どころとなっており、入念に準備されたエネルギッシュなパフォーマンスによって会場の雰囲気を最高潮へと導いています。歌やダンスから創造的なパフォーマンスまで、すべてが真剣に企画・準備され、それぞれのチームの個性が色濃く表現されています。これらは単なる娯楽ではなく、チームの精神性、カラー、そして結束力を表現する舞台でもあります。各パフォーマンスは全体の一部として、React Plusにおける一体感のある、記憶に残るイベントを形作っています。","titleKaraoke":"カラオケ・レジェンダリーコンテスト","descriptionKaraoke":"Karaoke Legendary Contestは、React Plusのオフィス内で開催される社内イベントであり、「隠れた歌声」を持つメンバーがその才能を発揮できる場です。大規模なステージはなくとも、日常のオフィス空間が感情とエネルギーに満ちたステージへと変わり、心のこもったパフォーマンスが次々と披露されます。本イベントには多くの社員が参加し、出場者としてだけでなく、熱心な観客としても盛り上げています。これは単なるコンテストではなく、日々のプレッシャーを解放し、活気ある雰囲気を生み出し、チームの結束をさらに深める機会となっています。","titleMatxa":"男性の健康管理","descriptionMatxa":"ReactPlusでは、男性向けのヘルスケアイベントをオフィス内で実施し、ヘアカットとツボ押しマッサージという2つのサービスを移動の手間なく体験できる機会を提供しています。普段のオフィス空間はリラクゼーションスペースへと変åŒ
8447–し、社員は清潔感のある現代的なヘアスタイルへとリフレッシュすると同時に、首・肩・腰の疲労を軽減する施術によって心身の緊張を解きほぐします。これは単なる個人ケアにとどまらず、日々の業務パフォーマンスを高めるためのエネルギーリフレッシュ体験でもあります。","titleWomanDay":"女性向けケア活動","descriptionWomanDay":"女性向けケアイベントは、オフィス内の慣れ親しんだ空間を、心地よい体験スペースへと変えて開催されています。社員は、ネイルワークショップ、マッサージ、アロマキャンドル作りなどの体験を通じて、リラックスしながら美容と癒しの時間を楽しむことができます。これは単なるセルフケア活動にとどまらず、心身のエネルギーをリフレッシュし、感情のバランスを整え、同僚とのつながりを深める機会でもあります。これにより、日々の業務においてより明るく、インスピレーションに満ちた状態を維持することができます。","titleEsport":"eスポーツ『ストリートファイター』","descriptionEsport":"ReactPlusのeスポーツ『ストリートファイター』社内大会は、2対2の対戦形式で行われる、エキサイティングな競技の場です。単なる激しい勝負にとどまらず、日頃から親しみのあるメンバー同士がスキルと戦略を競い合うことで、白熱した戦いが繰り広げられます。また、魅力的な賞品も用意されており、活気に満ちた競技空間の中で、チームの結束と盛り上がりを生み出すイベントとなっています。","titleBanner":"私たちと共に、テクノロジーの未来を創りましょう。","bannerUrl":"/assets/images/culture/banner.jpg","textLink":"私たちのチームに参加する","linkUrl":"採用","awardsLabel":"AWARDS","awardsTitle":"社内表彰","awardsDescription":"React Plusでは、成功は製品やプロジェクト、収益だけで測られるものではなく、一人一人の粘り強い努力と一丸となる精神から生まれます。質の高いコード一行、革新的なアイデア、チームへのサポート、そして約束通りに完了したプロジェクトのすべてが、称賛に値する価値です。"},"awards":[{"id":"12","title":"プロジェクトの早期完了","image":{"url":"/assets/images/culture/award_0.png"},"description":"<p>共有リソースの活用を最適化し、期限よりも早くプロジェクトを完了させ、効果的なプロジェクト管理能力、高い責任感、そして優れた規律性を示します。</p>\\n","created_at":"2025-05-21T15:02:00.875Z","updated_at":"2025-05-21T15:03:08.693Z"},{"id":"11","title":"四半期皆勤賞","image":{"url":"/assets/images/culture/award_1.png"},"description":"<p>プロフェッショナルな労働精神を持ち、常に正確な労働時間を確保する意識を持つ個人。</p>\\n","created_at":"2024-09-10T10:10:12.498Z","updated_at":"2025-05-21T15:03:34.192Z"},{"id":"10","title":"外部の権威ある資格の取得","image":{"url":"/assets/images/culture/award_2.png"},"description":"<p>価値のある専門資格を取得し、個人の能力と企業の信頼を高めた個人。</p>\\n","created_at":"2024-09-10T10:09:28.113Z","updated_at":"2025-05-21T15:04:07.471Z"},{"id":"9","title":"計画を上回る研修時間を達成した個人","image":{"url":"/assets/images/culture/award_3.png"},"description":"<p>学習意欲が高く、計画の200%を超える研修時間を達成し、自己研鑽を怠らない個人。</p>\\n","created_at":"2024-09-10T10:08:04.641Z","updated_at":"2025-05-21T15:04:22.360Z"},{"id":"8","title":"研修で優秀な成績を収めた個人","image":{"url":"/assets/images/culture/award_4.png"},"description":"<p>絶え間ない努力を行い、コース修了後に優れた結果を出した個人。</p>\\n","created_at":"2024-09-10T10:07:03.411Z","updated_at":"2025-05-21T15:04:36.885Z"},{"id":"7","title":"研修計画を完了したチーム","image":{"url":"/assets/images/culture/award_5.png"},"description":"<p>絶え間ない学習精神を発揮し、能力向上においてé«
8447˜ã„成果を上げたチーム。</p>\\n","created_at":"2024-09-10T10:06:33.099Z","updated_at":"2025-05-21T15:05:07.673Z"},{"id":"6","title":"優秀個人賞","image":{"url":"/assets/images/culture/award_6.png"},"description":"<p>業務において卓越した成果を示し、全従業員の模範となる個人。</p>\\n","created_at":"2024-09-10T10:06:05.074Z","updated_at":"2025-05-21T15:05:20.962Z"},{"id":"5","title":"四半期代表プロジェクト","image":{"url":"/assets/images/culture/award_7.png"},"description":"<p>卓越した価値をもたらし、会社の発展に積極的に貢献した大規模プロジェクト。</p>\\n","created_at":"2024-09-10T10:05:32.523Z","updated_at":"2025-05-21T15:05:32.232Z"},{"id":"4","title":"重大事象ゼロプロジェクト","image":{"url":"/assets/images/culture/award_8.png"},"description":"<p>期限通りに完了するだけでなく、完璧な品質を達成し、重大なエラー(Bug A)が外部に流出しないプロジェクト。</p>\\n","created_at":"2024-09-10T10:01:53.122Z","updated_at":"2025-05-21T15:05:45.586Z"},{"id":"3","title":"複雑なプロジェクトの期限内完了","image":{"url":"/assets/images/culture/award_9.png"},"description":"<p>難易度が高いと評価されながらも、部門間の効果的な連携を常に確保し、品質、機能、運用の効率性に関する要件を完全に満たしたプロジェクト。</p>\\n","created_at":"2024-09-10T10:00:39.711Z","updated_at":"2025-05-21T15:05:57.776Z"},{"id":"2","title":"顧客評価が最も高いプロジェクト","image":{"url":"/assets/images/culture/award_10.png"},"description":"<p>製品/サービスの品質、サービス態度、問題解決能力、顧客対応に関して、顧客から高い評価を獲得しました。</p>\\n","created_at":"2024-08-13T10:55:27.310Z","updated_at":"2025-05-21T15:06:11.242Z"}],"health":[{"id":"3","type_health_festival":"health","image":{"url":"/assets/images/culture/womans_football_2024.png"},"title":"React Plusカップ","created_at":"2021-11-17T02:11:09.558Z","updated_at":"2024-12-16T10:52:52.615Z"}
8447,{"id":"1","type_health_festival":"health","image":{"url":"/assets/images/culture/health_1.png"},"title":"eスポーツ","created_at":"2021-11-17T02:11:09.372Z","updated_at":"2024-12-17T02:32:53.760Z"}],"festival":[{"id":"8","type_health_festival":"festival","image":{"url":"/assets/images/culture/festival_0.jpg"},"title":"5周年記念","created_at":"2024-12-17T02:30:54.143Z","updated_at":"2024-12-17T02:30:54.143Z"},{"id":"7","type_health_festival":"festival","image":{"url":"/assets/images/culture/festival_1.png"},"title":"国際女性デー","created_at":"2021-11-17T02:11:09.724Z","updated_at":"2024-12-17T02:25:33.746Z"},{"id":"6","type_health_festival":"festival","image":{"url":"/assets/images/culture/festival_2.png"},"title":"カラオケ・レジェンダリーコンテスト","created_at":"2021-11-17T02:11:09.690Z","updated_at":"2024-12-16T11:13:19.350Z"}],"villages":[{"id":"41","title":"努力と仕事の価値","description":"ReactPlusでは、すべての高品質なコードが、顧客にとっての実質的な価値と意義へとつながることを目指しています。","image":{"url":"/company-culture/award/ADS_6570.JPG"}},{"id":"40","title":"結束力のあるチームスピリット","description":"メンバー間の結束と相互理解は、あらゆる企業の成功を支える基盤です。","image":{"url":"/company-culture/award/ADS_6586.JPG"}},{"id":"31","title":"創造とブレイクスルー","description":"私たちは、困難な課題を解決するために、常に最新のテクノロジーを探求し、その活用を続けています。","image":{"url":"/company-culture/award/ADS_7674.jpg"}}],"offices":[{"id":"39","image":{"url":"/assets/images/culture/office_0.jpg"},"type_image":"office","created_at":"2024-08-15T04:20:53.379Z","updated_at":"2024-12-16T10:32:16.101Z"},{"id":"38","image":{"url":"/assets/images/culture/office_1.png"},"type_image":"office","created_at":"2024-08-15T04:17:35.328Z","updated_at":"2024-12-16T10:19:45.057Z"},{"id":"37","image":{"url":"/images/culture/VP1.jpeg"},"title":"オープンでモダンかつ開放的なオフィス","type_image":"office"},{"id":"36","image":{"url":"/images/culture/VP2.jpeg"},"title":"つながりと協働を促進する","type_image":"office"},{"id":"35","image":{"url":"/assets/images/culture/office_4.png"},"title":"充実したサポート設備","type_image":"office"}]}}'),bO=JSON.parse('{"aiEnhanced":{"heroLabel":"AI駆動開発","title":"エンジニアリンググレードのコードであり、バイブコードではない。","subtitle":"","intro":{"paragraphs":["React Plusは、AIエージェントがエンジニアのフルSDLC(要件定義、設計、実装、テスト、デプロイまで)を支援する企業向けソフトウェアを構築する。すべての成果物は、プロダクション投入前にレビュー→テスト→マージ→運用保守のフルパイプラインを通過する必要がある。","デモ目的のコードはレビューゲートで却下されます。これにより、プロダクション品質を損なうことなく、作業工数を80%削減できます。"]},"transformation":{"label":"トランスフォーメーション","title":"従来型開発 vs AI駆動開発","desc":"ソフトウェア開発プロセスは根本的に変化した。4つのフェーズ、それぞれ異なるアプローチが存在する。","headers":{"phase":"フェーズ","traditional":"従来の","aiDriven":"AI駆動"},"rows":[{"phase":"要件","traditional":"個人の経験に依存し、議論が遅く、ドキュメントは手作業で作成される。","aiDriven":"AIがプロトタイプを生成し、仕様を提案し、ドキュメント作成を自動化して、迅速な合意形成を実現する。"},{"phase":"開発","traditional":"ゼロからのコード作成やリファクタリングには工数がかかり、技術調査も遅い。","aiDriven":"コード生成+自動リファクタリング。AIが既存のコードベースとアーキテクチャを分析する。"},{"phase":"テスト","traditional":"テスト設計は手作業で行われ、リスクシナリオが不足し、バグの発見が遅れる。","aiDriven":"テストケースを自動生成し、リスクシナリオを追加し、エラートレンドを継続的に分析する。"},{"phase":"クオリティ","traditional":"デモレベルのコードはレビューやマージで止まりがちで、QAやセキュリティ対応も後手に回る。","aiDriven":"エンジニアリンググレードのパイプライン(レビュー→テスト→マージ→保守)で、品質とカバレッジの明確な証跡を残す。"}],"callout":"エンジニアリンググレードのコード(vibe codeでã
8447¯ãªã„):AI生成コードはすべてフルパイプラインを通過する必要がある。デモレベルのコードには運用上の価値はなく、本番レベルのコードのみがマージされる。","result":"結果:エンジニアリング規律を維持することを前提に、従来の開発と比較して約60〜80%の工数削減を実現。"},"workflow":{"label":"ワークフロー","title":"AIエージェントファーストのフルSDLC(5ステップのプロセス)","desc":"AIエージェントをSDLC全体に適用し、各工程で明確なアーティファクトと人間のオーナーシップを持つプロセス。","stages":[{"num":"01","name":"スペシファイ","actor":"BA+AI → spec.md(スペック.md)","desc":"ビジネスアナリストがAIと協働し、業務要件を仕様に落とし込む。AIがドラフトを作成し、BAがレビュー・承認する。"},{"num":"02","name":"プランニング","actor":"開発者とAIが協働してplan.mdを作成する。","desc":"開発者はAIと連携して仕様をFE/BEの計画に分解する。FE DevとBE Devの間でAPI契約を確定した後、両チームは並列で開発を進める。"},{"num":"03","name":"タスキング","actor":"Dev+AI → tasks.md(タスク.md)","desc":"AIが計画を1日以内のタスクに分解し、開発者がレビュー・承認してからコーディングを開始する。"},{"num":"04","name":"コード作成+ユニットテスト+プルリクエスト","actor":"AIと開発者が協働してコードを作成し、プルリクエストを作成する。","desc":"AIがコードとユニットテストを生成する。CIはUTとLintを自動実行する。AIコードレビューはインラインコメントで行われる。DevがPRをオーナーし、マージはDevのみが行う。"},{"num":"05","name":"テスト実行","actor":"Tester+AI → レポート","desc":"テスターがAIと連携し、開発/テスト環境でIT/STを実行する。バグトラッキングは自動化される。テスト合格後、PMがリリース対象の機能バッチを選定し、ステージングへリリースする。"}],"comparisonTitle":"従来型SDLCとの比較","comparisonHeaders":{"criteria":"基準","traditional":"従来型","aiFirst":"AIエージェントファースト"},"comparisonRows":[{"criteria":"成果物作成","traditional":"完全手動","aiFirst":"AIドラフト → 人間レビュー(工数を大幅に削減)"},{"criteria":"FE/BEの並列開発","traditional":"順次実行(互いに待つ)","aiFirst":"API仕様確定と並行して"},{"criteria":"ユニットテストカバレッジ","traditional":"テストケースはDevのみが作成する。","aiFirst":"2つのソース:Dev UT+QC UT(3つの視点)"},{"criteria":"IT/STカバレッジ","traditional":"不足しがち","aiFirst":"QCトラックはDevトラックと並行で進行する。"},{"criteria":"境界制御","traditional":"承認のトレースが困難","aiFirst":"各ステージにゲートを設け、Git上に監査ログを残す。"}]},"aiAgents":{"label":"AIエージェント","title":"各ステージにおけるAIエージェントの役割","desc":"SDLCにおける6つのAIエージェント(各エージェントは明確なスコープと出力を持つ):","agents":[{"name":"スペックドラフトエージェント","desc":"feature descriptionとFigmaデザインをもとに、spec.mdをドラフト作成する。","output":"Output:BAレビュー用のspecificationドラフト"},{"name":"プランニングエージェント","desc":"既存の仕様およびコードベースを基に、plan-fe.md / plan-be.md を提案する。","output":"Output:FEおよびBEの実装計画"},{"name":"タスク・エージェント","desc":"プランをtasks-fe.md / tasks-be.mdにブレークダウンし、各タスクは1日以内で完了できる粒度にする。","output":"Output:そのままアサイン可能なbacklog"}
8447,{"name":"コード/テスト/修正エージェント","desc":"TDDループ:テストケースを生成し、テストを満たすコードを実装し、PRを作成する。UT失敗時は自動修正を行う。","output":"Output:人によるレビュー準備が整ったPR"},{"name":"自動化エージェント","desc":"Dev/Test環境でIT/STを実施し、結果を取りまとめる。","output":"Output:自動生成されたテストレポート"},{"name":"バグレポートエージェント","desc":"バグをSeverityおよび再現手順付きで記録し、対象機能と紐づける。","output":"Output:十分なコンテキストを含むバグチケット"}],"artifactsTitle":"アーティファクト所有権","artifactsHeaders":{"artifact":"アーティファクト","owner":"オーナー"},"artifactsRows":[{"artifact":"requirements.md, basic-design.md, detail-design.md","owner":"BA+テックリード"},{"artifact":"spec.md","owner":"BA(テックリードが必要な場合あり)"},{"artifact":"ui-spec.md","owner":"BA / UX(BA承認)"},{"artifact":"api-spec.md(ロック済み)","owner":"FE Dev + BE Dev(テックリード)"},{"artifact":"plan-fe.md","owner":"フロントエンドエンジニア"},{"artifact":"plan-be.md","owner":"バックエンドエンジニア"},{"artifact":"tasks-fe.md / tasks-be.md","owner":"フロントエンドDev / バックエンドDev"},{"artifact":"UTテストケース.md","owner":"Tester / QC(AI対応あり)"},{"artifact":"testcases-it-st.md(IT/STテストケース.md)","owner":"Tester / QC(AI対応あり)"},{"artifact":"test-report.md(テストレポート.md)","owner":"Testerサインオフ"}]},"qualityGates":{"label":"品質ゲート","title":"品質ゲートと承認チェーン","desc":"各ステージには個別のゲートがあり、それぞれに明確な承認者を設定する。すべての承認ログはGit/Backlogに記録し、監査可能とする。","headers":{"gate":"ゲート/ステージ","approver":"承認者 / 備考"},"rows":[{"gate":"Phase 1 — 要件定義・設計","approver":"BAとテックリードが(要件/基本設計/詳細設計)を承認する。"},{"gate":"Stage 1 — 仕様策定","approver":"BAが自己承認(複雑な場合はテックリードが承認)"},{"gate":"Stage 2.0 — API契約をロック","approver":"FEエンジニア+BEエンジニア"},{"gate":"Stage 2 — フロントエンド/バックエンドのプランニング","approver":"FEエンジニア / BEエンジニア"},{"gate":"ステージ3 — タスキング(FE/BE)","approver":"FEエンジニア / BEエンジニア"},{"gate":"CIゲート1 — UT+Lint","approver":"CIは自動実行され、すべてパスしないとPRはアンブロックされない。"},{"gate":"CIゲート2 — AIコードレビュー","approver":"AIレビュー(インラインコメントのみ)。自動コミットは行わない。"},{"gate":"最終マージゲート","approver":"PRは作成者が責任を持つ(マージできるのはPRオーナーのみ)。"},{"gate":"ステージ5 — テスト","approver":"Tester承認(Dev/Test環境でIT/STがパスしていること)"},{"gate":"ステージング環境へリリース","approver":"PM(サインオフ済みの機能バッチを選定)"}],"principle":"separate-reviewerの原則:マージ担当とタスク承認者は分離する。タスクの承認者はコードのマージを行ってはならない。"},"techStack":{"label":"テックスタック","title":"AI駆動エンジニアリングにおけるツール","desc":"私たちがAI駆動開発のワークフローで日常的に使用しているツール:","headers":{"layer":"レイヤー","technologies":"テクノロジー"},"rows":[{"layer":"AIコーディングアシスタント","technologies":"Claude Code • Cursor"},{"layer":"エージェントフレームワーク","technologies":"Claude Code SDK・LangGraph・カスタムオーケストレーション"},{"layer":"仕様・計画ツール","technologies":"Spec-driven workflow・Figma MCP・社内テンプレート"},{"layer":"コードレビュー自動化","technologies":"AIコードレビュー・SonarQube・カスタムレビュエージェント"},{"layer":"テスト自動化","technologies":"AIテスト生成・Pytest・Playwright"},{"layer":"CI/CD統合","technologies":"GitHub Actions・GitLab CI・カスタムAIゲート"},{"layer":"バージョン管理と監査","technologies":"Git・Backlog監査ログ・PRテンプレート・承認ワークフロー"},{"layer":"可観測性","technologies":"Langfuse・コード品質ダッシュボード"}]},"applicability":{"label":"適用可能性","title":"使用する場合と使用しない場合","desc":"AI駆動開発は魔法のようなものではありません。私たちは、いつ適用するかをこのように判断しています:","good":{"title":"適切ã
8447ªå ´åˆï¼š","items":[{"title":"新規アプリケーションの立ち上げ、または大規模機能開発","desc":"AIはグリーンフィールド段階で大幅に開発を加速させる。"},{"title":"コードベースに明確な規約(スタイルガイド、アーキテクチャパターン)がある。","desc":"AIエージェントは学習しやすく、指示にも従いやすい。"},{"title":"チームはCI/CD、コードレビュー、テスト文化などのエンジニアリング規律が整っている。","desc":"AIは置き換えではなく補助として活用する。"},{"title":"要件が明確で、ドキュメント化されている。","desc":"AI Spec Draft Agentは、構造化された入力で最も効果的に動作する。"},{"title":"作業量が多い","desc":"AIは、人的リソースを線形に増やすことなく、開発ベロシティをスケールさせる。"}]},"bad":{"title":"不適切な場合:","items":[{"title":"テストカバレッジとドキュメントが未整備のレガシーコードベース","desc":"AIはコンテキストが不十分な場合、バグを発生させやすい。"},{"title":"チームはレビュー・パイプラインにまだ慣れていない。","desc":"AI生成コードを十分にレビューしないと、技術的負債が発生する。"},{"title":"要件が曖昧で、変更が頻繁に発生している。","desc":"AIエージェントが無駄なサイクルを消費する。"},{"title":"リアルタイム制御や組み込みファームウェアなど、ドメインが非常に特殊である。","desc":"AIの学習データが不十分である。"},{"title":"コンプライアンス要件として、すべてのコード行に人手による監査トレースが必要。","desc":"一部の業界にはこのような制約がある。"}]},"footer":"不適切な場合でも、従来のエンジニアリングでデリバリーする。ただしAI Agent-Firstは適用しない。"}},"aiCapabilities":{"hero":{"eyebrow":"日本企業向けエンタープライズAI","headline":"実運用されるAIシステム","body":["React Plusは、日本企業向けにAIプロダクションシステムの設計・実装を行っています。金融、物流、デジタルプロダクト領域で日常的に稼働するAIシステムを構築します。"],"groupsTitle":"企業のAI活用を支える4つの中核ソリューション","groups":[{"phase":"Predictive Models","content":"企業データに基づく分析・予測を行い、最適なアクションプランを提案することで、意思決定プロセスを支援します。"},{"phase":"LLM-based Knowledge Systems","content":"文書、帳票、レポートなどの社内情報を企業ナレッジとして活用し、情報検索、分析、およびリアルタイムでの高精度な回答を自動化します。"},{"phase":"AI Agents","content":"業務ごとに最適化されたAIエージェントが複数のシステムと連携し、自律的に計画・実行・調整を行います。さらに、自律改善機能によって継続的に性能を向上させます。"},{"phase":"4. エッジAI","content":"デバイス上でAIを実行することで低遅延を実現し、データを外部へ送信することなく、安全かつ効率的に活用できます。"}],"supplementary":"さらに、文書理解AI(OCR)、画像・画面理解(Visual Understanding)、AI運用基盤(MLOps)などの関連技術にも対応しています。","primaryCta":"やり取りを開始する","secondaryCta":"能力を知る"},"approach":{"eyebrow":"アプローチ","headline":"AIが業務運用に直接関与するよう設計されています。","body":["私たちは、実運用に密着したアーキテクチャを設計しています。技術的に本当に必要なAIレイヤーのみを選定し、明確なビジネス価値を持ち、実際の制約条件下で展開可能な形で実装します。具体的には、法規制への準拠、レイテンシ要件、既存システムとの統合、そして人によるコントロールを前提としています。","それが、私たちの仕事が実験ではなくシステムを中心に展開されている理由です。私たちは、プロダクション環境で実際に稼働し、スケールå
8447¯èƒ½ã§ã‚り、かつ制御可能なものにフォーカスしています。"]},"industries":{"title":"Industry Architectures","items":[{"id":"fintech","title":"Fintech & Banking","body":"We build AI systems for financial operations, risk evaluation, customer interaction, and internal decision support. Our focus is not on disconnected AI features, but on operational systems that can work alongside existing platforms, internal tools, and core financial infrastructure.","layers":[{"label":"Applied ML","value":"Credit scoring, fraud signals, customer segmentation, conversion modeling, churn and repayment prediction"},{"label":"LLM systems","value":"Document interpretation, policy retrieval, contract analysis, knowledge assistance with source grounding"},{"label":"AI agents","value":"Case handling, KYC/KYB support, application triage, exception routing, assisted internal approval"},{"label":"AI in software","value":"Contextual recommendations, intelligent forms, operator support, internal copilots for financial workflows"}],"footer":"Built for governed environments, legacy integration, and production auditability."},{"id":"logistics","title":"Logistics & Supply Chain","body":"We deploy AI systems close to the flow of goods, documents, and on-site operations. This combination is especially effective in operational environments where a central dashboard is not enough and decision support must happen at the point of action.","layers":[{"label":"Applied ML","value":"Demand forecasting, ETA estimation, exception prediction, workload balancing"},{"label":"LLM systems","value":"Document extraction, shipment summarization, structured output from logistics records"},{"label":"AI agents","value":"Cross-team orchestration, issue handling, dispatch support, workflow coordination across systems"},{"label":"AI in software","value":"Predictive dashboards, recommended actions inside WMS/TMS interfaces, operator-facing intelligence"},{"label":"4. エッジAI","value":"On-site recognition, offline document processing, visual monitoring, inventory and safety support"}],"footer":"Designed for physical operations, distributed environments, and on-site execution."},{"id":"enterprise","title":"Enterprise Software & Digital Products","body":"We help software companies and enterprise teams make AI a native part of the product experience. The outcome is not a separate AI tool sitting outside the product. It is software that becomes more useful, more proactive, and more capable of doing work on behalf of the user.","layers":[{"label":"LLM systems","value":"Search, retrieval, summarization, knowledge assistance, semantic interaction inside the product"},{"label":"AI agents","value":"Workflow execution, internal task automation, guided actions, in-product process handling"},{"label":"AI in software","value":"Recommendations, forecasting, intelligent data capture, next-best-action, predictive assistance"}],"footer":"Built for product adoption, operational efficiency, and measurable software value."}]},"governance":{"eyebrow":"責任あるAI","headline":"AIガバナンスは後付けではなく、システム設計の段階から統合されています。","body":"AIは、システムが適切にガバナンスされていなければ、エンタープライズ領域では成立しません。私たちが構築するすべてのシステムには、プロダクション段階から統制メカニズムが組み込まれています。具体的には、評価、フェアネス検証、トレーサビリティ、ヒューマンモニタリング、プライバシー保護、そして運用監視を含みます。Responsible AIはブランドレイヤーではなく、システムアーキテクチャそのものです。","items":[{"id":"evaluation","title":"評価・公平性・信頼性","description":"モデルおよびワークフローは、ベンチマークスコアだけでなく、実運用タスクに基づいて評価されます。機械学習ではオフライン指標、キャリブレーション、ドリフト監視を行います。LLMおよびエージェントにおいては、シナリオベースの評価、回帰テスト、エラーパターン分析を実施します。またデプロイ前には、公平性の検証として、保護属性に対するバイアス検出、ディスパレート・インパクト分析、デモグラフィック・パリティ評価をè
8447¡Œã„、さらに本番環境では分布シフトを継続的に監視します。"},{"id":"explainability","title":"説明可能性とトレーサビリティ","description":"重要なAI出力は、理解可能であり、監査可能かつ追跡可能である必要があります。機械学習モデルでは、特徴量の寄与分析(SHAP、Permutation Importance)およびスコアリングの説明性を提供します。LLMシステムでは、参照ソースの提示とトレースログによる経路追跡を行います。AIエージェントでは、すべてのアクション履歴、承認ログ、実行トレースを記録します。AIが関与するすべての意思決定には監査証跡(audit trail)が存在し、規制当局から「なぜその判断に至ったのか」と問われた際には、既にその説明が記録されています。"},{"id":"oversight","title":"人による監督とポリシー制御","description":"AIが実行できる領域、提案のみに留まる領域、承認を必要とする領域、上位レイヤーへエスカレーションされる領域を明確に定義します。これらの境界は、ユースケースおよびリスクレベルに応じて構成されます。ヒューマン・イン・ザ・ループ、承認ゲート、フェイルセーフ設計、そして明確な責任分界を備え、自動化による効率向上と説明責任の維持を両立します。"},{"id":"privacy","title":"プライバシー・セキュリティ・コンプライアンス","description":"データ最小化、暗号化、アクセス制御、オンプレミス展開、監査対応可能なログ設計を前提とし、各クライアントの法的要件に適合するよう設計されています。日本企業向けには、APPIへの準拠、FSAの期待要件、ならびにMETIのAIガバナンスガイドラインへの対応を前提としています。さらに、モデルドリフト、バイアスドリフト、データ品質劣化を継続的に監視し、初期段階から監査可能な状態を確保します。"}]},"team":{"eyebrow":"デリバリーチーム","headline":"コンパクトで専門性の高いチーム","subheadline":"AIソリューション運用","body":"40名以上のAIエンジニアが、AIシステムの設計・構築をリードします。\\n200名以上のAI駆動型エンジニアが、AI-Driven手法でソフトウェア開発を行い、プロジェクトの実装とスケーリングに参画します。","roles":[{"id":"architect","title":"AIソリューションアーキテクト","description":"ビジネス課題をAIシステム設計へと変換します。統合範囲、ガバナンス制約、全体アーキテクチャを定義し、お客様のCTO/CIOと直接連携します。","icon":"/graphic-design.png"},{"id":"engineer","title":"応用AIエンジニア","description":"エンドツーエンドのAIシステムを構築 — 予測モデル、LLMパイプライン、エージェントワークフロー、ドキュメントインテリジェンス、評価およびプロダクション監視。","icon":"/coding.png"},{"id":"scientist","title":"応用リサーチサイエンティスト","description":"NeurIPS、ICML、ACLの論文を読解し、SOTAアルゴリズムを再現。既製のソリューションでは対応できない運用上の制約に合わせてアルゴリズムを最適化します。","icon":"/debug.png"},{"id":"edge","title":"エンベデッド&エッジAIエンジニア","description":"SLM、LLM、エージェントをエッジハードウェア(Raspberry Pi、NVIDIA Jetson、Intel NUC)上にデプロイ。OPC-UA、MQTT、Modbusを介して産業システムと統合します。","icon":"/cogwheel.png"},{"id":"mlops","title":"MLOps&プラットフォームエンジニア","description":"AIモデルのライフサイクルを運用 — デプロイ、バージョニング、モニタリング、再学習。MLOpsパイプライン、AI用CI/CD、クラウドおよびオンプレミスインフラを構築します。","icon":"/cogwheel.png"},{"id":"systems","title":"ワークフロー&システムエンジニア","description":"AIをエンタープライズAPI、承認ワークフロー、レガシーシステム、プロダクトUIと接続。AIが業務プロセスの外側ではなく内側で稼働することを保証します。","icon":"/cogwheel.png"},{"id":"domain","title":"インダストリー&日本スペシャリスト","description":"金融、銀行、物流領域のエキスパート。KYC/AML、与信評価、法規制報告、輸出入業務に精通。専門領域の要件と日本市場におけるビジネス期待を理解しています。","icon":"/rocket.png"}]},"cta":{"headline":"実験段階を超える準備はできていますか?","body":"あなたの業務に最適なAIシステムを共に定義しましょう。目的が予測、業務自動化、インテリジェントなドキュメント活用、プロダクトへの統合、あるいは現場での展開であっても対応可能です。","button":"Start a conversation"},"strapline":"Production AI systems for Japanese enterprises — designed for execution, integration, and governed operation."},"fintechKnowhow":{"title":"フィンテック業界における React Plus の強み​","intro":{"paragraphs":["React Plusは、Fintechの知識と技術を活用して、ビジネスに貢献しています。"]},"models":{"title":"ノウハウ・コアコンピテンシー","description":"これらの強みは、お客様の事業領域やビジネスモデルと高い親和性を持ち、今後の協業においても確かな付加価値をæ
8447ä¾›ã§ãã‚‹ã¨ç¢ºä¿¡ã—ております。​","model1":{"name":"ドメイン特化型のフルサイクル\\nオフショア開発能力","input":"金融(Fintech)を中心に、職域(人事・福利厚生関連サービス)、ロジスティクス(WMS)、などにおける豊富な開発実績を保有。​","output":"要件定義〜設計・開発・運用・改善までを一貫して対応可能。","contextLength":"各ドメインにおいて、日本国内の大手企業様をオーナーとするプロジェクト実績多数あり。​"},"model2":{"name":"​BtoBtoCを前提としたシステム\\nアーキテクチャ設計・開発能力","input":"BtoBtoCにおけるエンタープライズバックエンドと一般ユーザー向けフロントエンドの統合に豊富な経験。​","output":"複数権限のロール管理、データフローの最適化、マルチデバイス対応UX/UIなど、ユーザー起点の設計に強み。​"},"model3":{"name":"システム開発能力と共に包括的な\\nAIソリューションズ提供​","input":"機械学習や深層学習といったAIの基盤技術に精通しており、それらを活用したエージェントやアプリケーションの開発・運用まで、ワンストップで対応可能。​​","output":"金融業界においては、顧客対応の自動化、リスク分析の高度化、業務効率化など、AIエージェントの活用などを常にキャッチアップ・提案・開発可能。​"},"model4":{"name":"​上流工程から関与可能な\\nR&D・PoC対応力​","input":"技術的実現可能性を含むコンセプト設計・ソリューション提案から支援。​","output":"PoC(概念実証)、プロトタイピングフェーズを通じて、クライアントと共に新しい価値を創出。​","contextLength":"本番開発・運用後も機能拡張や改善提案を継続的に実施。​"}},"resources":{"helpCenter":{"subtitle":"先進的なセキュリティ技術で\\n​高い基準に適合​"},"developerForum":{"subtitle":"大規模なユーザー数に対応可能​"},"cookbook":{"subtitle":"快適なユーザー体験を提供"},"status":{"subtitle":"お客様に合った金融サービス​の\\nカスタイマイズ提供が可能​"}},"aiFintechSolutions":{"title":"AI + フィンテックソリューションの主要カテゴリ"},"aiAgentsInFinance":{"title":"金融におけるAIエージェント"},"useOfAiAgentsInFinance":{"title":"金融におけるAIエージェントの活用"},"saasSolution":{"title":"SaaSソリューション"},"startBuilding":{"title":"金融ソリューションの主要カテゴリ","title1":"個人の財務管理","subtitle1":"ライフプランシミュレーションと日常支出管理のモバイルアプリケーション","title2":"企業財務管理","subtitle2":"収支の追跡、財務レポート・請求書の作成給与と税金の管理","title3":"予測システム","subtitle3":"為替レートの変動、信用リスク、株式市場と証券市場を予測するシステム","title4":"保険技術","subtitle4":"健康データを利用した保険システム、保険証書管理とオンライン保険購入のウェブ・アプリ","title5":"財務データの分析","subtitle5":"ビッグデータ分析技術を活用して、正確な財務レポートやソリューションを提供し、戦略的な意思決定をサポート","title6":"ロボアドバイザー","subtitle6":"目標とリスクに基づく投資ポートフォリオの自動最適化アプリ・ChatGPTの統合、仮想財務アドバイザーのシステムの作成"},"agentKit":{"title":"AI + フィンテックソリューションの主要カテゴリ","description":"","items":[{"title":"リアルタイム不正検出","content":"ディープラーニングを使用して即時取引を分析し、不審な活動を検出します。"},{"title":"株式市場予測","content":"ディープラーニングとニュース分析を組み合わせて株価変動を予測します。"},{"title":"スマートクレジットスコアリング","content":"請求書支払いや購買行動などの非伝統的データからクレジット能力を評価します。"},{"title":"金融アドバイスチャットボット","content":"支出管理、予算、投資に関するパーソナライズされたアドバイスを提供します。"},{"title":"投資ポートフォリオ最適化","content":"強化学習を適用して投資家の目標に応じたリスクとリターンのバランスを取ります。"},{"title":"債務不履行リスク予測","content":"多様な財務要因に基づいてP2Pレンディングにおける債務不履行の可能性を分析します。"},{"title":"財務報告分析","content":"NLPを使用して企業レポートから重要な情報を自動抽出します。"},{"title":"不動産評価","content":"機械学習と多様な要因に基づいて不動産価値を正確に見積もります。"}]},"aboutTextTitle":"AIを統合したSaaS開発における総合的な開発力","aboutText":["React Plusは、AIを活用したアプリケーション開発分野において総合的な開発力を有しており、AIによる付加価値を持つSaaS(AI-enhanced SaaS)の構築から、より高度なレベルでAIを中核としたSaaS基盤(AI-driven SaaS)の
8447実現まで、一貫して伴走することが可能です。"],"stats":{"title2":"金融・保険分野における豊富なプロジェクト経験","title":"日本市場における実運用を伴う開発・導入実績","description":"React Plusは、単なるR&Dにとどまらず、日本市場での実運用経験を通じて、以下の工程を直接担当してきました。","approval_rate":"SaaSプラットフォームの設計","bad_debt_rate":"システム開発","average_score":"導入・展開","api_response":"AI統合型SaaSの運用"},"aboutText2":["特に、React Plusは日本国内の銀行および保険会社との協業プロジェクトを多数手がけており、その中で以下の分野における知見を蓄積してきました。","・厳格な品質基準への柔軟な対応","・高度なセキュリティ要件への対応","・金融業界特有の法規制への理解と遵守"]},"forTheCommunity":{"description":"\\r\\n私たちは、どのような状況であっても、たとえ小さな行動であっても、誰かの助けになれると信じています。まずは、誠実さと思いやりという最もシンプルなものから始めましょう。誰かに手を差し伸べること、気にかけること、そして一人ではないと感じてもらうこと。それだけで十分なこともあります。ほんの少しの支えが、想像以上の希望や幸せを生み出すこともあります。共に、ささやかでありながら意味のある喜びを創り出していきましょう。\\r\\n","description2":"ReactPlusでは、皆さまの仕事への誠実な取り組みを、社会にとって本質的な価値へと変えていきます。\\r\\n","storiesTitle":"ボランティアストーリー","stories":[{"id":"169","date":"28/03/2025","title":"React Plusは献血チャリティプログラムを開催しました ― 分かち合いの旅、希望を灯す取り組み","image":"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/169/%E1%BA%A2NH_B%C3%8CA__WEB__7_.png","slug":"react-plus-to-chuc-huong-trinh-hien-mau-nhan-dao---hanh-trinh-se-chia--thap-sang-hy-vong"},{"id":"143","date":"17/09/2024","title":"ReactPlusは、台風後の豪雨災害により影響を受けた地域の方々へ心を寄せ、支援の気持ちを共にしています。","image":"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/143/%E1%BA%A2NH_B%C3%8CA__WEB__23_.png","slug":"react-plus-cung-huong-trai-tim-ve-dong-bao-cac-tinh-chiu-anh-huong-mua-lu-sau-bao"}
8447,{"id":"139","date":"26/08/2024","title":"ReactPlusは2024年「愛のバス」プロジェクトを出発させ、「愛を届けるボランティアキャンペーン」および「教育支援プロジェクト」に参加しました。","image":"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/139/%E1%BA%A2NH_B%C3%8CA__WEB__20_.png","slug":"react-plus-khoi-hanh-chuyen-xe-yeu-thuong-2024-cung-chien-dich-tinh-nguyen-trao-yeu-thuong--tiep-suc-hoc-duong"},{"id":"133","date":"19/07/2024","title":"ReactPlusは、ボランティアプログラム「愛を届け、学びを支える」に向けて準備を整えています。","image":"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/133/%E1%BA%A2NH_B%C3%8CA__WEB__15_.png","slug":"react-plus-da-chuan-bi-san-sang-cho-chuong-trinh-thien-nguyen--trao-yeu-thuong--tiep-suc-hoc-duong-"},{"id":"128","date":"27/06/2024","title":"React Plusはボランティアプログラム「愛を届け、学びを支える」を開催しました。","image":"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/128/%E1%BA%A2NH_B%C3%8CA__WEB__12_.png","slug":"react-plus-to-chuc-chuong-trinh-thien-nguyen---trao-yeu-thuong-tiep-suc-hoc-duong"},{"id":"86","date":"24/07/2023","title":"7月の献血ボランティア活動の総括","image":"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/86/%E1%BA%A2NH_B%C3%8CA__WEB__33_.png","slug":"tong-ket-hoat-dong-hien-mau-nhan-dao-thang-7"}]},"coreValueTechnology":{"principles":{"label":"原則","title":"4つの技術原則","items":[{"title":"制約主導設計","desc":"当社は、モデルの技術的可能性からではなく、実務上の制約――法規制、レイテンシー、既存システムとの統合、人によるコントロールポイント――を起点としてシステム設計を行います。\\n最適なモデルとは最先端(SOTA)のモデルではなく、これらの制約条件に適合するモデルです。"},{"title":"モデルの複雑さよりもデータ品質を重視","desc":"モデルが要件を満たさない場合、当社はまずモデルではなくデータを検証します。\\nAIの本番運用における問題の約80%はデータ品質に起因しており、特徴量設計、データプロファイリング、そしてクリーンな入力の確保は、モデルの複雑性を高めること以上に重要です。"},{"title":"逸話ではなく、測定可能であること","desc":"すべての導入判断は、感覚やデモではなく、測定可能な指標に基づいて行われます。\\n新たなモデルは、事前に定義された基準を満たす自動評価を通過した場合にのみデプロイされます。\\nまた、ビジネス成果はGo-Live時の単発的な報告にとどまらず、継続的にトラッキングされます。"},{"title":"設計段階からのヒューマン・イン・ザ・ループ","desc":"高リスクの意思決定――融資承認、法的書類の処理、オペレーションへの介入――においては、最終的なコントロールポイントはAIではなく人間が担います。\\n当社のシステムは、Go-Live後に付け加えるのではなく、初期設計の段階から承認ゲートおよびエスカレーションワークフローを組み込んでいます。"}]},"governance":{"label":"責任あるAI","title":"AIガバナンス","desc":"React Plusは、すべてのシステムに統合されたAIガバナンスフレームワークを適用し、現行および今後12か月以内に施行予定の国際基準に対応する。","items":[{"title":"説明可能性","goal":"すべてのAIの意思決定は、その理由を説明可能であること","mechanism":"SHAP・LIMEを組み込み、各ケースごとの意思決定監査ログを保存する。"},{"title":"バイアス検知","goal":"公平性を確保し、差別を排除する。","mechanism":"公平性指標、サブグループ別分析、バイアスの継続的な監視"},{"title":"監査インフラ","goal":"入力 → モデル → 出力の完全なトレーサビリティ","mechanism":"ログ管理、モデルバージョン管理、データリネージュの追跡"},{"title":"人間による監督","goal":"最終的な意思決定は人間が担う。","mechanism":"ヒューマン・イン・ザ・ループ、承認ゲート、エスカレーションワークフロー"},{"title":"規制対応/コンプライアンス","goal":"国際的な法規制への準拠","mechanism":"EU AI法、NIST AI RMF、ISO/IEC 42001:2023、METIガイドラインv1に準拠した設計"}],"th1":"柱","th2":"目標","th3":"実施メカニズム","standards":{"title":"適用される国際基準","th1":"基準","th2":"発行機関","th3":"範囲","rows":[{"standard":"EU AI法 (EU AI Act)","issuer":"欧州連合(2024年成立、2027年に向けて段階的適用)","scope":"AIをリスクレベルに応じて分類。高リスクAIに対しては、透明性の確保、人間による監視、厳格なリスク管理を義務付け。"},{"standard":"NIST AI RMF","issuer":"米国国立標準技術研究所(NIST)","scope":"Govern(ガバナンス)、Map(マッピング)、Measure(測定)、Manage(管理)の4つのコア機能で構成されるAIリスク管理フレームワーク。"},{"standard":"ISO/IEC 42001","issuer":"国際標準化機構(ISO)および 国際電気標準会議(IEC)","scope":"AIマネジメントシステム(AIMS)に関する世界初の国際規格。"},{"standard":"AI事業者ガイドライン(第1.1版)","issuer":"経済産業省(METI)および 総務省(MIC)- 2025å¹´3月28日公表","scope":"日本市場において活動・連携するAI開発者、AI提供者、およびAI利用者向けの包括的なAIガバナンス指針。"},{"standard":"AI推進法(AI Promotion Act)","issuer":"日本国会 - 2025å¹´5月28日可決・成立、2025å¹´6月4日施行","scope":"日本初のAI基本法。「AI戦略本部」の設置および「AI基本計画」の策定を規定。「イノベーション・ファースト」のアプローチを採用し、罰則規定を設けない枠組み。"}]},"pillarsTitle":"5つの柱","commitments":{"title":"ガバナンスへのコミットメント","text":"ガバナンスは設計段階から組み込まれ、導入後に追加するものではない。"}},"stack":{"label":"エンジニアリング基盤","title":"エンジニアリング基盤","desc":"当社システムにおける主要なツールおよびフレームワークは、本番環境での性能、技術コミュニティの成熟度、ならびに実運用における統合性を基準として選定されています。","th1":"レイヤー","th2":"技術","rows":[{"layer":"データパイプラインおよびフィーチャーストア","technologies":"Pandas・Polars・dbt・Apache Airflow・Feast・Great Expectations"},{"layer":"MLOpsおよびライフサイクル","technologies":"MLflow・Kubeflow・DVC・Weights & Biases・Optuna"},{"layer":"評価およびテスト","technologies":"カスタム評価フレームワーク・RAGAS・LLM-as-judge・A/Bテスト・Pytest"},{"layer":"モニタリングおよびオブザーバビリティ","technologies":"Prometheus・Grafana・Evidently AI・Langfuse・カスタムダッシュボード"},{"layer":"クラウドおよびインフラストラクチャ","technologies":"AWS・Azure・GCP・Docker・Kubernetes・Terraform・ArgoCD"},{"layer":"オンプレミスおよびエッジランタイム","technologies":"NVIDIA Triton・ONNX Runtime・TensorFlow Lite・llama.cpp・ベアメタルデプロイメント"},{"layer":"セキュリティおよびコンプライアンス","technologies":"OAuth 2.0・RBAC・監査ログ・クラウドIAM(AWS/Azure/GCP)・データ暗号化"},{"layer":"統合プロトコル","technologies":"REST API・gRPC・MQTT・OPC-UA・Modbus・Webhook"}]},"cta":{"title1":"AIシステムの構築","title2":"私たちと一緒に","desc":"アーキテクチャからプロダクションまで—まずは貴社の具体的な課題についてご相談ください。","btnPrimary":"打ち合わせを予約する","btnSecondary":"金融業界"},"capabilities":{"label":"コアケイパビリティ","title":"React Plusを支える6つのコア技術領域","items":[{"title":"応用機械学習・データサイエンス","subtitle":"業務データに基づく予測・分析・意思決定モデル","th1":"能力","th2":"定義","th3":"代表的なアプリケーション","rows":[{"col1":"信用スコアリング&リスクモデリング","col2":"自動信用スコアリングおよびポートフォリオリスクモデルにより、迅速な融資承認と日本の銀行基準に基づく損失管理を実現する。"},{"col1":"不正検知","col2":"リアルタイム不正取引検知と早期アラートにã
8447‚ˆã‚Šã€ä½Žé…延でコアバンキング環境内で動作する不良債権リスクの監視を実現する。"},{"col1":"需要および売上予測","col2":"時系列分析および機械学習を用いて需要・在庫・売上を予測し、予測誤差を削減しながら、物流および小売のオペレーション計画を最適化する。"},{"col1":"顧客分析とセグメンテーション","col2":"顧客行動分析、チャーン予測、LTV(顧客生涯価値)分析により、商品パーソナライズと顧客アプローチ戦略を最適化する。"}],"techStack":"Python、Scikit-learn、XGBoost、LightGBM、PyTorch、Feast、MLflow、KServe","industries":"銀行・フィンテック/保険/物流/小売/製造業","note":""},{"title":"文書理解AI(Document Intelligence)","subtitle":"RAG、エージェント、セマンティック検索、ドキュメントQ&Aを含む企業向けLLMシステム","th1":"能力","th2":"定義","th3":"代表的な活用例","rows":[{"col1":"RAG(社内ドキュメントに基づくQ&A)","col2":"RAG(Retrieval-Augmented Generation)により、AIは社内のドキュメント、業務プロセス、ナレッジベースに基づいて正確に回答できるようになり、ハルシネーションを抑え、監査証跡も確保できる。"},{"col1":"セマンティック検索とドキュメントインテリジェンス","col2":"表、段組み、複雑なレイアウトを自動的に解析・理解し、財務報告書や各種帳票を構造化データへ変換します。"},{"col1":"業務向けAIコパイロット","col2":"業務特化型AIアシスタント(信用審査コパイロット、契約レビューコパイロット、銀行員支援コパイロット)"},{"col1":"オンプレミスLLMデプロイメント","col2":"LLMを顧客の社内インフラ上で展開・運用し、FISCやJ-SOXなど日本の規制に基づくデータ外部持ち出し禁止要件に対応する。"},{"col1":"LLMの評価とガードレール設計","col2":"出力品質の評価、ハルシネーション検知、ガードレール設定により、厳格なコンプライアンス環境下でAIの正確性と安全性を確保する。"}],"techStack":"OpenAI、Anthropic Claude、Hugging Face、LangChain、LlamaIndex、vLLM、Ollama、Langfuse、sentence-transformers","industries":"銀行・保険、法務・コンプライアンス、人事・社内業務、プロフェッショナルサービス","note":""},{"title":"AIエージェントと自動化","subtitle":"AIが自律的に計画を立て、システムを連携しながら複数ステップのワークフローを実行・調整する。","th1":"能力","th2":"定義","th3":"代表的な活用例","rows":[{"col1":"マルチステップワークフロー自動化","col2":"Advanced RAG技術により、社内文書、業務プロセス、データベース、独自ナレッジベースを横断して高精度な回答を生成します。回答根拠の追跡(Audit Trail)にも対応し、ハルシネーションを抑制します。"},{"col1":"ツール利用とAPIオーケストレーション","col2":"AIエージェントが適切なタイミングで適切なツールを呼び出し(データベース検索、銀行API呼び出し、レポート生成など)、レガシーシステムとAIを連携させる。"},{"col1":"ヒューマン・イン・ザ・ループワークフロー","col2":"リスクの高いステップでは人間の承認が必要となる設計で、AIエージェントは自動処理部分を担当し、閾値を超える意思決定は人間がレビュー・コントロールする。AIガバナンスにおけるヒューマンオーバーサイト要件に対応する。"},{"col1":"AI支援ソフトウェア開発","col2":"マルチエージェントによるソフトウェア開発ライフサイクル支援(要件分析、コード生成、レビュー、テスト、CI/CD)。React Plusはこの仕組みで自社のデリバリーを運用しつつ、顧客にも展開している。"}
8447],"techStack":"LangGraph、CrewAI、Agno、n8n、Model Context Protocol、Claude Code SDK、OpenAI API、Claude API、Gemini APIなどのAIエージェント/ワークフロー/LLM連携技術スタック","industries":"銀行・フィンテック、保険、物流、人事・バックオフィス、ソフトウェア開発","note":""},{"title":"AIエージェント・オートメーション","subtitle":"文書データのデジタル化および標準化(OCR・構造解析・正規化)","th1":"能力","th2":"定義","th3":"代表的な活用例","rows":[{"col1":"多言語OCR(日本語・ベトナム語・英語対応)","col2":"画像・PDF・スキャンからのテキスト抽出(漢字・ひらがな・カタカナ対応)。KYC書類、請求書、契約書、申請フォームなどを処理し、スマホ撮影など低品質画像にも対応する。","col3":""},{"col1":"文書構造解析","col2":"AIエージェントが適切なツールや他のエージェントと連携しながら、データ検索、API実行、レポート生成などの業務を自律的に実行します。また、既存のレガシーシステムとAIを連携させ、業務全体の自動化を実現します。","col3":""},{"col1":"eKYCおよび本人確認","col2":"マイナンバーカード・パスポート・本人確認書類の自動認識。情報抽出、リアルタイム検証・照合を行い、迅速な顧客オンボーディングを支援する。","col3":""},{"col1":"下流システム向けデータ正規化","col2":"ドキュメントから生データを抽出し、クリーンな構造化データへ変換する。コアバンキング、ERP、CRMにそのまま投入できる形式に整え、紙とデジタルシステムをつなぐ役割を担う。"}],"techStack":"PaddleOCR、Tesseract、LayoutLM、OpenCV、Hugging Face、カスタムのベトナム語・日本語OCRモデル","industries":"銀行KYC/保険/物流/バックオフィス/法務","note":""},{"title":"レガシー産業システム向け組み込みAI","subtitle":"LLM/SLMエージェントを機械や既存システムに組み込み、10〜20年前に投資されたインフラを、ハードウェアを交換することなく推論可能なシステムへと変換する。","th1":"能力","th2":"定義","th3":"代表的な活用例","rows":[{"col1":"エッジハードウェア上の組込みSLM","col2":"Phi-3、Gemma、Llama 3.2、Qwen 2.5、または業務特化型にファインチューニングしたSLMを、Raspberry Pi、NVIDIA Jetson、Intel NUCなどのエッジデバイス上にデプロイします。完全オフラインで動作し、データはデバイス外に出さないため、日本企業のセキュリティ要件に対応します。","col3":""},{"col1":"レガシーシステムに組み込まれたAIエージェント","col2":"エージェントは既存システムとオペレーターの間の中間レイヤーとして機能する。ログを読み取り、機械の状態を理解し、自然言語でアラートや提案を提示する。既存のハードウェアや業務プロセスは変更しない。","col3":""},{"col1":"オペレーター向け音声・マルチモーダルインターフェース","col2":"オペレーターが日本語・ベトナム語・英語で機械に質問できる仕組みを提供する(例:「機械3はなぜ遅いのか?」「昨日の生産ロットに不良はあったか?」)。エージェントがログを検索・分析し回答することで、従来の古いHMIインターフェースをAI対話型インターフェースに置き換える。","col3":""},{"col1":"オンデバイス予知保全","col2":"エッジデバイス上で動作する小型モデルにより、振動・温度・電流・機械音を分析し、故障を早期検知して停止前に保守を提案する。推論はすべてローカルで実行され、データは外部に送信されない。"},{"col1":"産業プロトコル統合","col2":"REST、MQTT、OPC-UA、Modbusなどの一般的なプロトコルを通じて産業制御システムと統合し、AIレイヤーをPLC、SCADA、SISと接続する。リアルタイム制御がPLCレイヤーに深く関わる場合は、産業オートメーション専門パートナーと連携し、安全規格への準拠を確保する。"}
8447],"techStack":"Phi-3、Gemma、Llama 3.2、Qwen 2.5などのSLM、カスタムファインチューニング、llama.cpp、Ollama、ONNX Runtime、TensorFlow Liteを活用し、Raspberry Pi、NVIDIA Jetson、Intel NUCなどのエッジデバイス上で動作させる。さらにOPC-UA、MQTT、Modbusなどの産業プロトコルブリッジを通じて既存の産業システムと連携する。","industries":"日本の製造業/物流・倉庫/産業IoT/レガシーシステムのモダナイゼーション/品質管理","note":"","context":"組込みソフトウェアは過去30年間、日本の産業を支えてきました。機械に組み込まれることで、ハードウェアを“ダム”からインテリジェントな設備へと進化させてきました。次のトレンドはAIブレインの組込みです。SLMおよびエージェントをエッジハードウェア上で稼働させ、既存インフラに接続することで、既存設備に推論・対話・自動化の能力を付与します。"},{"title":"AIデプロイメントおよびプラットフォームエンジニアリング","subtitle":"AIモデルを本番環境へ展開し、クラウド・オンプレミス・エッジに対応しながら、継続的なMLOps運用を実現する。","th1":"能力","th2":"定義","th3":"メリット","rows":[{"col1":"クラウドおよびハイブリッド環境へのデプロイ","col2":"AWS、Azure、GCP、またはハイブリッド環境での導入に対応し、マネージドサービスやオートスケーリングを活用して、実際のワークロードに応じたコスト最適化を実現する。"},{"col1":"オンプレミスおよびプライベートAI","col2":"AIスタック全体を顧客のオンプレミス環境で運用し、FISCやJ-SOXなど日本の銀行・保険業界の厳格なデータセキュリティ要件に対応する。"},{"col1":"MLOpsおよびモデルライフサイクル管理","col2":"AI向けCI/CDパイプライン、モデルのバージョン管理、実験トラッキング、A/Bテストを整備し、各モデルのデプロイ時に評価とロールバック手順を明確化する。"},{"col1":"本番モニタリングおよびドリフト検知","col2":"パフォーマンスを継続的に監視し、データドリフトやモデルドリフトを検知、メトリクス低下時には自動再学習を行い、AIの品質を長期的に維持する。"}],"techStack":"Kubernetes、Docker、MLflow、Kubeflow、Apache Airflow、Terraform、ArgoCD、Prometheus、Grafana、Evidently AI","industries":"AWS、Azure、GCP、プライベートクラウド、オンプレミス、モバイル/エッジ環境","note":"","industriesLabel":"環境"}],"footer":"MLとデータサイエンスの強固な能力は、すべてのエンタープライズAIアプリケーションの前提条件である。さらに、デプロイメントおよびMLOpsの能力が、AIが実際にプロダクションで稼働できるかどうかを左右する決定要因となる。"}},"coreValueServices":{"hero":{"label":"サービス・金融","title1":"金融業界向けAI","desc":["React Plusは、日本の金融顧客向けにAIを統合したSaaSプラットフォームを設計・開発・運用しています。業務課題の整理からシステムアーキテクチャ設計、AI統合、長期運用までフルサイクルで対応しています。","日本における当社の戦略的パートナーはMILIZE(Milize.co.jp)である。同社はフィナンシャルAIエンジニアリングのパイオニアであり、AI・フィンテック・ビッグデータを活用してユーザー視点から金融サービスの再構築を行っている。MILIZEの顧客には三菱UFJ信託銀行、ソニー銀行、あおぞら銀行、横浜銀行をはじめ、日本のメガバンクが含まれる。","React Plusは、このエコシステムにおける複数のプロダクション製品の技術パートナーとして位置付けられています。担当領域は、バンキングオペレーション、リテールファイナンス、レンディングプラットフォーム、投資管理まで多岐にわたります。","当社はMILIZEとも連携し、React Plusが開発したフィンテック製品を日本の顧客へ展開している(TFA Alternative Data AI Scoringを参照)。また、日本およびベトナムにおけるAI/フィンテック企業とのジョイントベンチャーも推進している。"]},"trackRecord":{"label":"日本固有仕様","title":"日本のフィンテック向けAI開発における特有の課題","desc":"日本のフィンテックには、他地域と比べて明確に異なる制約や要件があります。React Plusはこれらの領域に長年関わり、実務として対応してきました。代表的なポイントは以下の通りです。","items":[{"title":"レガシーコアバンキングシステム","desc":"日本の多くのコアバンキングは10〜20年前に構築されたインフラ上で稼働しており、現代的なREST APIを持たない。そのためAI連携には、SOAP、バッチファイル、レガシーメッセージキューを処理する中間レイヤーが必要となる。"},{"title":"個人データに対する厳格なセキュリティ要件","desc":"APPIおよび銀行内部規定により、顧客データは日本国外へ持ち出せない。そのためAIデプロイメントはオンプレミスまたは日本国内クラウドに限定され、米国・欧州の外部APIモデルは利用できない。"},{"title":"日本特有の文書","desc":"日本語の文書には漢字・ひらがな・カタカナが混在しており、財務報告書や契約書は伝統的なフォーマットで作成される。そのためOCRおよびNLPには、日本語向けにファインチューニングされた専用モデルが必要となる。"},{"title":"リスク回避志向の文化","desc":"財務リスクを伴う意思決定にはヒューマン・イン・ザ・ループが必須であり、多段階の承認プロセスが必要となる。顧客資金に影響する判断において、AIが自律的に意思決定を行うことは認められない。"},{"title":"多段階承認ワークフロー","desc":"日本の金融機関における社内承認プロセスは他国よりも複雑であり、AIエージェントはその承認構造を理解し、遵守する必要がある。"}]},"capabilities":{"label":"ユースケース","title":"実装済みのAIフィンテックユースケース","desc":"React Plusが実際のプロダクションで対応ã
8447—たユースケース(バンキング、レンディング、キャピタルマーケット、不動産ファイナンス)","techLabel":"技術","appliedLabel":"適用:","items":[{"title":"リアルタイムでの不正取引検知","desc":"ディープラーニングを用いてリアルタイムで取引を分析し、不正行為を検知する(不審な送金、疑わしいログイン、繰り返し発生する不正パターンなど)。","tech":"ディープラーニング、異常検知、リアルタイムスコアリング","applied":"バンキングコア、ペイメントプラットフォーム、電子ウォレット"},{"title":"株価変動の予測","desc":"過去の価格データに対するディープラーニングと、ニュース・レポートに対するNLPを組み合わせて、短期〜中期の株価トレンドを予測する。","tech":"ディープラーニング、NLP、時系列予測","applied":"インベストメントプラットフォーム、証券会社"},{"title":"非伝統的データを用いた信用スコアリング","desc":"クレジットビューロー以外のデータ(公共料金の支払い履歴、オンライン購買行動、行動パターンなど)を活用して信用力を評価し、信用履歴のない層にも評価対象を拡大する。","tech":"MLスコアリング、オルタナティブデータ、フィーチャーエンジニアリング","applied":"消費者向け融資、BNPL、マイクロファイナンス"},{"title":"パーソナルファイナンスアドバイザーチャットボット","desc":"ユーザーの支出管理、予算作成、金融商品の理解を支援するAIアシスタント。ユーザーの取引データに基づいたパーソナライズされたコンテキストで自然言語対話を行う。","tech":"LLM、RAG、パーソナライゼーション","applied":"リテールバンキングアプリ、フィンテックアプリ"},{"title":"ポートフォリオの最適化","desc":"強化学習を用いて投資家の目標に応じたリスクとリターンのバランスを最適化し、市場状況や個人のリスクプロファイルに応じて資産配分を調整する。","tech":"強化学習、ポートフォリオ最適化","applied":"ウェルスマネジメント、ロボアドバイザー"},{"title":"P2Pレンディングにおけるデフォルトリスクの予測","desc":"収入、借入履歴、返済行動、マクロ経済データなどのマルチファクターに基づいて不良債権リスクを分析し、金利設定や承認判断に活用する。","tech":"リスクモデリング、マルチファクター分析","applied":"P2Pレンディングプラットフォーム、オンラインレンダー"},{"title":"財務報告書からの情報抽出","desc":"企業レポートを自動で読み取り、売上・EBITDA・負債比率などの主要財務指標を抽出し、定性的内容を要約してクエリ可能なデータとして構造化する。","tech":"NLP抽出、ドキュメントAI、要約","applied":"エクイティリサーチ、クレジットアナリシス、M&Aアドバイザリー"},{"title":"不動産の自動評価","desc":"市場データ、物件特性、立地、類似取引トレンドに基づいて不動産価値を推定し、評価を支援するために信頼区間付きで出力する。","tech":"ML回帰、フィーチャーエンジニアリング、マーケットデータ","applied":"モーゲージオリジネーション、不動産プラットフォーム、アセットアプレイザル"}]},"faq":{"label":"よくある質問(FAQ)","title":"日本でAIフィンテックを開発する際によくある質問","desc":"日本の金融機関において、CTO、リスク責任者(Head of Risk)、イノベーション責任者(Head of Innovation)がAIベンダー評価時に一般的に行う質問を整理したもの。回答は、React Plusが日本市場で長年にわたりフィンテックAIを導入してきた実務経験に基づく。","items":[{"question":"AIモデルは規制当局に対して意思決定を説明できるか?","answer":"当社のすべてのプロダクションモデルには、意思決定の監査証跡と説明可能性レイヤーが実装されています。従来の機械学習モデルではSHAPやLIMEを用いて各特徴量の寄与を説明します。LLMについては、プロンプト、コンテキスト、レスポンスおよび中間推論ステップを記録しています。\\n日本のフィンテックでは、これはオプションではなく標準です。JFSAや銀行の内部規制により、顧客からの問い合わせや監査対応の際にトレーサビリティが必須とされています。"},{"question":"顧客データが日本国外に出ないことをどのように担保するか?","answer":"処理は3つのレイヤーで構成されます。\\nインフラ層では、顧客のデータセンター内オンプレミス、または日本リージョンのプライベートクラウド(AWS Tokyo、Azure Japan East、GCP Tokyo)にデプロイします。\\nモデル層では、Llama、Qwen、Mistral、GPT-OSSなどのオープンソースLLMを顧客環境内でセルフホストし、機密データに対してはOpenAIやAnthropicなどのクロスボーダーAPIは使用しません。\\nデータ層では、保存時・転送時ともに暗号化し、ロールおよび組織単位でアクセス制御を行い、個人データへのアクセスはすべて監査ログに記録してAPPI要件に対応します。\\nこれらはReact Plusの中核的な強みであり、データ主権要件を持つ顧客向けのローカルLLM/SLMデプロイ能力として位置付けられています。"},{"question":"モデルの誤った意思決定により損失が発生した場合、責任は誰が負うのか?","answer":"AIは意思決定を支援するものであり、最終判断を代替するものではありません。融資、取引拒否、アカウントロック、不正検知などの金融リスク領域では、各ビジネスクリティカルな意思決定に対して責任者を明確にするための承認ゲートを設けています。\\nAIはレコメンデーションと信頼度スコアを提供し、銀行担当者がレビュー・承認を行います。最終的な意思決定はAIの入力情報と人間の承認結果の両方を含めてログ化され、監査および紛争解決に活用されます。"},{"question":"REST APIがない場合、レガシーコアバンキングとどのように統合するのか?","answer":"これは日本では一般的なçŠ
8447¶æ³ã§ã€å¤šãã®ã‚³ã‚¢ãƒãƒ³ã‚­ãƒ³ã‚°ã‚·ã‚¹ãƒ†ãƒ ã¯10〜20年以上レガシー基盤上で稼働しています。\\n当社のアプローチは、プロトコル変換のためのアダプタ層を構築することです(SOAP→REST変換、バッチファイル処理、メッセージキューリスナーなど)。AIコンポーネントはこのアダプタの背後に配置され、標準化されたインターフェースを通じて通信します。コアバンキング側の変更は不要です。\\nまた、決済処理やEODレポートなどで一般的なバッチ処理については、AIはスケジュールに従って実行され、既存のコアバンキングが扱えるファイルフォーマットで下流システムへ結果を出力します。"},{"question":"顧客の社内データを用いてファインチューニングを行うことは可能か?","answer":"はい。特に財務レポート分析、日本語契約書の読解、特定製品に特化したカスタマーサービスなどのドメイン特化タスクに適しています。\\nファインチューニングは顧客のインフラ上で実行され、学習データおよびモデルの重みは組織外に出ません。出力されるモデルは顧客専用であり、他の顧客と共有されません。\\n一般的なアプローチとしては、LlamaやQwenなどのオープンソースモデルをベースに、LoRAまたはQLoRAでオンプレミスGPU上でファインチューニングを行い、vLLMやOllamaを用いてデプロイします。"},{"question":"PoCからプロダクションまでの期間は通常どのくらいか?","answer":"データの複雑さや既存システムとの統合レベルによって異なりますが、一般的なパターンは以下の通りです。\\nPoC(実現可能性検証):4〜6週間。サンプルデータ上で動作するプロトタイプと評価レポートを成果物とする。\\nハードニングおよびパイロット:2〜3ヶ月。本番環境に近いインフラへ統合し、限定スコープ(1支店、特定顧客セグメントなど)で運用検証を行う。\\n本番展開(プロダクションロールアウト):1〜3ヶ月(規模による)。負荷テスト、セキュリティレビュー、規制対応チェック、ロールバック計画を含む。\\n典型的なフィンテックプロジェクトでは、PoCから本番まで合計6〜12ヶ月程度となります。"},{"question":"JFSA(金融庁)と直接連携して対応することはあるか?","answer":"いいえ。React Plusはエンジニアリングベンダーであり、規制当局との関係において顧客の代替となるものではありません。顧客である金融機関がJFSAやFISCとの対応責任および対話権限を保持します。\\n当社の役割は、顧客が規制対応を行う際に利用できる技術ドキュメント、監査証跡、説明可能性に関する証拠を提供することです。必要に応じて、監査や規制当局とのミーティングにおいて技術的支援を行いますが、正式な代表としての立場を取ることはありません。"}]},"cta":{"title1":"金融向けAI","title2":"ここから始める","desc":"業界の課題を共有してください。最適なアーキテクチャとアプローチをご提案します。","btnPrimary":"打ち合わせを設定する","btnSecondary":"すべてのソリューションを見る →"}},"coreValueSolutions":{"hero":{"label":"ソリューション","title1":"10個のAIソリューション","title2":"日本企業向け","desc":"各ソリューションは特定の課題を解決し、明確なスコープを持ち、プロダクション環境で稼働可能です。"},"catalog":{"scopeLabel":"主な支援内容:","fitLabel":"適用される場合:","items":[{"title":"AI戦略・アーキテクチャ設計","desc":"◆ 企業のデータ・AI活用状況を評価し、優先的に取り組むべき課題を明確化します。さらに、AI活用に適したデータ基盤の整備方針とロードマップを策定し、実運用を見据えたAIシステムアーキテクチャを設計することで、AI導入をスムーズに推進できる環境を構築します。","scope":["AI活用に向けたデータ基盤評価・整備:既存データの品質・構造・活用可能性を評価し、AI活用に必要なデータ基盤の整備方針とロードマップを策定します。","優先ユースケースの選定:ROIや具体的なビジネス課題をもとに、AI・データ活用による効果が高いテーマを選定し、優先順位を整理します。","システムアーキテクチャ設計:技術スタック、データ連携基盤、データ・ナレッジ基盤、AI基盤、監視・運用管理を含む全体アーキテクチャを設計します。","ロードマップ策定:データ基盤の整備とAI開発を並行して推進できるよう、フェーズごとの実行計画を策定します。","自社開発・外部サービス活用方針の策定:AI・データ基盤を構成する各要素について、自社開発と外部ソリューションを比較・評価し、コスト対効果を踏まえた最適な選択肢を提案します。"],"fit":"適用ケース:AI活用をどこから始めるべきか明確でない企業や、自社データの活用状況・AI導入の実現可能性を把握したい企業に適しています。"},{"title":"文書理解・情報抽出AI(Document Intelligence)","desc":"◆ 紙書類や帳票、申請書、画像データã
8447ªã©ã‚’AIで自動的に読み取り、業務で活用しやすいデータへ変換します。ERPやCRMなどの業務システムとも連携でき、手作業による入力業務を大幅に削減します。","scope":["多言語OCR:日本語、ベトナム語、英語をはじめとする多言語文書から、テキストやデータを高精度に抽出します。印刷文字だけでなく、手書き文字の認識にも対応しています。","文書構造解析:帳票・表・グラフ・複雑なレイアウトを解析し、財務報告書や申請書などから必要な情報を抽出・構造化します。","eKYCソリューション:身分証明書やパスポートなどから情報を自動抽出し、リアルタイムで照合・本人確認を行います。","データ標準化(Data Normalization):データの加工・クレンジング・標準化を行い、ERPやCRMなどの業務システムで活用しやすい形式へ変換します。","高精度な認識結果:各データ項目に対して信頼度スコア(Confidence Score)を表示し、認識精度が低い項目を自動的に検知・通知します。"],"fit":"適用ケース:申請書、請求書、契約書、伝票などを大量に処理している企業や、紙書類のデジタル化・業務効率化を推進したい企業に適しています。"},{"title":"社内ナレッジ活用AI(Enterprise Knowledge)","desc":"◆ 社内に蓄積された文書、データベース、業務データを自然言語で検索・活用できるAIナレッジシステムです。社内情報に詳しい担当者へ質問するような感覚で、必要な情報にすばやくアクセスできます。","scope":["多様なデータソース連携:PDF、Word、SharePoint、Confluenceなどの社内文書に加え、データベースやデータウェアハウスなどの業務データを統合し、社内ナレッジベースを構築します。","根拠付き回答:複数の情報ソースから回答を自動生成し、参照元となる文書やデータを明示します。回答の根拠を確認できるため、ユーザーは内容の妥当性を検証できます。","柔軟なシステム連携:専用のチャット画面として利用できるほか、SlackやMicrosoft Teamsなどのコミュニケーションツールへの組み込み、各種システムとのAPI連携にも対応します。","セキュリティ・アクセス制御:部門・役職・組織階層に応じてアクセス権限を適切に管理し、企業の情報ガバナンス要件に対応します。","更新・モニタリング:新規文書やデータベースの更新内容を自動で同期します。さらに、回答品質を評価する仕組みを組み込むことで、AIによるハルシネーション(誤生成)を抑制し、継続的な品質管理を実現します。","コードベースの引き渡しとナレッジトランスファー"],"fit":"適用ケース:社内文書や業務データが複数のシステムに分散し、情報検索やレポート作成に時間がかかっている企業に適しています。必要な情報をすばやく検索・活用できる環境を実現します。"},{"title":"AI予測・データ分析システム(Applied ML)","desc":"◆ Machine Learning/Deep Learningモデルを開発し、本番環境で安定運用できる形で実装・展開します。大規模かつ複雑なデータ課題に対し、高精度かつ信頼性の高いAIシステムを提供します。","scope":["本番運用向けAIモデル開発:Credit Scoring(信用スコアリング)、Fraud Detection(不正検知)、Forecasting(需要・売上予測)、Anomaly Detection(異常検知)、Recommendation(レコメンド)など、業務要件に応じたML/DLモデルを開発します。","データパイプライン・特徴量管理基盤(Feature Store):拡張性と保守性を考慮したデータ基盤を設計・構築し、継続的なAI活用を支える環境を整備します。","自動評価基盤:本番展開前にモデル品質を自動評価し、業務要件に応じた精度基準を満たしているかを継続的に検証します。","モデル監視・ドリフト検知:モデルのパフォーマンスを継続的に監視し、Data Drift、Concept Drift、Model Driftが発生した際には自動で通知します。","再学習パイプライン(Retraining Pipeline):本番環境で精度や性能の低下を検知した際、自動的に再学習を実行し、モデル品質を継続的に維持します。"],"fit":"適用ケース:十分な履歴データを保有し、PoC(概念実証)段階を超えて、本番環境で継続的に運用できるAIシステムの構築を目指す企業に適しています。"}
8447,{"title":"業務自動化AIエージェント","desc":"◆ AIエージェントを活用し、複雑な業務プロセスを自動化します。文脈を理解しながら自律的に判断・計画・実行を行い、複数のシステムやAIエージェントと連携します。また、重要な意思決定には人による最終承認(Human-in-the-Loop)を組み込むことで、安全性と柔軟性を両立した業務運用を実現します。","scope":["カスタムAIエージェント:企業固有の業務フローや運用ルールに合わせて、専用のAIエージェントを設計・開発します。","メモリ管理:短期・中期・長期メモリを活用し、業務コンテキストや顧客情報、取引履歴などを継続的に保持・活用できる仕組みを構築します。","システム連携:AIエージェント同士の連携(A2A)やModel Context Protocol(MCP)、APIなどの標準技術を活用し、さまざまな業務システムとの連携を実現します。","Approval Gates & Safety:重要な意思決定ポイントにおいて人による承認プロセスを組み込みます。また、セキュリティ対策やガードレールを実装し、安全かつ信頼性の高い運用を実現します。","Audit Trail:AIエージェントの行動履歴、意思決定プロセス、実行ログを記録・追跡し、監査、品質保証、コンプライアンス、AIガバナンス要件への対応を支援します。","管理画面(Admin Panel):運用状況やパフォーマンスを可視化し、監視・管理・運用介入を容易に行える環境を提供します。"],"fit":"適用ケース:複数ステップにわたる複雑な業務プロセスを運用しており、従来のRPAでは対応が難しい判断業務や例外処理を含む業務の自動化を目指す企業に適しています。"},{"title":"PC操作AIエージェント(Computer Use)","desc":"◆ AIエージェントがユーザーインターフェースを理解し、マウスやキーボードを操作することで業務を自動化します。APIを持たないレガシーシステムを含め、Webアプリケーションやデスクトップアプリケーション上で人が行う操作を自動実行できます。","scope":["GUI Automation:AIエージェントが画面を認識・分析し、マウスやキーボードを操作することで、APIを利用せずにWebアプリケーションやデスクトップアプリケーション上の作業を自動化します。","画面理解(Vision-based Understanding):Vision Language Model(VLM)を活用し、ボタン、フォーム、表、画面レイアウトや表示内容を理解したうえで、適切な操作を自律的に判断します。","タスク計画・実行(Task Planning & Execution):複雑な業務タスクを複数の実行ステップに分解し、自律的に計画・実行します。実行に失敗した場合は原因を特定し、自動的に再試行やリカバリーを行います。","承認フロー・安全管理(Approval Gates & Safety):重要な操作には人による承認プロセス(Human-in-the-Loop)を組み込みます。また、実行範囲を制限するサンドボックス環境を設けることで、安全な運用を実現します。","監査ログ(Audit Trail):エージェントの操作履歴(スクリーンショット・ログ)や意思決定プロセスを記録し、監査、検証、コンプライアンス対応を支援します。","ドキュメント作成とナレッジトランスファー"],"fit":"適用ケース:APIを提供していないソフトウェアやレガシーシステムを利用している企業に適しています。従来のRPAでは対応が難しい例外処理や判断業務についても、AIの推論能力を活用して柔軟に自動化します。"},{"title":"社内専用AI・プライベートLLM構築","desc":"◆ LLM、VLM、SLMなどの生成AIモデルおよびAI基盤を、オンプレミス環境またはプライベートクラウド上に構築・運用します。機密情報を組織外へ送信することなく、安全にAIを活用できる環境を実現します。","scope":["Self-hosted LLM導入:Llama、Qwen、DeepSeek、Mistralなどの生成AIモデルをオンプレミス環境またはプライベートクラウド上に導入し、安全かつ安定した運用環境を構築します。","Model Fine-tuning:企業独自のデータやナレッジを活用してモデルを学習・チューニングし、 業務要件に最適化されたAIを構築します。","推論基盤最適化(Model Serving):vLLM、TGI、Ollamaなどの推論基盤とGPUリソースを最適化し、本番運用に求められる応答性能と安定性を実現します。","セキュリティ管理(Security):アクセス制御、利用制限(Rate Limiting)、監査ログ(Audit Log)などの仕組ã
8447¿ã‚’導入し、社内AI基盤全体のセキュリティとガバナンスを強化します。","運用コスト最適化:Quantization、Batching、Cachingなどの技術を活用し、ハードウェア利用効率を高めながら推論コストを削減します。","モデルライフサイクル管理(Lifecycle Management):Fine-tuning、Serving、A/B Testing、Version管理、Rollbackを含むモデル運用全体を一元管理します。"],"fit":"適用ケース:機密データを外部へ送信できない企業・組織や、厳格な情報セキュリティ要件を持つ企業に適しています。また、大規模利用時のコストを管理したい企業にも適しています。"},{"title":"製造業・設備向け組込みAI","desc":"◆ 10〜20年前に導入された既存の産業機械や設備にAIを組み込み、ハードウェアを更新することなく分析・予測機能を追加します。既存設備を活かしながら、スマートファクトリー化や設備運用の高度化を実現します。","scope":["エッジコンピューティング:Raspberry Pi、NVIDIA Jetson、Intel NUCなどのエッジデバイスを既存設備へ組み込み、クラウドを介さず現場でリアルタイム処理を実現します。","業務特化型SLM(Domain-specific SLM):Phi-3、Gemma、Llama 3.2、Qwen 2.5などの小規模言語モデル(SLM)を業務用途向けに最適化し、デバイス上で高速に実行します。","分析AIエージェント(Analytical AI Agent):設備ログやセンサーデータをリアルタイムで分析し、異常の兆候や設備状態を検知するとともに、その原因を分かりやすく可視化します。","予知保全(Predictive Maintenance):振動、温度、電流などの物理データを収集・分析し、故障や異常の兆候を早期に予測することで、保守業務の効率化を支援します。","マルチモーダルインターフェース(音声・テキスト):日本語・ベトナム語・英語など多言語に対応し、音声やテキストによる直感的な操作を実現します。","産業標準プロトコル対応:OPC-UA、MQTT、Modbusなどの標準プロトコルに対応し、既存設備や制御システムとスムーズに連携します。"],"fit":"適用ケース:既存設備や製造ラインを活用しながら、AIによる分析・予測機能を追加したい企業に適しています。設備を大規模に更新することなく高度化を実現でき、リアルタイム制御が求められる現場にも対応可能です。"},{"title":"AIソリューションSaaS・プロダクト開発","desc":"◆ 既存システムにAI機能を追加するのではなく、AIを中核としたSaaSおよびプロダクトをゼロから設計・開発します。AIを製品価値の中心に据えることで、新たなユーザー体験と業務変革を実現します。","scope":["AIソリューションアーキテクチャ:AIを単なる機能として追加するのではなく、AIをシステムの中核として設計します。データ処理から意思決定、ユーザーとの対話まで、AIがシステム全体を支える構成を実現します。","自律型AIシステム(Agentic System):従来のルールベースのシステムから、AIが状況を分析し、自律的に判断・実行するシステムへ進化させます。","継続学習・継続改善(Continuous Learning & Self-improvement):ユーザーとの利用履歴やフィードバックを活用し、AIが継続的に学習・改善できる仕組みを構築します。","次世代UI/UX(Next-generation UI/UX):従来のメニュー操作中心のUIから、ユーザーの意図を理解して最適な操作を支援するAI主導型UIへ進化させます。","本番運用対応SaaS・プロダクト基盤(Production-grade SaaS & Product):認証、課金・サブスクリプション管理、監視、評価基盤、ガードレール、マルチテナント対応ã
8447ªã©ã€æœ¬ç•ªé‹ç”¨ã«å¿…要な機能を備えたプロダクトを構築します。","下流システム連携用API"],"fit":"適用ケース:既存製品へAI機能を追加するのではなく、AIを前提として設計されたAIソリューションSaaSやプロダクトを新規開発したい企業に適しています。"},{"title":"AI活用型ソフトウェア開発","desc":"◆ AIを活用した先進的な開発プロセス(Spec-driven/Intent-driven)を採用し、企業向けソフトウェアを開発します。","scope":["End-to-Endソフトウェア開発:企業の要件に応じたカスタムソフトウェアを企画・設計・開発します。AIを活用したシステムはもちろん、従来型の業務システム開発にも対応します。","AI活用型開発ライフサイクル(AI-assisted Lifecycle):要件定義から設計、実装、テスト、デプロイ、保守運用まで、開発プロセス全体にAIを活用し、生産性と品質を向上させます。","成果物標準化(Codebase Standardization):ソースコードに加え、設計書、技術文書、テスト結果などを体系的に整備し、保守しやすい形で納品します。","品質レビュー体制:すべてのソースコードおよび業務ロジックについて、コードレビュー工程でシニアエンジニアによるレビューを実施し、品質を確保します。","運用自動化:CI/CDパイプラインを構築し、開発からデプロイ、運用までを自動化することで、継続的な開発・運用を実現します。","OPC-UA、MQTT、Modbusによる産業システム連携"],"fit":"適用ケース:開発期間やコストを抑えながら、高品質なソフトウェアを効率的に開発したい企業に適しています。"}]},"process":{"label":"プロセス","title":"導入プロセス/実装プロセス","desc":"各フェーズに品質ゲートを設けた4段階プロセスです。各段階で発生した問題はレポートされ、次のフェーズに進む前に解決されます。","items":[{"title":"ディスカバリー&フレーミング","desc":"課題の定義、データ評価、ROIおよび運用制約の特定を行い、2〜4週間でターゲットアーキテクチャを確定する。","gate":"データが課題解決に十分な品質であり、ROIと制約条件が明確であることを前提とします。不十分な場合は、その旨を報告し、データ整備、スコープ調整、またはデータ依存度の低い代替アプローチを提案します。"},{"title":"アーキテクチャ設計","desc":"特定の課題に対するAIアーキテクチャを設計します。詳細な技術仕様を作成し、ビルドかバイの判断を行い、既存システムとの統合計画も策定します。","gate":"アーキテクチャはシニアアーキテクトと顧客の両方でレビュー・承認される。データ、統合、または法規制の制約にギャップが見つかった場合は、ディスカバリーに戻って再整理する。"},{"title":"構築と評価","desc":"エンジニアはAIエージェントの支援を受けてモデルとシステムを構築し、コードはシニアによるレビューを経てマージされる。各バージョンはアーキテクチャで定義されたメトリクス目標と比較する自動評価パイプラインを通過する。","gate":"評価後にメトリクスが目標を達成していれば次に進みます。未達の場合は原因を分析し、データ不足であればDiscoveryへ戻し、アプローチの問題であればArchitectureへ戻し、微調整が必要であればBuildフェーズで継続的に改善します。"},{"title":"デプロイとガバナンス","desc":"顧客環境への本番システムをデプロイし、モニタリング、アラート、高リスク意思決定の承認ワークフローを設定します。監査証跡は初期段階から構築されます。","gate":"システムは初期2〜4週間で安定稼働し、SLAに基づく稼働率およびプロダクション指標が評価結果と一致することを確認する。基準を満たさない場合は、前バージョンへロールバックし、Buildフェーズで準備したランブックに従って対応する。"}]},"engagement":{"label":"エンゲージメント(関与・契約形態)","title":"協業形態","desc":"短期スプリントから長期専任チームまã
8447§ã®4つの提供形態","items":[{"title":"戦略スプリント","desc":"AIでどのユースケースを優先すべきか明確でない顧客向けに、2〜4週間の短期契約を提供します。現状分析、実現可能性の評価、アーキテクチャ提案、ロードマップ策定を行い、経営層が次の投資判断を行える詳細なアセスメントレポートで完了します。"},{"title":"PoCから本番(Production)まで","desc":"特定のソリューションを段階的に導入します。まず4〜6週間のPoCで実現可能性を検証し、その後、実ユーザーでのPilotを実施し、最終的にProductionへ展開します。各フェーズ終了時に実績をもとに継続判断を行います。すでに課題は特定されているが、大規模投資前にROIを確認したい組織に適しています。"},{"title":"専任AIスクワッド","desc":"顧客チームに常駐する形で、四半期または年間契約の長期専任チームを提供します。このチームは、個別プロジェクト単位ではなく、顧客が導入するAIソリューション全体をエンドツーエンドでオーナーシップを持って担当します。AI戦略を長期的に推進し、安定した実行体制を必要とする組織に適しています。"},{"title":"イネーブルメントプログラム(導入支援プログラム)","desc":"顧客の技術チーム向けにトレーニングおよびコーチングプログラムを提供します。前述の3つのモデルとは異なり、React Plusが実装を行うのではなく、顧客チームが自ら実行できるように支援します。プログラム終了後は、社内チームがベンダーに依存せずAI駆動開発を運用できる状態を目指します。"}]},"cta":{"title":"どこから始めるべきか?","desc":"ディスカバリーコール(30分):課題の特定、アプローチ提案、スコープ見積もり","btnPrimary":"打ち合わせを設定する","btnSecondary":"フィンテックソリューション"}}}'),xO={title:"ニュース",subtitle:`React Plusの最新の活動、イベント、実績、重要なお知らせを迅速にお届けし、
8448従業員、お客様、パートナーとの繋がりを深め、企業文化を共有するためのページです。`,sort:"並び替え",loading:"読み込み中...",empty:"ニュースがありません",loadMore:"もっと見る",categories:{All:"すべて",Event:"イベント",News:"ブログ",Charity:"ボランティア",Culture:"文化",Career:"キャリア知識",Company:"会社",AiBlog:"AIコラム"}},AO={mainHeading:"お問い合わせ",subheading:"以下のフォームをご利用いただき、React Plusへのご質問、ご相談、または協業に関するお問い合わせをお送りください。",description:"内容を確認の上、担当者より順次ご連絡いたします。",learnMore:"",features:{title:"",feature1:"",feature2:"",feature3:"",feature4:""},trusted:{title:"数百社のパートナー企業に信頼されています"},phoneLabel:"お問い合わせ電話番号",emailLabel:"お問い合わせメール",form:{companySize:"企業規模",companyName:"企業名",lastName:"姓",firstName:"名",fullName:"氏名",workEmail:"メールアドレス",phoneNumber:"電話番号",productInterest:"弊社のどの製品またはサービスにご関心がありますか。",businessNeeds:"ビジネス上のニーズや課題について、もう少し詳しく教えていただけますか?",submit:"送信",submitting:"送信中",selectPlaceholder:"ご選択ください",selectDropdownPlaceholder:"ご選択ください",lastNamePlaceholder:"姓を入力してください",firstNamePlaceholder:"お名前をご入力ください",companyNamePlaceholder:"会社名を入力してください",workEmailPlaceholder:"メールアドレスをご入力ください",phoneNumberPlaceholder:"電話番号を入力してください",businessNeedsPlaceholder:"ビジネス上のニーズや課題についてご記入ください…",errors:{required:"この項目は必須です",emailInvalid:"メールアドレスの形式が正しくありません。",emailTooLong:"メールアドレスは100文字以内で入力してください",phoneInvalid:"電話番号の形式が正しくありません。",phoneTooShort:"電話番号は10桁以上で入力してください",phoneTooLong:"電話番号は12桁以内で入力してください",nameTooLong:"名前は50文字以内で入力してください",lastNameTooLong:"姓は50文字以内で入力してください。",companyNameTooLong:"会社名は100文字以内で入力してください",businessNeedsTooLong:"内容は2000文字以内で入力してください。",submitError:"フォーム送信中にエラーが発生しました。もう一度お試しください。",emailTooShort:"メールアドレスは5文字以上で入力してください。",nameTooShort:"名前は2文字以上で入力してください",lastNameTooShort:"姓は2文字以上で入力してください。",companyNameTooShort:"会社名は2文字以上で入力してください",businessNeedsTooShort:"内容は10文字以上で入力してください"},companySizeOptions:{"1-10":"1〜10人","11-50":"11-50 人","51-200":"51-200 人","201-500":"201-500 人","500+":"500人以上"},productOptions:{aiFintechSolutions:"AI・Fintechソリューション",atobarAi:"Atobar AIについて",adHousing:"AD Housingについて",adPassport:"AD Passportについて",liveNowPayLater
8448:"Live now, Pay laterについて",recruitment:"採用情報",other:"その他"},footer:{text:"詳細については、",helpCenter:"ヘルプセンター"}},thankYou:{title:"ありがとうございます",message:"弊社の営業チームよりご連絡させていただきます。まもなくご連絡いたします。",sendAgain:"再送信"}},CO={greeting:{morning:"おはようございます。どのようなご用件でしょうか。",afternoon:"こんにちは。どのようなご用件でしょうか。",evening:"こんばんは。どのようなご用件でしょうか。"},title:"どのようなご用件でしょうか?",chips:{search:"React Plusについて",talk:"React PlusはどのようにAIを開発に活用しているのか。",research:"React PlusはどのようなAI・Fintechソリューションを提供できますか?",aiCapabilities:"AI能力",more:"React Plusは現在どのような製品を提供していますか?"},placeholders:["ご質問をご入力ください","以下のトピックから選択してください"],errors:{network:"ネットワーク接続エラーが発生しました。接続状況を確認して再試行してください。",guardrail:"コンテンツポリシーによりリクエストがブロックされました。",rateLimit:"メッセージ送信の制限に達しました。しばらくしてから再試行してください。",tokenLimit:"トークン上限に達しました。しばらくしてから再試行してください。",general:"メッセージの送信に失敗しました。もう一度お試しください。"},actions:{like:"いいね",dislike:"低評価",retry:"再試行"}},SO={copyright:"React Plus株式会社",allRights:"無断転載を禁じます"},wO={hero:{badge:"BNPLイノベーション",title:"アトバル・エーアイ",description:"次世代のクレジットスコアリングソリューション ― オルタナティブデータを基盤として構築。従来のCIC/JICCや信用履歴に依存しません。Atobar.aiはアンサンブル機械学習を用い、15以上の代替データソースから250以上の特徴量を分析し、高精度かつ公平で説明可能なクレジットインサイトをXAIにより提供します。",button1:"機能を探索",button2:"営業に連絡"},stats:{title:"主要指標",description:"1日100万件の取引を処理し、日本におけるスコア履歴の乏しい(thin-file)層を含む数百万人に、公平ã
8448ªé‡‘融機会を提供します。",approval_rate:"承認率",bad_debt_rate:"不良債権率",average_score:"TFAスコアの平均値",api_response:"API応答時間",data_features:"250以上の特徴量を分析"},journey:{title:"利用者の行動経路",description:"Atobar.aiを始めるための3ステップ"},how_it_works:{badge:"仕組み",title:"シンプル・パワフル・フェアネス",description:`中央集約型BNPL管理プラットフォーム — 早期リスク検知とユーザー体験の最適化を実現します。\r
8449あなたのオルタナティブ・フィナンシャルデータは、5つのAIエージェントによって独立かつ公平に分析・検証されます:\r
8450Data Analysis → Scoring → Fairness Check → XAI Explanation → Compliance Audit`,detailed:"Atobar.aiはオルタナティブデータを活用することで信用スコアリングの方法を変革し、従来の信用機関の枠を超えた信用力評価を実現します。AIプラットフォームは即時に意思決定を提供しながら、最高水準の精度を維持します。",button:"詳細を見る"},step1:{title:"登録",description:"2分でアカウント作成、eKYCによる本人確認。迅速・高度なセキュリティ・完全な透明性を実現します。"},step2:{title:"信用プロフィールの構築",description:"15以上のオルタナティブデータソース(公共料金、電子ウォレット、モバイル決済、ソーシャルネットワークなど)と連携し、システムが自動的に特徴量を抽出し、クレジットスコアを算出、包括的な信用プロファイルを構築します。"},step3:{title:"BNPLでのショッピング",description:"提携BNPLサービスと連携し、構築されたクレジットプロファイルに基づいて審査・承認を行い、各意思決定についてXAIによる明確な説明を提供します。"},core_values:{badge:"コアバリュー",title:"Atobar.aiが提供するもの"},individual:{title:"個人ユーザー",subtitle:"クレジットプロフィールを完全に管理・追跡できます。公平に評価され、あなたが誰であるかによって差別されることはありません。",track_credit:{title:"信用スコアの追跡と管理",description:"リアルタイムでスコアを更新する個人ダッシュボード"},ai_advisor:{title:"AIによる信用改善アドバイス",description:"支出パターンに基づくパーソナライズされた提案により、スコア改善を支援します。"},bnpl_hub:{title:"BNPLハブ",description:"すべてのBNPLサービスを一元管理"},smart_shopping:{title:"スマートショッピング",description:"BNPLの金利比較と支払い能力の算出"}},providers:{title:"BNPL提供事業者",subtitle:"サプライヤー向けのリスク評価およびポートフォリオ最適化ツールセット",risk_assessment:{title:"正確なリスク評価",description:"高精度AIモデルにより、スコアリングが薄い信用履歴(thin-file)の顧客にも対応可能です。"},early_detection:{title:"早期リスク検知",description:"90日以内の不良債権発生確率を予測します。"},portfolio:{title:"ポートフォリオ最適化",description:"高度なアナリティクスを組み合わせたインテリジェントな顧客セグメンテーション"},integration:{title:"迅速な統合",description:"完全なドキュメントを備えたRESTful APIで、1日以内に統合可能です。"}},alternative_data:{badge:"オルタナティブデータ",title:"多様なオルタナティブデータソース",description:"Atobar.aiは、15以上のオルタナティブデータソースから250以上の特徴量を分析し、包括的な信用評価を提供します。"},data_sources:{mobile_payment:{title:"モバイル決済",description:"PayPay、LINE Pay、メルペイ、楽天ペイ"},ewallet:{title:"電子ウォレット",description:"交通系ICカード(Suica、PASMO)および電子マネー(WAON、nanaco)"}
8450,ecommerce:{title:"電子商取引プラットフォーム",description:"Amazon(アマゾン)、楽天(Rakuten)、Yahoo!、メルカリ(Mercari)"},utility_bills:{title:"公共料金請求書",description:"電気、水道、ガス、インターネット、携帯電話"},banking:{title:"銀行",description:"取引履歴および貯蓄パターン"},telco:{title:"電気通信データ",description:"通信事業者からの支払い履歴および利用パターン"},rent:{title:"家賃およびサービス登録費用",description:"月額家賃、Netflix、YouTube、ジム"},subscription:{title:"ソーシャル・デジタルフットプリント",description:"Facebook、Line、Instagram、X(Twitter)での検証済み活動"}},score_classification:{title:"スコア分類",description:"オルタナティブデータに基づく信用スコアの分類 — スコアレンジとそれに対応する特典を明確に理解できます"},score:{excellent:{title:"エクセレント",range:"750-850",description:"あらゆるローンに対して最良の金利、最高のクレジットリミット、そして優遇条件を提供します。"},good:{title:"良い",range:"700-749",description:"競争力のある金利。豊富な商品ラインナップ。迅速な審査・承認。"},fair:{title:"標準",range:"650-699",description:"標準金利。平均的なクレジットリミット。通常条件。"},below_fair:{title:"低評価",range:"550-649",description:"選択肢が限定的。金利は高め。追加条件が必要です。"}},advantages:{badge:"Atobar.aiが選ばれる理由",title:"競争優位性",first_mover:{title:"コスト最適化",description:"従量課金制API、初期費用なし。日本初のオルタナティブデータ・スコアリングソリューション。"},plug_play:{title:"プラグ&プレイ",description:"既存のBNPLシステムを停止させることなく、REST APIを1日未満で統合できます。"},explainable_ai:{title:"説明可能なAI",description:"すべてのスコアにはSHAP/LIMEによる説明が付与され、ユーザーはスコアが付けられた理由を正確に理解できます。これにより、真の信頼を構築します。"},b2b_platform:{title:"B2Cプラットフォーム",description:"B2Bパートナー向けAPIとエンドユーザー向けアプリを提供し、銀行・金融機関およびエンドユーザー双方に同時に価値を創出します。"},fairness_first:{title:"フェアネス・ファースト",description:"すべての意思決定に対してバイアス検証を実施し、バッチごとにデモグラフィックパリティ監査を行うことで、差別が存在しないことを証明します。"}},features:{badge:"完全な機能",title:"詳細な機能とメリット"},detailed_features:{individual_users:{title:"個人ユーザー向け"},track_manage_credit:{title:"信用スコアの追跡と管理",feature1:"リアルタイム更新されるスコア付きのパーソナルダッシュボード",feature2:"スコアの詳細な時系列変化履歴",feature3:"市場平均とのスコア比較",feature4:"スコアが急激に低下した際の自動アラート"},ai_advisor:{title:"AIによる信用改善アドバイス",feature1:"支出パターンに基づくパーソナライズされたレコメンデーション",feature2:"月次の信用改善プラン",feature3:"実践的な金融ガイダンスコンテンツ",feature4:"マイルストーンに基づく進捗および報酬のトラッキング"},bnpl_hub:{title:"BNPLハブ",feature1:"すべてのBNPLアカウントを一元管理・表示",feature2:"支払いリマインドおよび自動スケジューリング",feature3:"支出分析と行動インサイト",feature4:"クレジットリミット最適化の提案"},smart_shopping:{title:"スマートショッピング",feature1:"各BNPLプラットフォーム間の金利比較",feature2:"購入前の支払い能力シミュレーションツール",feature3:"予算に応じた商品レコメンデーション",feature4:"価格が下ã
8450Œã£ãŸã¨ãã®é€šçŸ¥"},providers:{title:"BNPLプロバイダー向け"},risk_assessment:{title:"正確にリスクを評価する",feature1:"高い予測精度を持つAIモデル",feature2:"クレジット履歴が限定的な顧客に対する信用スコアリング",feature3:"リアルタイムでの返済能力評価",feature4:"5以上のオルタナティブデータソースから250以上の特徴量を分析"},early_detection:{title:"早期リスク検知",feature1:"ローンスタッキング行動の早期警告",feature2:"90日以内のデフォルト確率予測",feature3:"AI/MLによる不正検知",feature4:"24/7監視・自動アラート"},portfolio_optimization:{title:"ポートフォリオ最適化",feature1:"インテリジェントな顧客セグメンテーション",feature2:"各セグメントごとに最適な与信限度額と金利を提案",feature3:"クレジットポリシーのA/Bテスト",feature4:"詳細な分析ダッシュボード"},quick_integration:{title:"迅速な統合",feature1:"完全なドキュメント付きRESTful API",feature2:"主要プラットフォーム向けSDK",feature3:"リアルタイム通知Webhook",feature4:"すぐに導入可能なホワイトラベルソリューション"}},advanced_tech:{badge:"スコアリングシステム",title:"オルタナティブデータを用いたスコアリングシステム",description:"AIに基づくスコアリングシステムは、複数のデータソースを異なる重み付けで分析し、最も正確な信用評価を提供します。"},scoring_system:{mobile_payment:{title:"モバイル決済 — 35%",description:"リアルタイムデータ、精度93.5%"},ewallet:{title:"電子ウォレット — 25%",description:"日次同期、信頼性90.2%"},ecommerce:{title:"Eコマース — 20%",description:"購買行動の分析、精度87.8%"},utility_bills:{title:"公共料金・生活インフラ支払い — 15%",description:"支払いの一貫性を追跡し、精度84.3%"},banking:{title:"銀行 — 5%",description:"トランザクションパターンの分析、信頼性94.1%"}},tech_stack:{badge:"テクノロジー",title:"技術的アプローチ",description:"精度・速度・セキュリティのために設計されたアーキテクチャ",data_sources:{title:"15以上のオルタナティブデータソースから250以上の特徴量",description:"公共料金、電子ウォレット、モバイル決済、Eコマース、ソーシャルコマース、銀行取引、通信データ、家賃およびサブスクリプションサービス。"},ai_ml:{title:"アンサンブルAIエンジン — XGBoost + ディープニューラルネットワーク、AUC 0.8",description:"機械学習、ディープラーニング、NLP、グラフニューラルネットワークを活用し、複雑な特徴量間の関係を分析し、信用行動を予測します。"},real_time:{title:"リアルタイム処理 — P99で200ms未満、毎分10,000リクエスト",description:"200ms未満の応答速度、SLA稼働率99.9%。オートスケーリング対応のインフラで、ピーク負荷にも対応可能です。"},privacy:{title:"エンタープライズセキュリティ — AES-256-GCM、FISC・GDPR・PCI DSS準拠",description:"ゼロ知識証明、準同型暗号を採用し、GDPRおよびCCPAに完全準拠しています。"}},roadmap:{title:"Atobar.ai開発ロードマップ",phase1:{year:"2025",title:"フェーズ1:BNPLハブ",description:"一元化されたBNPL管理のためのアプリ/ウェブプラットフォーム。XAIガイダンスを備えたスマートダッシュボード。"},phase2:{year:"2026",title:"フェーズ2:チェックアウトレイヤー",description:"Eコマースプラットフォームに統合。不正検出を備えたリアルタイムAPI。"},phase3:{year:"2027+",title:"フェーズ3:クレジットプラットフォーム",description:"スィンファイルクレジットB2B APIプラットフォーム。ユーザー制御データエコシステム。"}}}
8450,EO={hero:{badge:"住宅の支払い能力に関する評価",title:"住宅AIソリューション(AD Housing)",description:"住宅の支払い能力を評価するAIプラットフォーム — 20以上のデータソースを分析し、5以上のAIエージェントが各評価をクロスチェックすることで、結果の正確性と公平性を確保します。差別のない判断を実現します。"},stats:{accuracy:"モデル精度",data_sources:"オルタナティブデータソース(公共料金、銀行、賃貸、モバイル)",risk_reduction:"従来の手法と比較して、デフォルトリスクを低減",processing_time:"包括的な評価(AIスコアリング < 200ms)"},features:{title:"主な機能",subtitle:"AIとオルタナティブデータ分析による住宅コストの包括的評価",comprehensive_analysis:{title:"包括的なコスト分析",description:"家賃、敷金、負債比率(DTI)、貯蓄"},data_sources:{title:"20以上のデータソース",description:"公共料金の請求書、銀行取引履歴、賃貸履歴、電子ウォレット"},accuracy:{title:"公平な評価",description:"フェアネスエージェントが全ての評価をチェックし、法的リスクを低減して信頼性を維持します。"},real_time:{title:"リアルタイム処理",description:"30秒以内に応答、20以上のデータソースを並列処理するパイプライン"},early_detection:{title:"不正検知 — 精度97%以上",description:"不正検知において業界をリードし、デフォルトリスク予測において卓越した性能を発揮します。"},smart_recommendations:{title:"スマートレコメンデーション",description:"XAIが意思決定の理由を明確に説明し、改善ロードマップを提示し、個別最適化された返済プランを提供します。"}}
8450,benefits:{title:"誰がメリットを得るのか",subtitle:"住宅金融エコシステム全体に価値を提供します。",guarantee_companies:{title:"保証会社",description:`包括的なアフォーダビリティ評価とオルタナティブデータスコアリングの組み合わせにより、デフォルトリスクを75%削減。\r
8451不変の監査証跡により、規制当局に対して意思決定の適法性を証明します。`,feature1:"不良債権比率の低減",feature2:"より高精度なリスク評価",feature3:"意思決定プロセスの自動化"},lnpl_providers:{title:"LNPLプロバイダー",description:`オルタナティブデータのインサイトにより、ポートフォリオの品質を維持しながら承認率を40%向上。\r
8452各バッチごとにフェアネスレポートを自動生成し、公正住宅法(Fair Housing Act)に準拠します。`,feature1:"顧客基盤の拡大",feature2:"より迅速な承認",feature3:"競争優位性の向上"},property_managers:{title:"不動産管理会社",description:`テナントスクリーニングプロセスを最適化し、コストを60%削減、支払い能力を即時に評価します。\r
8453リアルタイムダッシュボードでスコア、承認率、フェアネスメトリクスを可視化します。`,feature1:"迅速な入居者スクリーニング",feature2:"空室率の削減",feature3:"運用コストの削減"}},process:{title:"仕組み",subtitle:"住宅の支払い能力評価の4ステッププロセス",step1:{title:"登録する",description:"ユーザーが基本情報を入力し、データ共有に同意します。"},step2:{title:"データの収集",description:"システムが20以上のソースからオルタナティブデータを自動収集し、フェアネスエージェントが地域・性別・年齢によるバイアスがないことを検証します。"},step3:{title:"マルチエージェントAIによる分析",description:"5+の独立AIエージェントが分析およびクロスチェックを実施:データ分析 → フェアネスチェック → XAI説明 → コンプライアンス監査"},step4:{title:"決定と結果",description:"結果と説明を含めて、主要な決定要因トップ5および未達の場合の改善ロードマップを提示し、即座にパートナーおよび顧客へ送信します。"}},data_sources:{badge:"データソース",title:"20+オルタナティブデータソース",description:"正確なアフォーダビリティ評価のための包括的なデータ統合",utility_bills:{title:"公共料金の請求書",description:"電気・水道・ガス・公共放送の支払い履歴 — 支払いの適時性を評価します。"},bank_transactions:{title:"銀行取引",description:"ローン、クレジット履歴、収入源"},rental_history:{title:"賃貸履歴",description:"支払い適時率、賃貸期間、大家からのリファレンス情報"},mobile_payments:{title:"モバイル決済",description:"PayPay、LINE Pay、楽天ペイの取引頻度および安定性"},ecommerce:{title:"オンライン商取引",description:"Amazon Japan、楽天、メルカリにおける購買履歴および消費行動"},telco_cdr:{title:"通信事業者のCDR(通話詳細記録)",description:"大手通信事業者からの通信データおよび支払い履歴"},social_insurance:{title:"社会保険",description:"社会保険、健康保険および年金の納付履歴"},employment_verification:{title:"在籍確認",description:"雇用状況、在留資格および在留カード情報の確認"}},technology:{badge:"テクノロジー",title:"AI技術スタック",description:"精度・速度・セキュリティのために設計されたアーキテクチャ",ml_models:{title:"アンサンブル機械学習モデル",description:"XGBoost+LightGBM+ディープニューラルネットワークによる予測精度92%。オンライン学習により、新しいデータパターンから継続的に学習します。"},real_time:{title:"リアルタイムデータパイプライン",description:"Feast Feature Storeと統合し、825以上の特徴量を活用。20以上のデータソースを並列処理します。30秒以内に結果を生成し、稼働率99.9%を実現します。"},security:{title:"セキュリティおよびコンプライアンス",description:"AES-256-GCMによるエンドツーエンド暗号化と、安全なAPIアクセスを提供します。GDPR、FISC、および個人情報保護法・公正住宅法に準拠し、定期的なペネトレーションテストを実施します。"}},fair_housing:{title:"公正住宅へのコミットメント",description:"AD Housingは、実際の財務能力に基づいて支払い能力を評価することを約束します。地域、性別、年齢、民族に基づく判断は一切行いません。",bullet1:"フェアネスエージェントが各評価ごとにデモグラフィックパリティを検証し、ギャップを2%未満に維持します。",bullet2:"Equalized Odds:すべてのグループ間で偽陽性率を均等化",bullet3:"家賃収入比率の基準:収入の30%未満を推奨",subtext:"公正住宅法(Fair Housing Act)を遵守し、住宅における差別ã
8453‚’防止します。すべての評価は独立した監査を受けます。"}},IO={hero:{badge:"移民評価",title:"ADパスポート",description:"国際的な30以上のデータソースと5つのAIエージェントを活用し、すべての評価の真実性・公平性を担保する包括的な移民評価AIプラットフォームです。国籍、人種、宗教、性別によるいかなる差別も行いません。すべてのユーザーに対し、説明を受ける権利を保証します。"},stats:{reliability:"精度 — 多国籍データによる検証",data_sources:"国際データソース — 銀行、政府、教育、雇用",processing_time:"6つの観点×マルチエージェントチェックによる包括的評価",high_risk_detection:"リスク検知 — 適合率(正当な対象を誤って不利益扱いしない)"},features:{badge:"主な機能",title:"ADパスポートの主な機能",subtitle:"移民認証およびリスク分析のための包括的評価プラットフォーム",multi_dimensional:{title:"多面的な評価",description:"6つの観点による包括的分析:各観点を専用AIが分析し、フェアネスエージェントが検証・クロスチェックを行います。"},data_sources:{title:"30以上の国際データソース",description:"国際銀行、政府機関、職業ネットワークからのデータを統合し、データ分析エージェントによる検証を通じて、バイアスを内包する代理特徴量を排除します。"},risk_profiling:{title:"スマートリスクプロファイル",description:"15以上の指標に基づく詳細なリスクプロファイルを構築し、自動的に5段階へ分類し、異常兆候を早期に検知・警告します。"},scoring:{title:"明確なスコアリングシステム",description:"TFAスコアリングとXAIによりすべての結果を説明し、理由のない意思決定は一切行いません。"},fairness:{title:"差別の防止",description:"フェアネスエージェントが各評価において、国籍・人種・性別に基づくデモグラフィックパリティを検証します。"},explainable:{title:"知る権利",description:"XAIエージェントがすべての評価に対して、分かりやすい言葉で明確な説明を生成し、常に「なぜそうなったのか」を理解できるようにします。"},appeal:{title:"異議申し立ての権利",description:"結果に同意できない場合は、いつでも人間のレビュアーによる再審査を要求できます。"}}
8453,benefits:{title:"ステークホルダーへのメリット",subtitle:"企業および規制当局にとって測定可能な改善",time_reduction:{value:"85%",title:"処理時間の短縮",subtitle:"企業向け"},detection_accuracy:{value:"95%",title:"検出精度",subtitle:"規制当局向け"},fast_processing:{value:"10倍",title:"10倍高速な処理",subtitle:"従来のプロセスと比較して"},fraud_reduction:{value:"80%",title:"不正の削減",subtitle:"不正なプロフィールの検出"}},assessment:{badge:"評価軸",title:"6つの主要評価軸",description:"正確な移民評価のための多面的かつ包括的な分析",financial:{title:"財務能力",description:"収入・資産・負債に基づき純粋な財務能力を評価し、国籍を代理指標として使用しません。"},professional:{title:"職業基盤",description:"職務経験、専門スキル、職業の安定性に基づき、実際の能力に応じて評価します。"},education:{title:"学歴確認",description:"学歴、学位、実績を対象に、国際的なデータソースを通じて教育機関を検証します。"},migration:{title:"居住履歴",description:"過去のビザ履歴、移動履歴、規制遵守状況、国境通過履歴を評価し、出身国を差別的指標として使用しません。"},social:{title:"職業的ネットワーク",description:"LinkedInプロフィール、専門的ネットワーク、オンライン上の評判、推薦状を評価し、機密属性(人種・民族)を排除する監査を実施済みです。"},personal:{title:"個人情報",description:"本人確認および経歴確認を行い、スコアリング過程において国籍・宗教・民族を使用しません。"}},use_cases:{badge:"ユースケース",title:"ADパスポートのユースケース",description:"複数の入国・本人確認シナリオに対応しています。",recruitment:{title:"国際採用",description:"出身地に依存せず能力に基づいて候補者を評価し、フェアネスレポートを付与するとともに、学歴・職務経験・専門分野の安定性を検証します。"},study:{title:"留学審査",description:"財務能力と学歴を分析し、各申請者に対してXAIによる透明な説明を提供し、学歴および実績の検証を行います。"},investment:{title:"投資移住",description:"資産、資本および事業計画を分析し、完全な監査証跡を確保しつつ、資産の出所、投資履歴、およびマネーロンダリングリスク(AML)を評価・検証します。"},family:{title:"家族再統合",description:"透明性の高い基準に基づき、保証能力を評価し、保証人の家族関係および財務状況を検証し、出自による差別を排除します。"}},data_integration:{badge:"データ統合",title:"30以上の国際的なデータソース",description:"包括的な移民評価のためのグローバルデータ統合",international_banks:{title:"国際銀行",description:"SWIFT、クロスボーダー銀行取引記録、およびPCBデータ"},government_agencies:{title:"政府機関",description:"ビザ確認および犯罪経歴証明の検証(同意取得済みの場合)"},social_networks:{title:"職業ネットワーク",description:"LinkedInおよび職業上のリファレンスを評価し、人種・宗教に基づくスコアリングは行いません。"},employment_platforms:{title:"採用プラットフォーム",description:"職務経歴およびスキル検証(Indeed、LinkedIn)"},education_systems:{title:"教育システム",description:"学位および資格の検証(WES、NACES)"},global_databases:{title:"グローバルデータベース",description:"コンプライアンスデータベース(制裁リスト、PEPスクリーニング、AMLチェック、GDPR準拠)"},credit_bureaus:{title:"金融機関",description:"国際信用情報機関(TransUnion、Experian、PCB、CIC)"},property_records:{title:"不動産プロフィール",description:"不動産記録、賃貸履歴、資産確認"}},anti_discrimination:{title:"差別禁止へのコミットメント",lead:"ADパスポートはスコアリングにおいて以下の要素を使用しないことを保証します:",excluded1:"❌ 国籍 / 出生地",excluded2:"❌ 人種 / 民族",excluded3:"❌ 宗教 / 信条",excluded4:"❌ 性別",excluded5:"❌ 婚姻状況",positive:"評価は以下の要素のみに基づきます:財務能力・職務経験・学歴・信用履歴",fairness:"フェアネスエージェントは各評価ごとに国籍に基づくデモグラフィックパリティを検証し、ギャップを2%未満に維持します。",rights:"権利:説明を受ける権利(XAI)・データ削除権(GDPR第17条)"},user_rights:{title:"ユーザーの権利",right1:"知る権利 — ã
8453™ã¹ã¦ã®è©•価には、XAIによる分かりやすい詳細な説明が付与されます。",right2:"異議申し立ての権利 — いつでも人間レビュアーによる再審査を要求できます",right3:"削除権 — 個人データの完全削除を要求できます(GDPR第17条)",right4:"アクセス権 — 自分のすべてのデータをダウンロードできます(GDPR第15条)",right5:"同意 — データは明確な同意がある場合にのみ収集され、いつでも撤回できます。"},compliance:{title:"国際的な法令遵守",badge1:{name:"FISC",desc:"金融情報システムセンター"},badge2:{name:"個人情報保護法",desc:"日本の個人情報保護に関する法律"},badge3:{name:"GDPR",desc:"EU個人データ保護(越境対応)"},badge4:{name:"ISO 27001",desc:"情報セキュリティマネジメント"}}},NO={hero:{badge:"マルチエージェントAIプラットフォーム",title:"アプリケーションオペレーティングシステム(AppOS)",description:"AppOSはマルチエージェント(Multi-Agent)プラットフォームであり、ビジネスアイデアを即座にデプロイ可能な実用アプリケーションへと変換します。"},flow:{idea_label:"アイデア",idea_example:"チーム向けのタスク管理アプリを作成してください。",engine:"マルチエージェントAI",app_label:"実用アプリケーション",app_features:"完全なUI・データベース・アクション・即時起動・iOS&Android対応"},principles:{badge:"コア原則",title:"AppOSの設計思想",subtitle:"AppOSがあらゆるアイデアを迅速かつ安定的に、そして制御可能な形で実用アプリケーションへと変換するための3つの基本原則。",image:"/AppOS/AppOS.png",ai_first:{title:"AIファーストアプローチ",description:"従来のような手動のドラッグ&ドロップ操作から始めるのではなく、AppOSはユーザーのインテント(意図)を起点とします。システムはプロンプトやFigmaデザインを自動的に解析し、要件を整理した上でアプリケーション構造を生成します。"},metadata_driven:{title:"メタデータ駆動型",description:"アイデアは断片的なコードに変換されるのではなく、構造化されたメタデータへと変換されます。これにより、アプリケーションは安定した構造を持ち、ランタイムは標準化され、保守性が高まります。"},human_in_loop:{title:"ヒューマン・イン・ザ・ループ",description:"AIはスピードを担保し、人間が最終的なコントロール権を保持します。本プラットフォームは、AIが高速に生成し、人間が確認・調整することを前提に設計されています。ユーザーはChatまたはCanvasを通じてアプリケーションを柔軟にチューニングできます。"}},steps:{badge:"プロセス",title:"アプリケーション作成の6ステップ",subtitle:"アイデアからストア公開まで — わずか6ステップで完了",step1:{title:"アイデアを入力",description:"プログラミングスキルは不要です。自然言語で作りたいアプリを説明するだけでOKです。"},step2:{title:"AIによる分析",description:"マルチエージェントシステムが自動的に要件を明確化し、詳細な仕様書を生成します。"},step3:{title:"ユーザーによる承認",description:"ヒューマン・イン・ザ・ループ:アプリ生成を開始する前に、計画を確認・承認します。"},step4:{title:"アプリの生成を開始する",description:"AIがUI、データベース、アクション、およびデータバインディングを自動生成します。"},step5:{title:"プレビューと確認",description:"Canvas上でアプリを視覚的にプレビューし、完成前に調整できます。"},step6:{title:"ストアにリリースする",description:"簡単な設定だけでApp StoreおよびGoogle Playにアプリを公開できます。"}}},RO={hero:{badge:"才能のためのAIガーディアン",title:"CVエージェント",tagline:"姿を見せずに、理想の仕事を手に入れる。",description:"CVAgentは、Dream Offerの獲得および年収の10〜15%相当のサインオンボーナス獲得を支援するAIプラットフォームです。完全に手間なく(Zero Effort)、完全匿名(100% Anonymity)で利用できます。"},how:{badge:"仕組み",title:"数分で開始できます",step1:{title:"シンプルな設定",description:"プロフィール作成は5〜10分で完了します。"},step2:{title:"ステータスを設定して待機する",description:"「Active(稼働中)」「Thinking(検討中)」「I
8453dle(待機中)」を選択し、あとは待つだけです。"},step3:{title:"AIエージェントがすべてを担います",description:"専用のAIエージェントが、オファーへの対応から交渉まで、すべてを代行します。"}},values:{badge:"コア能力",title:"4つのコア機能",anonymity:{title:"100%匿名",headline:"市場に対して完全に非可視な状態が保たれ、最適なDream Offerが提示されるまで転職意向は一切開示されません。",description:"処理の全過程において、あなたの身元は厳重に保護されます。"},ai_agent:{title:"専用AIエージェント",headline:"リクルーターとやり取りしたり、煩わしいメッセージに返信する必要はありません。パーソナライズされたAIエージェントがすべてのコミュニケーションを処理し、魅力のないオファーを自動でフィルタリングします。",description:"すべてのインタラクションはAIがあなたの代わりに対応します。"},advisor:{title:"「残るか辞めるか」のアドバイザー",headline:"AIがすべてのオファーを分析・評価し、現在のポジションと比較します。十分に良い条件でない場合は、「現職に留まるべきです」と率直に助言します。",description:"最優先すべきはコミッションではなく、あなたのキャリアです。"},bonus:{title:"サインオンボーナス",headline:"内定・入社時に、年収の10〜15%に相当するボーナスを受け取ることができます。",description:"リクルーター手数料(35〜40%)は直接あなたに還元されます。"}},mission:{badge:"ミッション",title:"タレントエコノミーを革新する",subtitle:"私たちは、従来の採用モデルはAI時代にはもはや適していないと考えています。CVAgentの使命は以下の通りです:",pillar1:{title:"専門家を解放する",description:"AIの力によって、本当の才能は、騒がしさや煩わしさに邪魔されることなく、優れた機会にアクセスできるようになります。"},pillar2:{title:"正当な報酬",description:"私たちの哲学は非常にシンプルです。「価値を生み出すのはあなた自身です。だからこそ、その報酬を受け取るのもあなたであるべきです。」"}},why:{badge:"CVAgentを選ぶ理由",title:"CVAgentを選ぶ理由",subtitle:"AI時代において、私たちのモデルは、従来の競合が越えられない競争優位性(Moat)を生み出します。",moat1:{badge:"エージェンシー vs CVAgent",title:"非対称なビジネスモデル",description:`従来の人材紹介会社は運営コストが高く、15%の手数料を人材に還元することはできません。\r
8454一方、CVAgentは軽量なAI駆動モデルにより、その手数料を直接候補者へ還元することが可能です。`},moat2:{badge:"LinkedInとCVAgent",title:"非対称アーキテクチャ",description:`LinkedInは過度にオープンでノイズが多く、専門家は「見つけられること」ではなく「匿名でいること」を望んでいます。\r
8455ソーシャルネットワークは、ビジネスモデルを崩壊させずにプライベート・プロキシ(匿名の代理)として機能することはできません。`},moat3:{badge:"AIのノウハウ",title:"技術的DNA",description:"私たちは人材紹介会社ではありません。300名以上のエンジニアを擁するテクノロジー企業です。私たちは、あなたを深く理解し、信頼を獲得するAIエージェントを構築しています。タスクはAIに任せることで、完全な安心(Peace of Mind)を実現します。"}}},TO={hero:{badge:"レンタルソリューション",title:"今を楽しみ、支払いは後から(LNPL)",description:`LNPLは、日本における初期賃貸費用を最大70%削減します。敷金(Shikikin)・礼金(Reikin)を分割し、柔軟な分割払いを可能にします。\r
8456さらに、5つのAIエージェントによるクロスチェックを行うTFAスコアリングで評価し、日本人・外国人の双方に公å¹
8456³ãªå¯©æŸ»ã‚’実現します。`,cta_primary:"今すぐ応募する",cta_secondary:"詳細を見る"},stats:{upfront_cost_reduction:"初期費用を削減 — 例:50万円 → 15万円",approval_time:"TFAスコアリング(5つのAIエージェントによるクロスチェック)で承認します。",approval_rate:"承認率 — 日本人と外国人の間で公平性を確保",default_risk_reduction:"デフォルトリスクを低減(従来手法・内部データとの比較)",ai_features:"250以上の特徴量をAIが分析"},core_value:{badge:"コアバリュー",title:"LNPLのコアバリュー",description:"包括的な賃貸金融ソリューション — 初期費用を削減し、市場へのアクセスを拡大します。",tenants:{title:"賃借人向け",description:`初期費用を最大70%削減。柔軟な分割払いに対応。XAIがすべての判断を説明し、常に「なぜ」を理解できます。\r
8457さらに、日本在住の外国人を特にサポートし、国籍に関係なく公平な評価を提供します。`},providers:{title:"オーナー/LNPL提供事業者向け",description:"デフォルトリスクを30%削減。TFAスコアリングは250以上の特徴量を評価します。すべてのローンに監査証跡を保持し、必要に応じてコンプライアンスを証明できます。"},trust:{title:"信頼性とコンプライアンス",description:`XAIによる説明 — すべての意思決定に対し、影響度の高い上位5つの要因と、未達の場合の改善ロードマップを提示します。\r
8458GDPR・CCPA・FISCおよび日本の貸金業法に準拠しています。`}},cost_components:{badge:"コスト内訳",title:"初期費用の内訳",description:"日本における賃貸初期費用の一般的な内訳",example:"例:月額賃料80,000円 → 初期費用400,000円 → LNPL利用時:初期120,000円+月25,000円×12回",deposit:{title:"敷金",percentage:"典型的な比率",amount:"敷金—全体の約60%を占め、家賃1〜2ヶ月分に相当します。LNPLでは6〜12回の分割払いに対応しています。"},key_money:{title:"礼金",amount:"礼金—全体の約25%を占め、家賃0.5〜1ヶ月分に相当します。返金はありません。LNPLにより、この費用も分割して支払うことができます。"},advance_rent:{title:"前払い家賃",amount:"前家賃—全体の約15%を占め、家賃0.5〜1ヶ月分に相当します。入居初月の家賃であり、LNPLパッケージと一緒に分割払いが可能です。"}}
8458,process:{badge:"プロセス",title:"LNPLの仕組み",description:"4ステップのプロセス — 申請から入居まで",step1:{title:"応募する",description:"個人情報および財務情報を提供(明確な同意のもと、いつでも同意を撤回可能)"},step2:{title:"5つのAIエージェントが評価します",description:"データ分析 → スコアリング → 公平性チェック → XAIによる説明 → コンプライアンス監査。結果は30秒以内に提供されます。"},step3:{title:"審査・承認後、入居",description:"XAIによる説明付きの承認 — 承認理由を正確に把握できます。不承認の場合は、具体的な改善ロードマップを提示します。"},step4:{title:"分割払い",description:"6・12・24回の柔軟な分割払い。手数料と金利は完全に透明です。ダッシュボードでリアルタイムに追跡でき、リスク発生時には自動で早期警告を行います。"}},coverage:{badge:"補償オプション",title:"ファイナンシングパッケージ",description:"柔軟なファイナンシャルプランで、さまざまな賃貸ニーズに対応",cta:"このプランに登録する",recommended:"おすすめ",basic:{title:"ベーシック — 敷金",description:"月額15,000円〜。6回の分割払い。標準的な賃貸向け — 敷金のみを分割します。"},standard:{title:"標準 — 敷金+礼金",description:"月額25,000円〜。12回払い。最も選ばれているプラン — 敷金・礼金の両方をカバーします。"},premium:{title:"プレミアム — 全費用込み",description:"月額35,000円〜。24回払い。敷金・礼金・前払い家賃をカバー。初期費用を最大70%削減します。"}},fairness:{heading:"誰にとっても公平",lead_text:"日本の賃貸市場は外国人にとって厳しい場合があります。LNPLは、国籍ではなく「財務能力」に基づいて評価することを約束します。",stat1_title:"人口統計学的平等",stat1:"フェアネスエージェント:国籍グループ間のギャップは2%未満",stat2_title:"均等オッズ",stat2:"日本人と外国人の
8458間で誤拒否率を均等化",stat3_title:"XAIの透明性",stat3:"100%の評価にXAIによる説明を付与 — なぜそうなったのかが分かります"},faq:{heading:"よくある質問",q1_q:"礼金(れいきん)とは何ですか?",q1_a:"契約締結時に家主に支払う謝礼金で、返金されません。通常、家賃の0.5〜1ヶ月分です。",q2_q:"外国人居住者も対象になりますか?",q2_a:"はい。LNPLは国籍による差別なく、財務能力にのみ基づいて審査を行います。",q3_q:"なぜ拒絶されたのですか?",q3_a:"LNPLはすべての決定に対してAI説明可能性(XAI)を提供します。正確な理由とそれを改善する手順が分かります。",q4_q:"金利はいくらですか?",q4_a:"プランに応じて年利X%からです。すべて透明化されており、隠れた費用はありません。",q5_q:"個人データは安全ですか?",q5_a:"GDPRおよびFISC準拠。AES-256で暗号化。いつでもデータの削除を要求する権利があります。"},compliance:{heading:"法令遵守",badge1:"FISC準拠 ✓ — 金融情報システムセンター (Center for Financial Industry Information Systems)",badge2:"貸金業法 ✓ — Money Lending Business Act",badge3:"消費者契約法 ✓ — Consumer Contract Act",badge4:"GDPR ✓ — クロスボーダー個人データ保護",text:"LNPLは日本の金融規制に準拠した適切なライセンスのもとで運営されています。"}},jO={header:"個人情報保護方針",title:"当社が取り扱う個人情報について",section1:"個人情報保護方針",section1Content:{title1:"個人情報の収集・利用・提供",content1:`当社は、事業活動の範囲内において個人情報の利用目的を明確に定め、その目的を達成するために必要な範囲内で、個人情報の取得・利用・提供を公正かつ適切に行います。\r
8459また、特定された利用目的以外で個人情報が利用されることを防止するため、適切な安全管理措置を講じます。`,title2:"2. 法令および各種規範の遵守",content2:"当社は、個人情報に関する法令および国が定めるガイドライン、ならびにその他の規範や社会秩序を遵守し、個人情報を適切に保護するよう努めます。",title3:"3. 個人情報の適切な管理",content3:`当社は、当社が取り扱う個人情報に対して、不正アクセス、紛失、破壊、改ざん、漏えい等のリスクが存在することを十分に認識し、合理的な安全管理措置を講じます。\r
8460また、万一事故が発生した場合には、速やかに適切な是正措置を実施します。`,title4:"4. 各種リクエストおよびお問い合わせへの対応",content4:"当社が取り扱う個人情報について、本人からの開示・訂正・利用停止の請求、または苦情・相談があった場合には、誠実かつ適切に対応いたします。"},smallInformation:{inf1:"React Plus株式会社",inf2:"代表取締役  : ルオン・スアン・ハイ",inf3:"電話番号:(+84)24 6299 7777(受付時間 9:00〜17:00/土日祝日を除く)",inf4:"Email:[email protected]",inf5:"住所:7F, Golden Field Building, 24 Nguyen Co Thach, Hanoi, Vietnam"},section2:"当社が取り扱う個人情報について",section2Subtitle:`当社は、「個人情報保護方針」に基づき、個人情報を適切に保護しています。\r
8461当社が事業活動のために取得または保有する個人情報について、以下のとおりご案内いたします。`,section2Content:{title1:"個人情報取扱事業者の名称",table1:{title1:"会社名",row1:"React Plus株式会社",title2:"代表取締役",row2:"ルオン・スアン・ハイ",title3:"住所:",row3:"7F, Golden Field Building, 24 Nguyen Co Thach, Hanoi, Vietnam"},title2:"2. 個人情報の利用目的",title2Subtitle:"【当社が保有する個人情報】",table2:{header1:"個人情報の種類",header2:"利用目的",title1:"当社のサービスを利用する顧客に関する情報",row1:`当社のサービスを利用する顧客に関する情報\r
8462\r
8463当社および関連会社の製品・サービスに関する営業活動の実施およびご案内、セミナー・展示会のご案内、アンケートの依頼、事業活動に関する情報提供、ウェブサイトおよびメールサービスのパーソナライズ、ならびに名刺交換に基づくメールマガジンの配信のために利用します。`,title2:"取引先に関する情報",row2:"業務管理、連絡、請求書の発行および支払い管理のために利用します。",title3:"従業員情報",row3:"人事・労務・給与および福利厚生などの人事管理業務のために使用します。",title4:"採用応募者情報",row4:"採用選考および採用に関する連絡のために利用します。",title5:"退職者情報",row5:"退職者からの連絡および各種対応のために利用します。",title6:"連絡先情報",row6:"お問い合わせや各種要望への対応ã
8463®ãŸã‚ã«åˆ©ç”¨ã—ます。",title7:"本人または代理人に関する情報",row7:"情報開示請求への対応のために利用します。"},title3:"3. 個人情報の共同利用について",content3:"法令に基づく場合を除き、取得した個人情報は、以下の範囲内で共同利用されることがあります。",list3:{title:"共同利用される個人情報の項目",item1:"氏名、生年月日、住所、電話番号、メールアドレスおよびその他の連絡先情報",item2:"勤務先情報、家族情報、資産および負債に関する情報",item3:"取引内容および取引管理に必要な情報"},card3:{title:"共同利用の範囲",subtitle:"React Plusおよびそのグループ会社を含む関連会社は、以下のとおりです:",card1:{row1:"React Plus株式会社",row2:"住所:7F, Golden Field Building, 24 Nguyen Co Thach, Hanoi, Vietnam",row3:"代表取締役  : ルオン・スアン・ハイ",row4:"URL:https://reactplus.com/"},card2:{row1:"Mirai Plus Inc",row2:"〒108-0023 東京都港区芝浦4丁目12-38 CANAL GATE SHIBAURAビル",row3:"代表:TANAKA TORU",row4:"URL:https://mirai-plus.co.jp/"}},list3_2:{title:"共同利用の目的",item1:"製品・サービスの提案、紹介、研究および開発",item2:"サービス提供時の意思決定",item3:"全社の適正な運営を確保するための営業管理およびリスク管理"},text3:{title:"共同利用される個人情報の管理責任者",content1:"React Plus株式会社",content2:"代表取締役  : ルオン・スアン・ハイ"},title4:"4. 個人情報に関するお問い合わせ窓口",text4:"個人情報の取扱いに関する苦情、ご相談またはお問い合わせにつきましては、以下の連絡先までご連絡ください。",card4:{row1:"【お問い合わせ】",row2:"React Plus株式会社",row3:"電話:(+84)24 6299 7777(受付時間:9:00〜17:00/土日祝日を除く)",row4:"Email:[email protected]"},title5:"5. 情報開示請求手続きについて",text5:`当社は、本人またはその法定代理人からの個人情報の開示、訂正、削除、利用停止に関する請求に対し、迅速かつ適切に対応いたします。\r
8464なお、請求者の本人確認を行った上で、合理的な範囲および期間内に対応いたします。`,title6:"6. クッキーについて",text6:`当社は、サービス品質の向上および広告配信のためにクッキーを使用します。\r
8465ユーザーはブラウザの設定により、クッキーの使用を許可または拒否することができます。\r
8466なお、クッキーの利用を拒否した場合、一部のサービスがご利用いただけない場合があります。`,title7:"7. 個人情報の安全管理措置",text7:`当社は、JIS Q 15001に準拠し、個人情報の安全管理措置として、組織的・人的・物理的・技術的な各種安全管理措置を講じています。\r
8467詳細につきましては、上記のお問い合わせ窓口までご連絡ください。`,card7:{row1:"React Plus株式会社",row2:"代表取締役  : ルオン・スアン・ハイ",row3:"電話:(+84)24 6299 7777",row4:"Email:[email protected]"}}},PO={title:"ロゴをリニューアルしました!",description:`React Plusは、新しいブランドアイデンティティを発表しました。\r
8468新ロゴに込められた意味と、その背景にあるストーリーをご紹介します。`,button:"ロゴ変更のお知らせを見る",articleLink:"/news/214"},MO={applyTitle:"{{jobTitle}}に応募する",defaultJob:"有力な候補者",form:{back:"戻る",personalInfo:"個人情報",fullName:"氏名*",fullNamePlaceholder:"氏名を入力してください",email:"メールアドレス*",emailPlaceholder:"[email protected]",phone:"電話番号*",phonePlaceholder:"0xxx xxx xxx",dob:"生年月日",day:"日",month:"月",year:"å¹´",resume:"履歴書",uploadTitle:"履歴書をアップロード*",uploadHelper:"PDF、DOCX、JPG、またはPNG(最大10MB)",selectFile:"ファイルを選択",linksTitle:"リンク",portfolio:"ポートフォリオ/個人ウェブサイト",portfolioPlaceholder:"https://",additionalInfo:"追加情報",additionalInfoPlaceholder:"その他、自由にお伝えしたいことがあればご記入ください。",submitting:"送信中…",submit:"応募書類を送信",cancel:"キャンセル",submitSuccessTitle:"応募書類の送信が完了しました",submitSuccessMessage:"React Plusにご関心をお寄せいただきありがとうございます。追って担当者よりご連絡いたします。",backToRecruit:"採用ページに戻る",errors:{required:"必須項目です。",emailInvalid:"メールアドレスの形式が正しくありません",emailTooLong:"メールアドレスは100文字を超えないようにしてください。",phoneInvalid:"電話番号の形式が正しくありません",phoneTooShort:"電話番号は10桁以上で入力してください",phoneTooLong:"電話番号は12桁以内で入力してください",nameTooLong:"氏名は100文字を超えないようにしてください。",fileTooLarge:"ファイルサイズは10MBを超えることはできません。",linkInvalid:"URLはhttp://またはhttps://で始まる必要があります。",linkTooLong:"リンクは500文字を超えることはできません。",contentTooLong:"内容は2000文字を超えないようにしてください。",submitError:"エラーが発生しました。後ほど再度お試しください。",emailTooShort:"メールアドレスは5文字以上にしてください。",nameTooShort:"氏名は2文字以上である必要があります",linkTooShort:"リンクは5文字以上にしてください。",contentTooShort:"内容は10文字以上である必要があります"}},hero:{title:"求人情報",subtitle:`React Plusとともにデジタルの未来を創造しましょう。\r
8469当社は、新たなテクノロジーの課題に挑戦する旅路を共に歩む優秀な人材を募集しています。`,applyButton:"応募する"}
8469,jobList:{title:"募集中の職種",searchPlaceholder:"勤務地またはエリアで検索…",error:"データの読み込みに失敗しました:",notFound:"該当する求人が見つかりませんでした。",fullTime:"フルタイム",partTime:"パートタイム"},careerPathTitle:"キャリアパス",steps:{step1:"研修および実務経験の機会があります。",step2:"基礎スキルを確立した上で、正式な雇用契約を締結します。",step3:"顧客からの要望を効率的に対応します。",step4:"フレッシャー研修および難しい課題への対応",step5:"プロジェクトの調整およびチーム管理",step6:"大規模プロジェクトの運営および組織文化の構築",step7:"技術戦略の方向性を定める"},process:{title:"プロセス",step1:{title:"履歴書を送信",desc:`ウェブサイトまたは [email protected]\r
8470 へのメールにて直接ご応募ください。`},step2:{title:"面接",desc:"専門スキルと企業文化の評価を目的とした面接に参加します。"},step3:{title:"入社",desc:"契約条件に合意し、React Plusでの新たな挑戦を開始します。"}}},LO={back:"戻る",notFound:"該当する求人が見つかりませんでした",notFoundMessage:"採用ページにお戻りください。",backToRecruit:"募集ページに戻る",noContent:"ここに求人詳細が表示されます。",applyButton:"このポジションに応募する",relatedJobs:"関連する仕事"},OO={cards:[{title:"AX — 日本企業向けAIトランスフォーメーション",description:`日本はすでにDXの段階を通過し、現在はAXの時代に入りつつあります。\r
8471React Plusは、日本企業がAIを実用的なオペレーション能力へと変革することを支援します。`},{title:"日本企業がAI導入で直面する課題とは?",description:"AIの重要性は理解しているものの、どこから始めればよいかわからない。アイデアはあるが、実際に動くシステムとして形にできていない。"},{title:"React Plusが提供できること",description:"AIソリューション企業として、AIプロダクト、AIエージェント、オートメーションワークフローを通じて、日本企業のAX推進を支援します。"}],page:{eyebrows:{hero:"私たちの歩み",background:"背景",challenge:"課題とは",remoteBrain:"リモートAIブレイン",howWeWork:"私たちの取り組み方"},back:"← ホームに戻る",heroTitle:"私たちの歩み",heroQuote:`日本はすでにDXの段階を通過し、現在はAXの時代に入りつつあります。\r
8472React Plusは、日本企業がAIを実際のオペレーション能力へと変革することを支援します。`,section1:{title:"AX(AIトランスフォーメーション)とは?",intro:`DXがデジタル化のプロセスであるとすれば、AXはAIを企業の運用・成長・意思決定の仕組みに組み込むことを意味します。\r
8473AXは単なるチャットボットや個別のAIツールの導入ではありません。企業の働き方そのものを実務レベルで変革するものです。`,points:[{title:"デジタル化からインテリジェンスへ",description:"単なるデータのデジタル化にとどまらず、AIを活用して理解・分析し、意思決定を支援します。"},{title:"人を支援することから、組織全体の能力強化へ",description:"AIは個人の作業を効率化するだけでなく、チーム全体の業務の進め方そのものを変革します。"},{title:"固定的なワークフローからアダプティブなワークフローへ",description:"これまで硬直的で手作業中心だった業務プロセスが、AIの活用によりより柔軟かつ大幅に効率化できるようになります。"},{title:"人員増加から生産性レバレッジへ",description:"単に人員を増やすことで成果が上がるわけではありません。AIは、生産性に驚くべき変化をもたらします。"}]},section2:{title:"なぜ日本企業は課題を抱えているのか",points:[{title:"AIの重要性は理解しているものの、どこから始めればよいかわからない。",description:"多くの企業がAI導入の必要性に迫られている一方で、どのユースケースが実際に価値を生み出すのかを明確にできていません。"},{title:"アイデアはあるものの、それを実際に動くシステムとして形にでã
8473ã¦ã„ない。",description:"デモは簡単ですが、実際の業務運用に統合することは容易ではありません。"},{title:"レガシーなプロセス、コンプライアンス要件、そして分断されたデータ。",description:"既存の業務プロセスやセキュリティ上の制約により、AI導入は複雑化しがちです。企業には「作り直し」ではなく、「適応する」ためのソリューションが求められています。"},{title:"ハイブリッド人材の危機",description:`市場では、AIを理解し、デリバリーまで実装でき、さらにビジネスの現場感覚を持つエンジニアが深刻に不足しています。\r
8474かつてソフトウェアエンジニア不足の時代があったように、今後はAIエンジニア、そしてAIドリブンエンジニアの不足へと移行していきます。`}]},section3:{title:"React Plusが提供できる価値とは何か?",intro:"React PlusはAIソリューション企業として、AIプロダクト、AIエージェント、オートメーションワークフローを通じて、日本企業のAX導入を支援し、実運用可能なシステムの構築を推進しています。",highlights:["日本企業の現場で実績を積んだAIエンジニアチーム","メガバンク・大手企業で本番稼働中のAIシステム","日本企業の意思決定プロセスに即した導入フロー"],closing:"真のAI能力を最短で獲得する方法 - ゼロからチームを組成し、何年もの時間を賭ける必要はありません。"},section4:{title:"React Plusの日本企業向け導入アプローチ",subsections:[{title:"取り組むべきユースケースを特定する",points:["実際のROI(投資対効果)が見込める課題を優先","R&DコストおよびAI人材への投資コストを大幅に削減"]},{title:"本番稼働するプロダクト/ワークフロー/システムへ構築する",points:["AIワークフロー","AIエージェント","社内ツール","フィンテック/企業業務向けドメインソリューション"]},{title:"日本企業に適した方法で導入する",points:["日本企業の意思決定プロセスと変革の進め方を熟知",'既存システムを最大限に活かし、AIを"Plus"する',"小さくとも正しいユースケースから着手し、実業務に組み込み、即効性を実現","AIを短期的なデモではなく、組織の長期的な能力へと昇華"]}]},closingQuote:`AIトランスフォーメーションは、人類の歴史における偉大な前進になると私たちは考えています。\r
8475私たちは、その歴史的な変革のプロセスにおいて、皆様と共に歩むために存在しています。`,ctaButton:"お問い合わせ"}},DO={common:_O,sidebar:fO,header:kO,caseStudy:vO,about:yO,core:bO,news:xO,contact:AO,chat:CO,footer:SO,atobar:wO,ad_housing:EO,ad_passport:IO,appos:NO,cvagent:RO,lnpl:TO,privacyPolicy:jO,logoAnnouncement:PO,recruit:MO,jobDetail:LO,ourStory:OO},zO={en:{translation:hO},ja:{translation:DO}},J5="detectedRegion";function Z5(t){return t==="JP"?"ja":"en"}async function BO(){const t=localStorage.getItem(J5);if(t){on.changeLanguage(Z5(t));return}try{const e=await fetch("https://ipapi.co/country_code/",{signal:AbortSignal.timeout(3e3)});if(e.ok){const n=(await e.text()).trim();localStorage.setItem(J5,n),on.changeLanguage(Z5(n))}}catch{}}on.use(Y6).use(LI).init({resources:zO,lng:"en",fallbackLng:"en",interpolation:{escapeValue:!1},detection:{order:["localStorage","navigator","htmlTag"],caches:["localStorage"]}});on.on("languageChanged",t=>{document.documentElement.lang=t});document.documentElement.lang=on.language||"en";BO();const Vk="chatbot-messages",Q6="chatbot-token-usage",$O=()=>{try{const t=localStorage.getItem(Q6);if(t)return JSON.parse(t)}catch{}return[]},GO=t=>{try{localStorage.setItem(Q6,JSON.stringify(t))}catch{}},tb=(t,e)=>{const n=Date.now()-e;return t.filter(s=>s.timestamp>n)},eb=()=>{try{const t=localStorage.getItem(Vk);if(t){const e=JSON.parse(t);if(!Array.isArray(e))return[];const n=[];let s=!1;for(let i=0;i<e.length;i++){const r=e[i];if(r.role==="assistant"&&r.content===""){s=!0;continue}if(r.role==="user"){const c=e[i+1];if(c&&c.role==="assistant"&&c.content===""){s=!0;continue}}n.push(r)}return s&&localStorage.setItem(Vk,JSON.stringify(n)),n}}catch(t){console.error("Failed to load messages from localStorage:",t)}return[]},nb=t=>{try{localStorage.setItem(Vk,JSON.stringify(t))}catch(e){console.error("Failed to save messages to localStorage:",e)}},HO=t=>{if(t instanceof Error){const e=t.message||"",n=e.toLowerCase();return n.includes("failed to fetch")||n.includes("networkerror")||n.includes("network request failed")||n.includes("load failed")||n.includes("err_connection")||n.includes("timeout")||n.includes("network connection")||n.includes("failed to load resource")?on.t("chat.errors.network",{defaultValue:"Lỗi kết nối mạng. Vui lòng kiểm tra đường truyền và thử lại."}):e==="Request blocked by content policy."?on.t("chat.errors.guardrail",{defaultValue:"Yêu cầu bị từ chối do chính sách bảo mật nội dung."}):e}return on.t("chat.errors.general",{defaultValue:"Không thể gửi tin nhắn. Vui lòng thử lại sau."})},ab=t=>{if(!t)return null;if(typeof t=="string")return t.trim()||null;if(typeof t=="object"){const e=t;if(e.code==="content_blocked"||e.category==="prompt_injection")return typeof e.detail=="string"&&e.detail.trim()?e.detail.trim():on.t("
8475chat.errors.guardrail",{defaultValue:"Yêu cầu bị từ chối do chính sách bảo mật nội dung."});if(Array.isArray(e.detail)){const n=e.detail.map(s=>typeof s=="string"?s:typeof s=="object"&&s&&"msg"in s?String(s.msg):JSON.stringify(s)).filter(Boolean);if(n.length>0)return n.join(", ")}if(typeof e.detail=="string"&&e.detail.trim())return e.detail.trim();if(typeof e.message=="string"&&e.message.trim())return e.message.trim();if(typeof e.error=="string"&&e.error.trim())return e.error.trim();if(typeof e.error=="object"&&e.error&&"message"in e.error&&typeof e.error.message=="string")return e.error.message.trim()||null}return null},FO=async t=>{const e=`Streaming request failed (${t.status} ${t.statusText})`;try{const n=t.headers.get("content-type")||"";if(n.includes("application/json")||n.includes("+json")){const s=await t.json();return ab(s)||e}else{const s=await t.text();try{const i=JSON.parse(s),r=ab(i);if(r)return r}catch{if(s&&s.trim()&&!s.trim().startsWith("<")&&s.length<500)return s.trim()}}}catch{}return e},UO=(t={})=>{const{onMessagesChange:e,fetchMessages:n,rateLimit:s,tokenLimit:i}=t,r={maxRequests:s?.maxRequests??10,windowMs:s?.windowMs??6e4},{checkRateLimit:c,recordRequest:p}=TL(r),g=i?.windowMs??36e5,_=i?.maxTokens??1e5,f=y.useRef($O()),h=y.useCallback(()=>{const L=tb(f.current,g);f.current=L;const $=L.reduce((V,U)=>V+U.totalTokens,0),q=Math.max(0,_-$),Q=L.length>0?new Date(L[0].timestamp+g):null;return{totalUsed:$,limit:_,remaining:q,resetAt:Q,canProceed:$<_}},[_,g]),[v,b]=y.useState(()=>h()),S=y.useCallback(L=>{L<=0||(f.current=tb(f.current,g),f.current.push({timestamp:Date.now(),totalTokens:L}),GO(f.current),b(h()))},[g,h]);y.useEffect(()=>{b(h());const L=setInterval(()=>b(h()),3e4);return()=>clearInterval(L)},[h]);const[x,w]=y.useState(()=>eb()),[A,E]=y.useState(""),[I,j]=y.useState(!1),[T,P]=y.useState(null),N=y.useRef(x);y.useEffect(()=>{const L=eb();N.current=L,w(L)},[]);const D=y.useCallback(L=>{N.current=L,w(L),nb(L),e&&e(L)},[e]);N.current.length!==x.length&&(N.current=x);const F=y.useCallback(async L=>{const $=(L??A).trim();if(!$||I)return;const q=c();if(!q.canProceed){const st=q.resetAt?q.resetAt.toLocaleTimeString():"soon";P(`Rate limit exceeded. You can send ${r.maxRequests} messages per ${r.windowMs/1e3} seconds. Please try again after ${st}.`);return}const Q=h();if(!Q.canProceed){const st=Q.resetAt?Q.resetAt.toLocaleTimeString():"soon";P(`Token limit reached (${Q.totalUsed.toLocaleString()}/${_.toLocaleString()} tokens used). Please try again after ${st}.`);return}P(null);const V={id:crypto.randomUUID(),role:"user",content:$},U=crypto.randomUUID(),H=[...N.current,V];D(H),E(""),j(!0);try{const st={id:U,role:"assistant",content:""};D([...N.current,st]),p(),await new Promise((lt,M)=>{(async()=>{try{const gt=[],rt=N.current;for(let mt=0;mt<rt.length;mt++){const wt=rt[mt];if(!(wt.id===V.id||wt.id===U)&&!(!wt.content.trim()||wt.isError))if(wt.role==="user"){const It=rt[mt+1];if(It&&It.role==="assistant"&&It.isError)continue;gt.push({role:wt.role,content:wt.content})}else wt.role==="assistant"&&gt.push({role:wt.role,content:wt.content})}const O={content:$,streaming:!0,histories:gt},z="https://ai.reactplus.vn";let Y;const it=jL[$];if(it){const mt=new TextEncoder,wt=new ReadableStream({async start(It){const Pt=Math.floor(Math.random()*1e3)+3e3;await new Promise(kt=>setTimeout(kt,Pt));const Nt=it.split(`
8476
8477`);for(const kt of Nt)kt.trim()&&(It.enqueue(mt.encode(kt+`
8478
8479`)),await new Promise(pt=>setTimeout(pt,30)));It.close()}});Y=new Response(wt,{headers:{"Content-Type":"text/event-stream"}})}else{const mt=z?z.startsWith("http")?`${z}/api/v1/chat`:`${z}/chat`:"/api/v1/chat";if(Y=await fetch(mt,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(O)}),!Y.ok){const It=await FO(Y);throw new Error(It)}if(!Y.body)throw new Error("Response body is null")}if(!Y.body)throw new Error("Response body is null");const W=Y.body.getReader(),ut=new TextDecoder;let ht="",yt=0;const ft=()=>{const mt=ht.split(`
8480`);ht=mt.pop()||"";for(const It of mt){const Pt=It.replace(/\r$/,"").trim();if(Pt===""||!Pt.startsWith("data: "))continue;const Nt=Pt.slice(6);let kt;try{kt=JSON.parse(Nt)}catch{continue}
8480const{event:pt,content:Bt,detail:ne,code:Xt}=kt;if(pt==="error"||Xt==="content_blocked"){const Ut=ne||(typeof kt.error=="string"?kt.error:kt.error?.message)||Bt||"Request blocked by content policy.";throw new Error(Ut)}if(pt!=="start"){if(pt==="complete"){const Ut=kt.usage_metadata?.total_tokens??yt;return Ut>0&&S(Ut),lt(),W.cancel().catch(()=>{}),!0}if(pt==="message"){if(kt.usage_metadata?.total_tokens&&(yt=kt.usage_metadata.total_tokens),!Bt||Bt.length===0)continue;const Ut=N.current.map(Se=>Se.id===U?{...Se,content:`${Se.content}${Bt}`}:Se);D(Ut)}}}return!1};for(;;){const{value:mt,done:wt}=await W.read();if(mt&&(ht+=ut.decode(mt,{stream:!0}),ft()))break;if(wt){if(ht.trim()!==""){const It=ht.trim();if(It.startsWith("data: "))try{const Pt=JSON.parse(It.slice(6));if(Pt.event==="error"||Pt.code==="content_blocked")throw new Error(Pt.detail||Pt.content||"Request blocked by content policy.");if(Pt.event==="message"&&Pt.content&&Pt.content.length>0){const Nt=N.current.map(kt=>kt.id===U?{...kt,content:`${kt.content}${Pt.content}`}:kt);D(Nt)}}catch(Pt){if(Pt instanceof Error&&Pt.message==="Request blocked by content policy.")throw Pt}}lt();break}}nb(N.current)}catch(gt){M(gt instanceof Error?gt:new Error(gt?.message||"Streaming connection failed. Please try again."))}})()})}catch(st){const lt=HO(st),M=N.current.map(O=>O.id===U?{...O,content:lt,isError:!0}:O),rt=M.some(O=>O.id===U)?M:[...M,{id:U,role:"assistant",content:lt,isError:!0}];D(rt),P(null)}finally{j(!1),n&&await n({append:!0})}},[A,I,D,n,c,p,h,_,S,r.maxRequests,r.windowMs]),B=y.useCallback(async L=>{if(I)return;let $="",q=null;const Q=N.current;if(L){const V=Q.findIndex(U=>U.id===L);if(V!==-1){for(let H=V-1;H>=0;H--)if(Q[H].role==="user"){$=Q[H].content,q=Q[H].id;break}const U=Q.filter(H=>H.id!==L&&H.id!==q);D(U)}}$||($=Q.filter(V=>V.role==="user").pop()?.content||""),$&&await F($)},[I,D,F]);return{sendMessage:F,retryMessage:B,messages:x,setMessages:w,syncMessages:D,inputValue:A,setInputValue:E,isSending:I,error:T,setError:P,tokenUsage:v}};function J6({isEmbedded:t}={}){const{t:e}=De(),n=y.useRef(null),s=y.useRef(null),[i,r]=y.useState(null),c=y.useCallback(()=>{const h=n.current,v=s.current;if(!h||!v)return;const b=h.getBoundingClientRect(),S=v.getBoundingClientRect(),x=parseFloat(window.getComputedStyle(h).paddingLeft),A=S.left-b.left-x+10;r(A)},[]);y.useEffect(()=>{c();const h=new ResizeObserver(()=>{c()});return n.current&&h.observe(n.current),()=>h.disconnect()},[c]);const p=e("ourStory.page.section1.points",{returnObjects:!0}),g=e("ourStory.page.section2.points",{returnObjects:!0}),_=e("ourStory.page.section3.highlights",{returnObjects:!0}),f=e("ourStory.page.section4.subsections",{returnObjects:!0});return l.jsx("article",{className:"ourstory-wrapper prose max-w-none mx-auto",children:l.jsxs("div",{className:`ourstory-page ${t?"embedded":""}`,children:[!t&&l.jsx(Wt,{to:"/",className:"ourstory-back",children:e("ourStory.page.back")}),l.jsx("section",{className:"ourstory-hero",children:l.jsxs("div",{className:"ourstory-hero-container",children:[l.jsx("div",{className:"ourstory-eyebrow",children:e("ourStory.page.eyebrows.hero")}),l.jsx("h1",{className:"ourstory-hero-title",children:e("ourStory.page.heroTitle")}),l.jsx("p",{className:"ourstory-hero-quote",children:e("ourStory.page.heroQuote")})]})}),l.jsx("section",{className:"ourstory-capabilities",children:l.jsxs("div",{className:"ourstory-section-container",ref:n,children:[l.jsxs("div",{className:"ourstory-capabilities-header",children:[l.jsx("div",{className:"ourstory-eyebrow",children:e("ourStory.page.eyebrows.background")}),l.jsx("h2",{children:e("ourStory.page.section1.title")}),l.jsx("p",{children:(()=>{const h=e("ourStory.page.section1.intro"),v=h.indexOf("DX");if(v===-1)return h;const b=h.slice(0,v),S=h.slice(v+2);return l.jsxs(l.Fragment,{children:[b,l.jsx("span",{ref:s,children:"DX"}),S]})})()})]}),l.jsx("div",{className:"ourstory-timeline",style:i!==null?{marginLeft:`${i}px`}:void 0,children:Array.isArray(p)&&p.map((h,v)=>l.jsxs("div",{className:"ourstory-timeline-item",children:[l.jsx("div",{className:"ourstory-timeline-marker",children:l.jsx("span",{className:"ourstory-timeline-num",children:v+1})}),l.jsxs("div",{className:"ourstory-timeline-content",children:[l.jsx("h3",{children:h.title}),l.jsx("p",{children:h.description})]})]},v))})]})}),l.jsx("section",{className:"ourstory-capabilities",children:l.jsxs("div",{className:"ourstory-section-container",children:[l.jsxs("div",{className:"ourstory-capabilities-header",children:[l.jsx("div",{className:"ourstory-eyebrow",children:e("ourStory.page.eyebrows.challenge")}),l.jsx("h2",{children:e("ourStory.page.section2.title")})]}),l.jsx("div",{className:"ourstory-challenge-grid",children:Array.isArray(g)&&g.map((h,v)=>l.jsxs("div",{className:"ourstory-challenge-card",children:[l.jsx("div",{className:"ourstory-challenge-num",children:l.jsx("span",{children:String(v+1).padStart(2,"0")})}),l.jsxs("div",{className:"ourstory-challenge-content",children:[l.jsx("h4",{children:h.title}),l.jsx("p",{children:h.description})]})]},v))})]})}),l.jsx("section",{className:"ourstory-approach",children:l.jsxs("div",{className:"ourstory-section-container",children:[l.jsxs("div",{className:"ourstory-approach-header",children:[l.jsx("div",{className:"ourstory-eyebrow",children:e("ourStory.page.eyebrows.remoteBrain")}),l.jsx("h2",{children:e("ourStory.page.section3.title")}),l.jsx("p",{children:e("ourStory.page.section3.intro")})]}),l.jsx("ul",{className:"ourstory-highlights-list",children:Array.isArray(_)&&_.map((h,v)=>l.jsx("li",{children:h},v))}),l.jsx("p",{className:"ourstory-approach-closing",children:e("ourStory.page.section3.closing")})]})}),l.jsx("section",{className:"ourstory-approach",children:l.jsxs("div",{className:"ourstory-section-container",children:[l.jsxs("div",{className:"ourstory-approach-header",children:[l.jsx("div",{className:"ourstory-eyebrow",children:e("ourStory.page.eyebrows.howWeWork")}),l.jsx("h2",{children:e("ourStory.page.section4.title")})]}
8480),l.jsx("div",{className:"ourstory-approach-grid",children:Array.isArray(f)&&f.map((h,v)=>l.jsxs("div",{className:"ourstory-approach-card",children:[l.jsx("div",{className:"ourstory-approach-num",children:String(v+1).padStart(2,"0")}),l.jsx("h3",{className:"ourstory-subsection-title",children:h.title}),l.jsx("ul",{className:"ourstory-subsection-list",children:h.points.map((b,S)=>l.jsx("li",{children:b},S))})]},v))})]})}),l.jsxs("section",{className:"ourstory-closing",children:[l.jsx("p",{className:"ourstory-closing-quote",children:e("ourStory.page.closingQuote")}),l.jsx(Wt,{to:"/contact",className:"ourstory-cta",children:e("ourStory.page.ctaButton")})]})]})})}const VO=()=>l.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,color:"#6c6c6c",fontSize:14},children:[l.jsx(vN,{style:{fontSize:16,animation:"shimmer 1.5s ease-in-out infinite"}}),l.jsx("span",{style:{background:"linear-gradient(90deg, #6c6c6c 0%, #b0b0b0 50%, #6c6c6c 100%)",backgroundSize:"200% 100%",WebkitBackgroundClip:"text",backgroundClip:"text",WebkitTextFillColor:"transparent",animation:"shimmer 2s ease-in-out infinite"},children:"Thinking"}),l.jsx("style",{children:`
8481          @keyframes pulse {
8482            0%, 100% {
8483              opacity: 1;
8484            }
8485            50% {
8486              opacity: 0.5;
8487            }
8488          }
8489          
8490          @keyframes shimmer {
8491            0% {
8492              background-position: -200% 0;
8493            }
8494            100% {
8495              background-position: 200% 0;
8496            }
8497          }
8498        `})]}),sb=Ns.div`
8499  position: relative;
8500  width: 100%;
8501  max-width: 960px;
8502  margin: 0 auto;
8503  display: flex;
8504  flex-direction: column;
8505  gap: 8px;
8506  border-radius: 16px;
8507  padding: 10px;
8508  border: 1px solid #e5e5e5;
8509  background: #ffffff;
8510  transition: opacity 0.3s ease, transform 0.3s ease, border-color 0.2s ease,
8511    box-shadow 0.2s ease;
8512
8513  &:focus-within {
8514    border-color: #d1d5db;
8515    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06), 0 1px 0 rgba(15, 23, 42, 0.03);
8516  }
8517`,ob=Ns.div`
8518  display: flex;
8519  flex: 1;
8520  align-items: center;
8521  cursor: text;
8522  position: relative;
8523`,qO=Ns.div`
8524  position: absolute;
8525  left: 12px;
8526  right: 54px;
8527  top: 8px;
8528  height: 1.25rem;
8529  line-height: 1.25rem;
8530  color: #9ca3af;
8531  pointer-events: none;
8532  transform-origin: bottom left;
8533  white-space: nowrap;
8534  overflow: hidden;
8535  text-overflow: ellipsis;
8536
8537  &.animate-out {
8538    animation: floatUpOut 0.25s ease forwards;
8539  }
8540
8541  &.animate-in {
8542    animation: floatUpIn 0.25s ease forwards;
8543  }
8544
8545  @keyframes floatUpOut {
8546    0% {
8547      opacity: 1;
8548      transform: translateY(0);
8549    }
8550    100% {
8551      opacity: 0;
8552      transform: translateY(-6px);
8553    }
8554  }
8555
8556  @keyframes floatUpIn {
8557    0% {
8558      opacity: 0;
8559      transform: translateY(6px);
8560    }
8561    100% {
8562      opacity: 1;
8563      transform: translateY(0);
8564    }
8565  }
8566`,ib=Ns.textarea`
8567  flex: 1;
8568  border: none;
8569  outline: none;
8570  font-size: 16px;
8571  color: #1f2937;
8572  background: transparent;
8573  padding: 4px 8px;
8574  margin: 4px;
8575  resize: none;
8576  min-height: 24px;
8577  max-height: min(35vh, 200px);
8578  overflow-y: auto;
8579  line-height: 1.4;
8580  font-family: inherit;
8581
8582  &::placeholder {
8583    color: #9ca3af;
8584  }
8585
8586  &:disabled {
8587    cursor: not-allowed;
8588    opacity: 0.6;
8589  }
8590
8591  &:focus {
8592    outline: none;
8593  }
8594`,rb=Ns.div`
8595  display: flex;
8596  align-items: center;
8597  gap: 4px;
8598`,ub=Ns.div`
8599  display: flex;
8600  align-items: center;
8601  gap: 4px;
8602  flex: 1;
8603`,lb=Ns.div`
8604  display: flex;
8605  align-items: center;
8606  gap: 4px;
8607  margin-left: auto;
8608`,cb=Ns.button`
8609  display: flex;
8610  align-items: center;
8611  justify-content: center;
8612  width: 30px;
8613  height: 30px;
8614  border-radius: 50%;
8615  border: none;
8616  background: #000;
8617  color: white;
8618  cursor: pointer;
8619  transition: opacity 0.15s ease;
8620  flex-shrink: 0;
8621
8622  &:hover:not(:disabled) {
8623    opacity: 0.9;
8624  }
8625
8626  svg {
8627    width: 14px;
8628    height: 14px;
8629  }
8630
8631  &:disabled {
8632    opacity: 0.5;
8633    cursor: not-allowed;
8634    background: #6b7280;
8635  }
8636
8637  &:not(:disabled):active {
8638    transform: scale(0.95);
8639  }
8640`,KO=Ns.div`
8641  display: flex;
8642  align-items: center;
8643  gap: 8px;
8644  margin-top: 8px;
8645  padding-top: 8px;
8646`,hf=Ns.button`
8647  display: flex;
8648  align-items: center;
8649  justify-content: center;
8650  width: 28px;
8651  height: 28px;
8652  border-radius: 6px;
8653  border: 1px solid ${t=>t.$active?"#3b82f6":"#e5e7eb"};
8654  background: ${t=>t.$active?"#eff6ff":"#ffffff"};
8655  color: ${t=>t.$active?"#2563eb":"#6b7280"};
8656  cursor: pointer;
8657  transition: all 0.2s ease;
8658  padding: 0;
8659
8660  &:hover {
8661    background: ${t=>t.$active?"#dbeafe":"#f3f4f6"};
8662    color: ${t=>t.$active?"#1d4ed8":"#374151"};
8663    border-color: ${t=>t.$active?"#2563eb":"#d1d5db"};
8664  }
8665
8666  &:active {
8667    transform: scale(0.95);
8668  }
8669
8670  &:disabled {
8671    opacity: 0.5;
8672    cursor: not-allowed;
8673  }
8674
8675  svg {
8676    width: 14px;
8677    height: 14px;
8678  }
8679`;function WO(){const{t,i18n:e}=De(),{sendMessage:n,retryMessage:s,messages:i,inputValue:r,setInputValue:c,isSending:p,error:g}=UO({tokenLimit:{maxTokens:1e5,windowMs:36e5}}),[_,f]=y.useState({}),[h,v]=y.useState(!1),b=y.useRef(!1),[S,x]=y.useState(0),w=y.useRef(null),A=y.useRef(null),E=y.useRef(null),I=y.useRef(null),j=y.useRef(null),T=y.useRef(null),P=()=>{j.current?j.current.scrollTop=j.current.scrollHeight:I.current&&I.current.scrollIntoView({behavior:"auto"})},N=H=>{c(H.target.value),T.current&&(T.current.style.height="auto",T.current.style.height=`${Math.min(T.current.scrollHeight,window.innerHeight*.35)}px`)},D=()=>{$()},F=H=>{c(H),T.current&&(T.current.focus(),T.current.style.height="auto",T.current.style.height=`${Math.min(T.current.scrollHeight,window.innerHeight*.35)}px`)};y.useEffect(()=>{P()},[n]);const[B,L]=y.useState("morning");y.useEffect(()=>{const H=new Date().getHours();H>=5&&H<12?L("morning"):H>=12&&H<18?L("afternoon"):L("evening")},[]),y.useEffect(()=>{if(h||r)return;const H=t("chat.placeholders",{returnObjects:!0});if(!Array.isArray(H)||H.length===0)return;const st=()=>{if(!w.current)return;const lt=w.current;lt.classList.remove("animate-in"),lt.classList.add("animate-out"),setTimeout(()=>{w.current&&(x(M=>(M+1)%H.length),lt.classList.remove("animate-out"),lt.classList.add("animate-in"))},250)};return x(0),A.current&&clearInterval(A.current),A.current=setInterval(st,4200),()=>{A.current&&clearInterval(A.current)}},[h,r,t,e.language]);const $=y.useCallback(async()=>{if(b.current||p)return;const H=r.trim();if(H){b.current=!0,h||v(!0),E.current=H;try{await n(H)}finally{b.current=!1}}},[r,p,h,n]),q=y.useCallback(H=>{f(st=>{if(st[H]==="liked"){const M={...st};return delete M[H],M}return{...st,[H]:"liked"}})},[]),Q=y.useCallback(H=>{f(st=>{if(st[H]==="disliked"){const M={...st};return delete M[H],M}return{...st,[H]:"disliked"}})},[]),V=y.useCallback(async H=>{if(!(p||b.current)){b.current=!0,h||v(!0);try{await s(H)}finally{b.current=!1}}},[p,h,s]);if(!h)return l.jsxs(l.Fragment,{children:[l.jsxs("article",{className:"hero",children:[l.jsx("h1",{children:t(`chat.greeting.${B}`)}),l.jsxs(sb,{children:[l.jsxs(ob,{children:[!h&&!r&&l.jsx(qO,{ref:w,className:"animate-in chat-placeholder-overlay",children:t("chat.placeholders",{returnObjects:!0})[S]||""}),l.jsx(ib,{ref:T,placeholder:"",value:r,onChange:N,onKeyDown:H=>{H.key==="Enter"&&!H.shiftKey&&(H.preventDefault(),D())},disabled:p,maxLength:5e4})]}),l.jsxs(rb,{children:[l.jsx(ub,{}),l.jsx(lb,{children:l.jsx(cb,{type:"button",className:"chat-send-btn",onClick:D,disabled:!r.trim()||p,title:"Send",children:l.jsx(Ky,{})})})]})]}),l.jsxs("div",{className:"search-row",children:[l.jsx("span",{className:"chip",onClick:()=>F(t("chat.chips.search")),children:t("chat.chips.search")}),l.jsx("span",{className:"chip",onClick:()=>F(t("chat.chips.talk")),children:t("chat.chips.talk")}),l.jsx("span",{className:"chip",onClick:()=>F(t("chat.chips.research")),children:t("chat.chips.research")}),l.jsx("span",{className:"chip",onClick:()=>F(t("chat.chips.aiCapabilities")),children:t("chat.chips.aiCapabilities")}),l.jsx("span",{className:"chip",onClick:()=>F(t("chat.chips.more")),children:t("chat.chips.more")})]})]}),l.jsx(J6,{isEmbedded:!0})]});const U=[...i,...g&&!i.some(H=>H.content===g&&H.isError)?[{id:`error-${Date.now()}`,role:"assistant",content:g,isError:!0}]:[]];return l.jsxs("div",{className:"chat-wrapper mx-auto",children:[l.jsxs("div",{ref:j,className:"messages",children:[U.map((H,st)=>{const lt=H.role==="user",M=!H.content?.trim(),gt=st===U.length-1,rt=!lt&&M&&p&&gt,O=H.isError,z=gt&&H.role==="assistant"&&p,Y=H.role==="assistant"&&!M&&!rt&&!z;return l.jsx("div",{className:`message ${H.role==="assistant"?"assistant":""}`,children:H.role==="assistant"?rt?l.jsx(VO,{}):l.jsxs(l.Fragment,{children:[O?l.jsx("div",{style:{color:"#dc2626"},children:H.content}):l.jsx(mM,{children:H.content}),Y&&!z&&l.jsxs(KO,{children:[l.jsx(hf,{type:"button",title:t("chat.actions.like",{defaultValue:"Like"}),$active:_[H.id]==="liked",onClick:()=>q(H.id),children:_[H.id]==="liked"?l.jsx(zN,{}):l.jsx(GN,{})}),l.jsx(hf,{type:"button",title:t("chat.actions.dislike",{defaultValue:"Dislike"}),$active:_[H.id]==="disliked",onClick:()=>Q(H.id),children:_[H.id]==="disliked"?l.jsx(EN,{}):l.jsx(RN,{})}),l.jsx(hf,{type:"button",title:t("chat.actions.retry",{defaultValue:"Retry"}),disabled:p,onClick:()=>V(H.id),children:l.jsx(YN,{spin:p&&gt})})]})]}):H.content},H.id)}),l.jsx("div",{ref:I})]}),l.jsxs(sb,{children:[l.jsx(ob,{children:l.jsx(ib,{ref:T,placeholder:"Ask anything...",value:r,onChange:N,onKeyDown:H=>{H.key==="Enter"&&!H.shiftKey&&(H.preventDefault(),D())},disabled:p,maxLength:5e4})}),l.jsxs(rb,{children:[l.jsx(ub,{}),l.jsx(lb,{children:l.jsx(cb,{type:"button",onClick:D,disabled:!r.trim()||p,title:"Send",children:l.jsx(Ky,{})})})]})]}),l.jsxs("div",{className:"search-row",children:[l.jsx("span",{className:"chip",onClick:()=>F(t("chat.chips.search")),children:t("chat.chips.search")}),l.jsx("span",{className:"chip",onClick:()=>F(t("chat.chips.talk")),children:t("chat.chips.talk")}),l.jsx("span",{className:"chip",onClick:()=>F(t("chat.chips.research")),children:t("chat.chips.research")}),l.jsx("span",{className:"chip",onClick:()=>F(t("chat.chips.more")),children:t("chat.chips.more")})]})]})}const XO={kids:"/company-information/1.png",privacy:"/company-information/2.png",deepfake:"/company-information/3.png",bias:"/company-information/4.png"};function YO({tt:t}){return l.jsxs("section",{className:"brand-hero-section",children:[l.jsxs("div",{className:"brand-hero-inner",children:[l.jsx("h2",{className:"brand-hero-title",children:t("brandIdentity.title")}),l.jsx("p",{className:"brand-hero-slogan",children:t("brandIdentity.subtitle")}),l.jsx("p",{className:"brand-hero-desc",children:t("brandIdentity.description")})]}),l.jsxs("div",{className:"brand-hero-logo-showcase",children:[l.jsx("div",{className:"brand-logo-glow"}),l.jsx("img",{src:"/Logo_doc.png",alt:"React Plus Logo",className:"brand-hero-logo-img"})]})]})}function QO(){const{t}=De(),e="about.companyInformation",n=i=>t(`${e}.${i}`),s=t(`${e}.safety.cards`,{returnObjects:!0})||[];return l.jsxs("article",{className:"prose mx-auto company-info-page",children:[l.jsx("h1",{className:"company-info-title",children:n("intro.title")}),l.jsx("h2",{className:"company-info-subtitle",children:n("intro.subtitle")}),l.jsx("section",{className:"company-overview-section",children:l.jsx("div",{className:"company-overview-card",children:(()=>{try{const i=t(`${e}.intro.items`,{returnObjects:!0});if(!Array.isArray(i))return null;const r=i,c=p=>{if(!p)return p;const g=/(https?:\/\/[^\s]+)/g;return p.split(g).map((_,f)=>_.match(g)?l.jsx("a",{href:_,target:"_blank",rel:"noopener noreferrer",children:_},f):_)};return r.map((p,g)=>l.jsxs("div",{className:"overview-row",children:[l.jsx("div",{className:"overview-label",children:p.title}),l.jsx("div",{className:"overview-value",children:c(p.content)})]},g))}catch{return null}})()})}),l.jsx(YO,{tt:n}),l.jsx("p",{className:"brand-closing-note",children:n("brandIdentity.closingNote")}),l.jsx("div",{className:"brand-divider"}),l.jsxs("div",{className:"company-vision-container",children:[l.jsxs("div",{className:"company-vision-content",children:[l.jsx("h2",{className:"company-vision-title",children:n("vision.title")}),l.jsx("p",{className:"company-vision-body",children:n("vision.body")}),l.jsx("a",{className:"company-vision-btn",onClick:()=>window.location.href="/core-values/ai-driven-development",children:n("vision.learnMore")})]}),l.jsx("div",{className:"company-vision-image",children:l.jsx("img",{src:"/company-information/AI.png",alt:String(n("vision.title"))})})]}),l.jsxs("div",{className:"company-strategy-container",children:[l.jsx("h2",{className:"company-strategy-title",children:n("strategy.title")}),l.jsx("p",{className:"company-strategy-subtitle"}),l.jsxs("div",{className:"company-strategy-grid",children:[l.jsxs("div",{className:"strategy-card card-s1",children:[l.jsx("h3",{className:"strategy-card-title",children:n("strategy.s1.title")}),l.jsx("p",{className:"strategy-card-body",children:n("strategy.s1.body")})]}),l.jsxs("div",{className:"strategy-card card-s2",children:[l.jsx("h3",{className:"strategy-card-title",children:n("strategy.s2.title")}),l.jsx("p",{className:"strategy-card-body",children:n("strategy.s2.body")})]}),l.jsxs("div",{className:"strategy-card card-s3",children:[l.jsx("h3",{className:"strategy-card-title",children:n("strategy.s3.title")}),l.jsx("p",{className:"strategy-card-body",children:n("strategy.s3.body")})]}),l.jsxs("div",{className:"strategy-card card-s4",children:[l.jsx("h3",{className:"strategy-card-title",children:n("strategy.s4.title")}),l.jsx("p",{className:"strategy-card-body",children:n("strategy.s4.body")})]})]})]}),l.jsx("div",{className:"company-mission-container",children:l.jsx("h2",{className:"company-mission-body",children:n("mission.body")})}),l.jsxs("section",{className:"safety-section",children:[l.jsx("h3",{className:"safety-title",children:n("safety.title")}
8679),l.jsx("div",{className:"safety-grid",children:s.map(i=>l.jsxs("div",{className:"safety-card-wrapper",children:[l.jsx("div",{className:"safety-icon-box",children:l.jsx("img",{src:XO[i.id]||"/safety-default.png",alt:i.title,className:"safety-card-img"})}),l.jsx("h4",{className:"safety-card-title",children:i.title}),l.jsx("p",{className:"safety-card-body",children:Array.isArray(i.body)?i.body.join(" "):i.body})]},i.id))})]})]})}function JO(){const{t}=De(),e="about.ourExpert",n=["hai","mai","hung","tuan","tinh","canh","tetsumura"],s=r=>t(r,{returnObjects:!0})||[],i={hai:"/avatars/01.png",mai:"/avatars/02.png",hung:"/avatars/hung.png",tuan:"/avatars/Chu Anh Tuan.png",tinh:"/avatars/tinh.png",canh:"/avatars/canh.png",tetsumura:"/avatars/03.png"};return l.jsxs("div",{className:"expert-page-container",children:[l.jsxs("section",{className:"expert-hero-section",children:[l.jsx("h1",{className:"expert-page-title",children:t(`${e}.ceoMessage.title`)}),l.jsx("div",{className:"expert-ceo-block",children:l.jsxs("div",{className:"expert-ceo-text",children:[s(`${e}.ceoMessage.paragraphs`).map((r,c)=>{const p=r.startsWith("“")||r.startsWith('"')||r.startsWith("「")||r.startsWith("『"),g=r.startsWith("—")||r.startsWith("-")||r.startsWith("―")||r.startsWith("アーサ");return p?l.jsx("p",{className:"expert-ceo-quote",dangerouslySetInnerHTML:{__html:r}},`ceo-message-${c}`):g?l.jsx("p",{className:"expert-ceo-quote-author",dangerouslySetInnerHTML:{__html:r}},`ceo-message-${c}`):l.jsx("p",{dangerouslySetInnerHTML:{__html:r}},`ceo-message-${c}`)}),l.jsxs("div",{className:"expert-ceo-signature-bottom",children:[l.jsx("div",{className:"expert-ceo-signature-name",children:t(`${e}.ceoMessage.name`)}),l.jsx("div",{className:"expert-ceo-signature-role",children:t(`${e}.ceoMessage.role`)})]})]})})]}),l.jsxs("section",{className:"expert-team-section",children:[l.jsx("h2",{className:"expert-section-title",children:t(`${e}.title`)}),l.jsx("div",{className:"expert-team-grid",children:n.map((r,c)=>l.jsxs("div",{className:"expert-member-card",children:[l.jsx("div",{className:"expert-member-image-wrapper",children:l.jsx("img",{src:i[r],alt:String(t(`${e}.${r}.name`)),loading:"lazy",className:`expert-member-image ${c===0?"lead-expert":""}`,style:r==="hung"?{transform:"translateY(55px)"}:r==="canh"?{transform:"scale(1.15) translateY(45px)"}:r==="tinh"?{transform:"scale(1) translateY(25px)"}:void 0})}),l.jsxs("div",{className:"expert-member-info",children:[l.jsx("h3",{className:"expert-member-name",children:t(`${e}.${r}.name`)}),l.jsx("p",{className:"expert-member-role",children:t(`${e}.${r}.role`)}),l.jsx("div",{className:"expert-member-bio",children:l.jsx("div",{className:"expert-member-bio-inner",children:s(`${e}.${r}.paragraphs`).map((p,g)=>l.jsx("p",{children:p},`${r}-${g}`))})})]})]},r))})]})]})}function ZO(){const{t}=De(),e="core.aiEnhanced",n=i=>t(`${e}.${i}`),s=i=>t(`${e}.${i}`,{returnObjects:!0})||[];return l.jsxs("article",{className:"cv-page prose mx-auto",children:[l.jsxs("header",{className:"cv-hero cv-tech-hero",children:[l.jsx("div",{className:"cv-grid-bg","aria-hidden":"true"}),l.jsxs("div",{className:"cv-page-wrap cv-hero-inner",children:[l.jsx("p",{className:"cv-section-label",children:n("heroLabel")}),l.jsx("h1",{children:n("title")}),n("subtitle")&&l.jsx("h2",{style:{fontSize:"24px",color:"#666",marginBottom:"16px",textAlign:"center"},children:n("subtitle")}),l.jsx("div",{className:"cv-hero-desc",children:s("intro.paragraphs").map((i,r)=>l.jsx("p",{children:i},`intro-${r}`))})]})]}),l.jsx("hr",{className:"cv-divider cv-page-wrap"}),l.jsx("section",{className:"cv-section",style:{paddingTop:"clamp(60px, 4vh, 60px)"},children:l.jsxs("div",{className:"cv-page-wrap",children:[l.jsxs("div",{className:"cv-section-header",children:[l.jsx("p",{className:"cv-section-label",children:n("transformation.label")}),l.jsx("h2",{className:"cv-section-title",children:n("transformation.title")}),l.jsx("p",{className:"cv-section-desc",style:{marginBottom:0},children:n("transformation.desc")})]}),l.jsxs("div",{className:"ai-transform-table",children:[l.jsxs("div",{className:"ai-transform-header",children:[l.jsx("div",{className:"ai-transform-cell ai-transform-phase",children:n("transformation.headers.phase")}),l.jsx("div",{className:"ai-transform-cell ai-transform-trad",children:n("transformation.headers.traditional")}),l.jsx("div",{className:"ai-transform-cell ai-transform-ai",children:n("transformation.headers.aiDriven")})]}),t(`${e}.transformation.rows`,{returnObjects:!0}).map((i,r)=>l.jsxs("div",{className:"ai-transform-row",children:[l.jsx("div",{className:"ai-transform-cell ai-transform-phase",children:i.phase}),l.jsx("div",{className:"ai-transform-cell ai-transform-trad",children:i.traditional}),l.jsx("div",{className:"ai-transform-cell ai-transform-ai",children:i.aiDriven})]},r))]}),l.jsx("div",{className:"ai-transform-callout",children:l.jsx("p",{children:n("transformation.callout")})}),l.jsx("p",{className:"ai-transform-result",children:n("transformation.result")})]})}),l.jsx("hr",{className:"cv-divider cv-page-wrap"}),l.jsx("section",{className:"cv-section",style:{paddingTop:"clamp(60px, 4vh, 60px)"},children:l.jsxs("div",{className:"cv-page-wrap",children:[l.jsxs("div",{className:"cv-section-header",children:[l.jsx("p",{className:"cv-section-label",children:n("workflow.label")}),l.jsx("h2",{className:"cv-section-title",children:n("workflow.title")}),l.jsx("p",{className:"cv-section-desc",style:{marginBottom:0},children:n("workflow.desc")})]}),l.jsx("div",{className:"ai-workflow-stages",children:t(`${e}.workflow.stages`,{returnObjects:!0}).map((i,r)=>l.jsxs("div",{className:"ai-workflow-stage",children:[l.jsxs("div",{className:"ai-workflow-stage-num",children:["Stage ",i.num]}),l.jsx("div",{className:"ai-workflow-stage-name",children:i.name}),l.jsx("div",{className:"ai-workflow-stage-actor",children:i.actor}),l.jsx("div",{className:"ai-workflow-stage-desc",children:i.desc})]},r))}),l.jsx("h3",{className:"ai-workflow-compare-title",children:n("workflow.comparisonTitle")}),l.jsxs("div",{className:"ai-transform-table",children:[l.jsxs("div",{className:"ai-transform-header",children:[l.jsx("div",{className:"ai-transform-cell ai-transform-phase",children:n("workflow.comparisonHeaders.criteria")}),l.jsx("div",{className:"ai-transform-cell ai-transform-trad",children:n("workflow.comparisonHeaders.traditional")}),l.jsx("div",{className:"ai-transform-cell ai-transform-ai",children:n("workflow.comparisonHeaders.aiFirst")})]}),t(`${e}.workflow.comparisonRows`,{returnObjects:!0}).map((i,r)=>l.jsxs("div",{className:"ai-transform-row",children:[l.jsx("div",{className:"ai-transform-cell ai-transform-phase",children:i.criteria}),l.jsx("div",{className:"ai-transform-cell ai-transform-trad",children:i.traditional}),l.jsx("div",{className:"ai-transform-cell ai-transform-ai",children:i.aiFirst})]},r))]})]})}),l.jsx("hr",{className:"cv-divider cv-page-wrap"}),l.jsx("section",{className:"cv-section",style:{paddingTop:"clamp(60px, 4vh, 60px)"},children:l.jsxs("div",{className:"cv-page-wrap",children:[l.jsxs("div",{className:"cv-section-header",children:[l.jsx("p",{className:"cv-section-label",children:n("aiAgents.label")}),l.jsx("h2",{className:"cv-section-title",children:n("aiAgents.title")}),l.jsx("p",{className:"cv-section-desc",style:{marginBottom:0},children:n("aiAgents.desc")})]}),l.jsx("div",{className:"ai-agents-grid",children:t(`${e}.aiAgents.agents`,{returnObjects:!0}).map((i,r)=>l.jsxs("div",{className:"ai-agent-card",children:[l.jsx("div",{className:"ai-agent-card-name",children:i.name}),l.jsx("div",{className:"ai-agent-card-desc",children:i.desc}),l.jsx("div",{className:"ai-agent-card-output",children:i.output})]},r))}),l.jsx("h3",{className:"ai-workflow-compare-title",children:n("aiAgents.artifactsTitle")}),l.jsxs("div",{className:"ai-artifacts-table",children:[l.jsxs("div",{className:"ai-artifacts-header",children:[l.jsx("div",{className:"ai-artifacts-cell",children:n("aiAgents.artifactsHeaders.artifact")}),l.jsx("div",{className:"ai-artifacts-cell",children:n("aiAgents.artifactsHeaders.owner")})]}),t(`${e}.aiAgents.artifactsRows`,{returnObjects:!0}).map((i,r)=>l.jsxs("div",{className:"ai-artifacts-row",children:[l.jsx("div",{className:"ai-artifacts-cell",children:i.artifact}),l.jsx("div",{className:"ai-artifacts-cell",children:i.owner})]},r))]})]})}),l.jsx("hr",{className:"cv-divider cv-page-wrap"}),l.jsx("section",{className:"cv-section",style:{paddingTop:"clamp(60px, 4vh, 60px)"},children:l.jsxs("div",{className:"cv-page-wrap",children:[l.jsxs("div",{className:"cv-section-header",children:[l.jsx("p",{className:"cv-section-label",children:n("qualityGates.label")}),l.jsx("h2",{className:"cv-section-title",children:n("qualityGates.title")}),l.jsx("p",{className:"cv-section-desc",style:{marginBottom:0},children:n("qualityGates.desc")})]}),l.jsxs("div",{className:"ai-artifacts-table",children:[l.jsxs("div",{className:"ai-artifacts-header",children:[l.jsx("div",{className:"ai-artifacts-cell",children:n("qualityGates.headers.gate")}),l.jsx("div",{className:"ai-artifacts-cell",children:n("qualityGates.headers.approver")})]}),t(`${e}.qualityGates.rows`,{returnObjects:!0}).map((i,r)=>l.jsxs("div",{className:"ai-artifacts-row",children:[l.jsx("div",{className:"ai-artifacts-cell",children:i.gate}),l.jsx("div",{className:"ai-artifacts-cell",children:i.approver})]},r))]}),l.jsx("div",{className:"ai-transform-callout",children:l.jsx("p",{children:n("qualityGates.principle")})})]})}),l.jsx("hr",{className:"cv-divider cv-page-wrap"}),l.jsx("section",{className:"cv-section",style:{paddingTop:"clamp(60px, 4vh, 60px)"},children:l.jsxs("div",{className:"cv-page-wrap",children:[l.jsxs("div",{className:"cv-section-header",children:[l.jsx("p",{className:"cv-section-label",children:n("techStack.label")}),l.jsx("h2",{className:"cv-section-title",children:n("techStack.title")}),l.jsx("p",{className:"cv-section-desc",style:{marginBottom:0},children:n("techStack.desc")})]}),l.jsx("div",{className:"ai-tech-stack-table",children:t(`${e}.techStack.rows`,{returnObjects:!0}).map((i,r)=>l.jsxs("div",{className:"ai-tech-stack-row",children:[l.jsx("div",{className:"ai-tech-stack-layer",children:i.layer}),l.jsx("div",{className:"ai-tech-stack-technologies",children:i.technologies})]},r))})]})}),l.jsx("hr",{className:"cv-divider cv-page-wrap"}),l.jsx("section",{className:"cv-section",style:{paddingTop:"clamp(60px, 4vh, 60px)"},children:l.jsxs("div",{className:"cv-page-wrap",children:[l.jsxs("div",{className:"cv-section-header",children:[l.jsx("p",{className:"cv-section-label",children:n("applicability.label")}),l.jsx("h2",{className:"cv-section-title",children:n("applicability.title")}),l.jsx("p",{className:"cv-section-desc",style:{marginBottom:0},children:n("applicability.desc")})]}),l.jsxs("div",{className:"ai-applicability-grid",children:[l.jsxs("div",{className:"ai-app-card ai-app-card--good",children:[l.jsxs("div",{className:"ai-app-card-title",children:[l.jsx("span",{style:{color:"#10b981"},children:"✓"})," ",n("applicability.good.title")]}),l.jsx("div",{className:"ai-app-card-content",children:t(`${e}.applicability.good.items`,{returnObjects:!0}).map((i,r)=>l.jsxs("div",{className:"ai-app-item",children:[l.jsx("div",{className:"ai-app-item-title",children:i.title}),l.jsx("div",{className:"ai-app-item-desc",children:i.desc})]},r))})]}),l.jsxs("div",{className:"ai-app-card ai-app-card--bad",children:[l.jsxs("div",{className:"ai-app-card-title",children:[l.jsx("span",{style:{color:"#ef4444"},children:"✕"})," ",n("applicability.bad.title")]}),l.jsx("div",{className:"ai-app-card-content",children:t(`${e}.applicability.bad.items`,{returnObjects:!0}).map((i,r)=>l.jsxs("div",{className:"ai-app-item",children:[l.jsx("div",{className:"ai-app-item-title",children:i.title}),l.jsx("div",{className:"ai-app-item-desc",children:i.desc})]},r))})]})]}),l.jsx("div",{className:"ai-app-footer",children:n("applicability.footer")})]})})]})}const tD=[{id:233,title:"知性の蒸留と米中AI開発競争の深層",date:"2026年8月12日",category:"AIコラム",type_post:"ai",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/233/%E1%BA%A2NH_B%C3%8CA__WEB__10_.png",excerpt:"「知識蒸留」は単なるモデル圧縮技術にとどまらず、いまや米中のAI覇権をめぐる戦略的焦点となっています。技術の本質からダークナレッジ、法的グレーゾーン、そして競争の実態までを徹底解説します。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"「知識蒸留」は単なるモデル圧縮技術にとどまらず、いまや米中のAI覇権をめぐる戦略的焦点となっています。技術の本質からダークナレッジ、法的グレーゾーン、そして競争の実態までを徹底解説します。",rawHtml:`<!DOCTYPE html>\r
8680<html lang="ja">\r
8681<head>\r
8682  <meta charset="UTF-8">\r
8683  <meta name="viewport" content="width=device-width, initial-scale=1.0">\r
8684  <title>知性の蒸留と米中AI開発競争の深層</title>\r
8685  <style type="text/css">\r
8686.rc1{padding:7px 10px;border:1px solid #2F84E8;background:#3893FE;color:#FFFFFF;font-size:14px;line-height:1.45;font-weight:700;vertical-align:top}.rc2{padding:7px 10px;border:1px solid #D8DCE2;background:#FFFFFF;color:#404146;font-size:14px;line-height:1.45;vertical-align:top}.r7{margin:28px 0 12px;font-size:20px;line-height:1.3;font-weight:700;color:#1F6FE0}.r8{margin:0 0 10px;font-size:15px;line-height:1.75;color:#404146;text-align:justify}.r9{margin:20px 0 9px;font-size:17px;line-height:1.3;font-weight:700;color:#404146}.r10{width:100%;border-collapse:collapse;table-layout:fixed;margin:10px 0 6px;border:1px solid #BFBFBF}.r11{width:60%}.r12{width:40%;text-align:right}.r13{margin:6px 0 16px;font-size:13px;line-height:1.5;font-style:italic;color:#6B7787}.r14{margin:16px 0;padding:12px 8px;border-top:1px solid #BFBFBF;border-bottom:1px solid #BFBFBF;text-align:center;font-family:'Cambria Math',Cambria,Georgia,'Times New Roman',serif;font-size:17px;line-height:1.7;font-style:italic;color:#1F6FE0}.r15{font-family:'Cambria Math',Cambria,Georgia,'Times New Roman',serif;font-style:italic}.r16{width:33.33%}.r17{width:22.22%;text-align:right}.r18{margin:0 0 12px;padding:0;list-style:none}.r19{position:relative;margin:0 0 7px;padding-left:24px;font-size:15px;line-height:1.75;color:#404146;text-align:justify}.r20{position:absolute;
8686left:6px;top:0;color:#3893FE;font-weight:700}\r
8687  </style>\r
8688</head>\r
8689<body>\r
8690<div style="box-sizing:border-box;width:100%;max-width:720px;margin:0 auto;padding:0;font-family:'Yu Gothic UI','Yu Gothic','Meiryo','Noto Sans JP','Segoe UI',sans-serif;font-size:15px;line-height:1.75;color:#404146;text-align:left;overflow-wrap:break-word;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%">\r
8691<div style="margin:0 0 40px;padding:0;line-height:0;font-size:0"><img alt="React Plus" src="https://s3.cloudfly.vn/reactplus/LOGO_NGANG(2).svg" style="display:block;height:34px;width:auto" /></div>\r
8692\r
8693<p style="margin:0 0 3px;font-size:32px;line-height:1.25;font-weight:700;color:#404146"><strong>知性の蒸留</strong></p>\r
8694\r
8695<p style="margin:0 0 16px;padding-bottom:14px;border-bottom:1px solid #3893FE;font-size:19px;line-height:1.4;font-weight:400;color:#404146">米中AI開発競争の深層と「知識蒸留」の本質</p>\r
8696\r
8697<p style="margin:0 0 26px;font-size:15px;line-height:1.4;font-weight:700;color:#404146"><strong>著者:ダオ・フウ・フン博士(Ph.D. Dao Huu Hung)</strong></p>\r
8698\r
8699<h1 class="r7">1. 物理的な蒸留から知識蒸留へ</h1>\r
8700\r
8701<p class="r8">酒の蒸留プロセスは、多くの人にとって馴染み深いものでしょう。発酵させた原料を加熱すると、沸点の低いアルコールが先に揮発して冷却・凝縮されます。元の液体のおよそ9割を削ぎ落とし、純度の高いエッセンスである「原酒」のみを抽出する——これが酒造りにおける蒸留であり、物理的な蒸留プロセスの基本原理です。</p>\r
8702\r
8703<p class="r8">AI(人工知能)の分野では、この概念と名称をそのまま借用して「知識蒸留(Distillation)」と呼んでいます。ただし、ここで蒸留されるのは物理的な物質ではなく「知識や能力」そのものです。現代の大規模言語モデル(LLM)は数千億ものパラメータを持ち、稼働には巨大なGPUクラスタと膨大な電力・計算コストを必要とします。しかし、実ビジネスにおける多くの需要——メールの自動分類、契約書の要約、社内FAQへの回答、スマートフォン上でのローカルアシスタント稼働などは、必ずしもそこまでの巨大な計算資源を必要としません。そこで生じるのが、「巨大なLLMの能力を、より軽量な小型モデルへと“蒸留”できないか?」という問いです(ここでの「大小」はパラメータ数やモデルサイズを指します)。</p>\r
8704\r
8705<p class="r8">その答えはすでに10年以上前から存在しており、その実用性の高さには目を見張るものがあります。例えば2019年にHugging Faceが公開した「DistilBERT」(BERTの蒸留版)は、オリジナルモデルよりサイズを約40%削減し、推論速度を約60%高速化しながら、言語理解能力の約97%を維持することに成功しました。長年、知識蒸留は機械学習エンジニアや研究者の専門的な技術トピックにとどまっていました。しかし2025年1月、中国発のモデル「DeepSeek-R1」の登場を機に状況は一変します。「知識蒸留」という技術用語が米国議会への報告書に突如として頻出し、米中という二大超大国のAI覇権競争の核心としてクローズアップされるようになったのです。本記事では、この知識蒸留の技術的本質と、国際競争の深層を解き明かします。</p>\r
8706\r
8707<h1 class="r7">2. ダークナレッジ(潜在的知識 / Dark Knowledge)</h1>\r
8708\r
8709<h2 class="r9">2.1. ハードラベルとソフトラベル</h2>\r
8710\r
8711<p class="r8">知識蒸留の基礎概念は、ジェフリー・ヒントン(Geoffrey Hinton)、オリオール・ヴィニャルス(Oriol Vinyals)、ジェフ・ディーン(Jeff Dean)が2015年に発表した論文『Distilling the Knowledge in a Neural Network』に端を発します(2006年のBuciluăらのモデル圧縮研究に続くものですが、ヒントンらの卓越した洞察によって「知識蒸留」というパラダイムが世界中に広く普及しました)。</p>\r
8712\r
8713<p class="r8">画像認識モデルを例に考えてみましょう。ハスキー犬の画像を入力した際、従来の一般的な学習手法では「正解はハスキー(100%)」という1点のみを教え込みます。これが「ハードラベル(Hard Label)」です。正解か不正解かという二値的な判定はシンプルで実装しやすいものの、人間の柔軟な認識プロセスとは大きく異なります。AI研究の歴史において、人間の思考・推論様式をモデル化することは、常に技術的ブレイクスルーの羅針盤となってきました。</p>\r
8714\r
8715<p class="r8">一方、「ソフトラベル(Soft Label)」は各クラスの可能性を確率分布として表現します(下表参照)。ソフトラベルには2つの大きな利点があります。第一に、人間の直感的な推論に近いこと。第二に、クラス間の曖昧な境界線(ハスキーとオオカミの類似性)と、明確に分離された境界線(ハスキーと猫やトラックの違い)を正確に描写できることでã
8715™ã€‚幼い子どもが初めて写真でハスキーとオオカミの見分け方を教わる場面を想像してください。両者は外見上の特徴が似ているため、迷ったり見間違えたりすることが自然です。見分けに慣れた大人であっても、判別が難しいアングルの写真を見れば「おそらくハスキーだが、オオカミのようにも見える」と判断するでしょう。</p>\r
8716\r
8717<table class="r10">\r
8718	<tbody>\r
8719		<tr>\r
8720			<th class="rc1 r11"><strong>ラベル(クラス)</strong></th>\r
8721			<th class="rc1 r12"><strong>確率</strong></th>\r
8722		</tr>\r
8723		<tr>\r
8724			<td class="rc2 r11">ハスキー</td>\r
8725			<td class="rc2 r12">0.85</td>\r
8726		</tr>\r
8727		<tr>\r
8728			<td class="rc2 r11">オオカミ</td>\r
8729			<td class="rc2 r12">0.11</td>\r
8730		</tr>\r
8731		<tr>\r
8732			<td class="rc2 r11">アラスカン・マラミュート</td>\r
8733			<td class="rc2 r12">0.03</td>\r
8734		</tr>\r
8735		<tr>\r
8736			<td class="rc2 r11">猫</td>\r
8737			<td class="rc2 r12">0.0006</td>\r
8738		</tr>\r
8739		<tr>\r
8740			<td class="rc2 r11">トラック</td>\r
8741			<td class="rc2 r12">0.0000002</td>\r
8742		</tr>\r
8743	</tbody>\r
8744</table>\r
8745\r
8746<p class="r13"><em>※ 確率値は傾向を示す例示であり、実際の測定値ではありません。</em></p>\r
8747\r
8748<p class="r8">この表のデータ全体を詳細に観察すると、ハードラベルでは決して伝えられない本質的な情報が含まれていることが分かります。「ハスキーは猫よりもオオカミやアラスカン・マラミュートに似ており、トラックとは比較にならないほど猫に近い」という概念間の構造的・相対的関係性が、ゼロに近い微小な確率値の中に埋め込まれているのです。</p>\r
8749\r
8750<p class="r8">ヒントンらはこれを<strong>「ダークナレッジ(Dark Knowledge / 潜在的知識)」</strong>と名付けました。天文学における「暗黒物質(ダークマター)」と同様、直接目には見えないものの、知識全体の構造を支配し、圧倒的な情報量を担っているという意味です。</p>\r
8751\r
8752<p class="r8">ここから極めて重要な結論が導かれます。ソフトラベルが付与されたデータは、ハードラベルのみのデータに比べて遥かに豊富な情報密度を持っています。そのため、ソフトラベルを用いて学習するAIモデルは、格段に高い学習効率を達成し、より少ないデータ量・コンパクトなモデルサイズで高精度な汎化性能を獲得できるのです。そしてこの高品質なソフトラベルを生成できる存在こそが、最先端の巨大AIモデルに他なりません。</p>\r
8753\r
8754<h2 class="r9">2.2. 蒸留されるダークナレッジの量を左右する温度パラメータ</h2>\r
8755\r
8756<p class="r8">前述の表における確率分布は、最高値(ハスキー:0.85)に大きく偏っています。その結果、下位クラスに含まれる極小ながら有益なダークナレッジのシグナルが、モデルの学習過程で事実上ゼロとして打ち消されてしまいます。この課題を解決するため、ヒントンらはSoftmax関数に「温度パラメータ(Temperature: <em>T</em>)」を導入しました:</p>\r
8757\r
8758<p class="r14"><span><em>p</em></span><span class="r15"><sub><em>i</em></sub></span><span class="r15"><em> = exp(z</em></span><span class="r15"><sub><em>i</em></sub></span><span class="r15"><em> / T) / &Sigma;</em></span><span class="r15"><sub><em>j</em></sub></span><span class="r15"><em> exp(z</em></span><span class="r15"><sub><em>j</em></sub></span><span class="r15"><em> / T)</em></span></p>\r
8759\r
8760<p class="r8">ここで <em>z<sub>i</sub></em> はロジット(Logit)、すなわち確率へ正規化される前にモデルが出力する未処理のスコアです。</p>\r
8761\r
8762<p class="r8">その仕組みは極めて明快です。ロジットを大きな温度 <em>T</em> で除算することで各スコア間の格差が縮小し、確率分布が滑らか(Soft)になります。これにより、下位の微小な確率が引き上げられ、学習時に有効な情報として伝達されます。<em>T</em> = 1 のときは通常のSoftmax関数となり、<em>T</em> を大きくするほど確率分布は一様分布に近づいていきます。</p>\r
8763\r
8764<table class="r10">\r
8765	<tbody>\r
8766		<tr>\r
8767			<th class="rc1 r16"><strong>ラベル</strong></th>\r
8768			<th class="rc1 r17"><strong>T = 1</strong></th>\r
8769			<th class="rc1 r17"><strong>T = 3</strong></th>\r
8770			<th class="rc1 r17"><strong>T = 10</strong></th>\r
8771		</tr>\r
8772		<tr>\r
8773			<td class="rc2 r16">ハスキー</td>\r
8774			<td class="rc2 r17">0.85</td>\r
8775			<td class="rc2 r17">0.52</td>\r
8776			<td class="rc2 r17">0.31</td>\r
8777		</tr>\r
8778		<tr>\r
8779			<td class="rc2 r16">オオカミ</td>\r
8780			<td class="rc2 r17">0.11</td>\r
8781			<td class="rc2 r17">0.25</td>\r
8782			<td class="rc2 r17">0.24</td>\r
8783		</tr>\r
8784		<tr>\r
8785			<td class="rc2 r16">アラスカン・マラミュート</td>\r
8786			<td class="rc2 r17">0.03</td>\r
8787			<td class="rc2 r17">0.18</td>\r
8788			<td class="rc2 r17">0.23</td>\r
8789		</tr>\r
8790		<tr>\r
8791			<td class="rc2 r16">猫</td>\r
8792			<td class="rc2 r17">0.0006</td>\r
8793			<td class="rc2 r17">0.05</td>\r
8794			<td class="rc2 r17">0.12</td>\r
8795		</tr>\r
8796		<tr>\r
8797			<td class="rc2 r16">トラック</td>\r
8798			<td class="rc2 r17">0.0000002</td>\r
8799			<td class="rc2 r17">0.0001</td>\r
8800			<td class="rc2 r17">0.10</td>\r
8801		</tr>\r
8802	</tbody>\r
8803</table>\r
8804\r
8805<p class="r13"><em>※ 温度パラメータ T による確率分布の平滑化のイメージ。</em></p>\r
8806\r
8807<p class="r8">上表から明らかなように、温度 <em>T</em> を引き上げることで微小な確率が適切に増幅され、隠れていたダークナレッジが顕在化します。知識蒸留の実装では、教師モデル(大規模モデル)と生徒モデル(軽量モデル)の双方に対して共通の高い温度パラメータ <em>T</em> を適用したSoftmax関数を用いて学習を行います。</p>\r
8808\r
8809<h2 class="r9">2.3. 生徒モデルにおける2つの知識ソースの統合学習</h2>\r
8810\r
8811<p class="r8">生徒モデルは、単に教師モデルの出力だけを模倣するわけではありません。「正解データセットが持つハードラベル」と「教師モデルが温度 <em>T</em> のもとで出力するソフトラベル」という2つの異なる知識ソースから同時に学習を進めます。総合的な損失関数(Loss Function: <em>L</em>)は、これら2つの損失の加重和として定義されます:</p>\r
8812\r
8813<p class="r14"><span><em>L = &alpha; &middot; T</em></span><span class="r15"><sup><em>2</em></sup></span><span class="r15"><em> &middot; L</em></span><span class="r15"><sub><em>KD</em></sub></span><span class="r15"><em> + (1 - &alpha;) &middot; L</em></span><span class="r15"><sub><em>CE</em></sub></span></p>\r
8814\r
8815<p class="r8">ここで <em>L<sub>KD</sub></em> はソフトラベルに対する生徒と教師の間のカルバック・ライブラー情報量(KLダイバージェンス損失)、<em>L<sub>CE</sub></em> はハードラベルに対する通常の交差エントロピー損失(Cross-Entropy Loss)、<em>&alpha;</em> は両者のバランスを調整するハイパーパラメータです。係数 <em>T</em><sup>2</sup> は、ロジットを <em>T</em> で割ったことによって縮小した勾配のスケールを適切に補正するために掛け合わされます。</p>\r
8816\r
8817<p class="r8">この数式こそが、知識蒸留の理論的中核です。生徒モデルは正解ラベルという「絶対的な事実」を学びつつ、教師モデルが持つ豊かな「概念間の関連性や不確実性の構造」を効率的に吸収していきます。</p>\r
8818\r
8819<h1 class="r7">3. 実践的な知識蒸留技術</h1>\r
8820\r
8821<h2 class="r9">3.1. 模倣対象に基づく分類</h2>\r
8822\r
8823<p class="r8">生徒モデルが教師モデルの「どの部分」を模倣するかに応じて、主に以下の3つに分類されます:</p>\r
8824\r
8825<p class="r8"><strong>応答ベース蒸留(Response-Based Distillation):</strong>最も標準的で直感的なアプローチです。教師モデルの最終出力層(ソフト確率分布や生成テキスト)のみを模倣対象とします。</p>\r
8826\r
8827<p class="r8"><strong>特徴量ベース蒸留(Feature-Based Distillation):</strong>最終出力だけでなく、中間層(Hidden Layers)やアテンションマップの特徴表現まで生徒モデルに模倣させます。Romeroら(2015)のFitNetsで提唱され、より深い層構造を持つモデルの効率的な学習に寄与します。</p>\r
8828\r
8829<p class="r8"><strong>関係性ベース蒸留(Relation-Based Distillation):</strong>単一のデータサンプルに対する出力にとどまらず、複数のデータサンプル間の相互関係や類似度構造(特徴空間における距離やトポロジー)を生徒モデルに伝達します。</p>\r
8830\r
8831<h2 class="r9">3.2. 運用形態に基づく分類</h2>\r
8832\r
8833<p class="r8"><strong>オフライン蒸留(Offline Distillation):</strong>最も一般的な手法。あらかじめ十分に事前学習された巨大な教師モデルをå›
8833ºå®šï¼ˆFreeze)し、その出力を用いて生徒モデルをゼロから学習させます。</p>\r
8834\r
8835<p class="r8"><strong>オンライン蒸留 / 相互学習(Online Distillation / Deep Mutual Learning):</strong>固定された教師・生徒の関係を設けず、同等規模の複数モデルを並行して同時に学習させ、互いの予測確率を共有しながら協調的に最適化を進めるアプローチです。一方のモデルの誤りが他方のモデルの学びとなり、全体として迅速な最適化が達成されます。</p>\r
8836\r
8837<p class="r8"><strong>自己蒸留(Self-Distillation):</strong>教師と生徒が同一のネットワーク構造・パラメータサイズを持つ手法です。「Born-Again Neural Networks」で示されたように、先行世代のモデルが出力したソフトラベルを用いて次世代の同一モデルを再学習させると、過度な自信(Over-confidence)が抑制され、正則化効果によって予測精度が向上するという興味深い現象が確認されています。</p>\r
8838\r
8839<h2 class="r9">3.3. 教師モデルが大規模言語モデル(LLM)である場合</h2>\r
8840\r
8841<p class="r8">LLMにおける知識蒸留は、有限なクラス分類問題とは異なり、自己回帰的(Autoregressive)に可変長のトークン列を生成するタスクとなります。この性質の違いから、主に「ブラックボックス」と「ホワイトボックス」の2つのアプローチに大別されます。</p>\r
8842\r
8843<p class="r8"><strong>ブラックボックス蒸留(Black-Box Distillation):</strong>教師モデルの内部パラメータ(ロジットや隠れ層)にアクセスできず、生成されたテキストデータのみを利用する手法です。教師モデルへプロンプトを投入して高品質な応答データセットを構築し、それを教師データとして生徒モデルをSFT(教師あり微調整)します。Kim & Rush(2016)のSequence-level蒸留を起源とし、2023年のSelf-Instruct、Alpaca、Vicunaなどで一気に開花しました。現在、この合成データ(Synthetic Data)を用いた学習の適法性を巡り、法的な議論が集中しています。</p>\r
8844\r
8845<p class="r8"><strong>ホワイトボックス蒸留(White-Box Distillation):</strong>教師モデルの内部重みや全語彙の確率分布に直接アクセスできる場合の高度な手法です。</p>\r
8846\r
8847<p class="r8"><strong>KLダイバージェンスの方向性(KL Divergence Direction):</strong>KLダイバージェンスは非対称な尺度であるため、どちらを基準にするかで挙動が大きく変わります。「Forward KL」は教師モデルの分布全体を網羅しようとするため、生徒モデルが不自然な低品質テキストを生成しがちになります。一方、「Reverse KL」は教師モデルが最も高い確信を持つ領域に生徒を集中(Mode-seeking)させるため、MiniLLMのように生成文の流暢さと論理的整合性を劇的に向上させます。</p>\r
8848\r
8849<p class="r8"><strong>推論時の分布シフト対策(On-Policy蒸留):</strong>教師が生成した固定テキストのみで学習すると、生徒モデル自身の推論時に誤差が累積する課題が生じます。「On-Policy蒸留(Generalized Knowledge Distillation: GKD)」では、生徒モデル自身が生成したテキストに対して教師モデルがリアルタイムでフィードバックを与えることで、汎化能力を最大化します(ただし、学習期間中に教師モデルを常時稼働させる計算リソースが必要です)。</p>\r
8850\r
8851<p class="r8"><strong>推論プロセスの蒸留(Reasoning Distillation):</strong>近年最も注目を集める手法です。単に最終的な「正解の回答」を模倣させるのではなく、正解に至る「思考の連鎖(Chain of Thought: CoT)」や推論ステップそのものを教師モデルから生徒モデルへと学習させます。これにより、数B(数十億)パラメータ規模の小型モデルであっても、従来は不可能とされていた高度な多段階推論タスクを解くことが可能になります。</p>\r
8852\r
8853<p class="r8">DeepSeekはまさにこの手法を公に採用し、上位モデル「R1」を教師として、オープンソースの「Qwen」や「Llama」の
8853小型モデルへと推論思考プロセスを蒸留した派生モデル群を、技術レポートとともに公開しました。この点は、後述する第6章の議論を理解する上で極めて重要なファクトです。完全に合法で公開された蒸留と、係争中の蒸留という2つの異なる側面が混同されやすいからです。</p>\r
8854\r
8855<h2 class="r9">3.4. 知識蒸留と複合的な最適化技術</h2>\r
8856\r
8857<p class="r8">実際のプロダクション環境において、知識蒸留は単独で用いられるだけでなく、他のモデル軽量化技術と組み合わせて運用されるのが一般的です。代表的なのが、寄与度の低いニューロンや層を削除した後に蒸留で精度を回復させる「プルーニング(枝刈り / Pruning)」や、数値の計算精度を16bitから8bit/4bitへと落とす「量子化(Quantization)」との併用です。NVIDIAは「Minitron」や「Nemotron」シリーズにおいて、プルーニングと蒸留をシームレスに統合したパイプラインを確立しています。これら3つの技術を融合させることで、モデルの基本性能を実用レベルに維持したまま、サイズを数十倍に圧縮することが可能になります。</p>\r
8858\r
8859<h1 class="r7">4. 応用展開と技術的限界</h1>\r
8860\r
8861<h2 class="r9">4.1. プロダクトへの実装事例と主な応用領域</h2>\r
8862\r
8863<p class="r8">主要なAIベンダーのプロダクトラインナップには共通する階層構造が見られます。最上位にはフラッグシップとなる巨大・高機能・高コストなモデルがあり、その下位に推論速度が速く計算コストが数十倍安価な「Mini」「Flash」「Lite」などの派生モデルが配置されています。Googleが「Gemma 2」の技術レポートで明記しているように、これら軽量モデルの多くは巨大モデルからの知識蒸留によって構築されています。</p>\r
8864\r
8865<p class="r8">知識蒸留がもたらす主要なメリットは以下の4点に集約されます:</p>\r
8866\r
8867<ul class="r18">\r
8868	<li class="r19"><span class="r20">▪</span><strong>圧倒的なコスト削減と超低レイテンシ:</strong>1日に数百万〜数千万回のリクエストを処理する商用システムにおいて、推論コストと応答速度の差はサービスの採算性とUXを直結して左右します。</li>\r
8869	<li class="r19"><span class="r20">▪</span><strong>エッジデバイス・オンプレミス稼働:</strong>スマートフォン、車載システム、産業用カメラ、医療機器などへのローカル実装。通信環境に依存せず、ミリ秒単位のリアルタイム処理と厳格なデータプライバシー保護を両立できます。</li>\r
8870	<li class="r19"><span class="r20">▪</span><strong>ドメイン特化型モデルの効率的な構築:</strong>巨大モデルを教師として特定業務のデータ(数万件規模)を処理させ、その出力を用いて小型モデルを訓練する手法です。汎用的な不要知識を削ぎ落とすことで、特定ドメインにおいては巨大モデルと同等以上の精度を極小のインフラコストで実現できます。</li>\r
8871	<li class="r19"><span class="r20">▪</span><strong>開発期間と投資コストの劇的な圧縮:</strong>数千億円規模の計算資源を持たない企業や研究機関であっても、優れた教師モデルにアクセスできれば、実用に耐えうる高性能モデルを迅速に開発できます。</li>\r
8872</ul>\r
8873\r
8874<p class="r8">そしてこの4点目こそが、技術的な議論を超えて米中間の地政学的な対立の火種となった根本的な要因です(第6章で詳述します)。</p>\r
8875\r
8876<h2 class="r9">4.2. 知識蒸留における制約と課題</h2>\r
8877\r
8878<ul class="r18">\r
8879	<li class="r19"><span class="r20">▪</span><strong>性能の上限(Ceiling Effect):</strong>生徒モデルは教師モデルの出力を模倣して学習するため、汎用的な知能水準において教師モデルを根本的に凌駕することは困難です。知識蒸留は既存の能力をより小さな容積へと高密度に圧縮する技術であり、本質的に「新たな推論能力を創出」するものではありません(複数の多様な教師から学ぶことで上限をわずかに引き上げることは可能ですが、最上位モデル間の性能差が縮まっている現代ではその伸び代も限定的です)。</li>\r
8880	<li class="r19"><span class="r20">▪</span><strong>欠陥やバイアスの継承:</strong>教師モデルに含まれるハルシネーション(幻覚)の傾向、知識の誤り、社会的偏見(バイアス)が生徒モデルへとそのままã
8880‚³ãƒ”ーされます。生徒モデルにとっては教師の出力が「世界の真実」となるため、自律的に誤りを修正することはできません。</li>\r
8881	<li class="r19"><span class="r20">▪</span><strong>表現の多様性の低下:</strong>特にReverse KLなどを用いて高品質な出力を追求した場合、教師モデルの最も安全で確実な表現パターンに過剰適合し、生成される文章の多様性や創造性が減退する傾向があります。</li>\r
8882	<li class="r19"><span class="r20">▪</span><strong>反復蒸留によるモデル崩壊(Model Collapse):</strong>蒸留されたモデルの出力をさらに別のモデルの教師データとして多段に再利用することを繰り返すと、世代を重ねるごとにデータの確率分布が歪み、最終的にモデルの知能が急速に劣化・崩壊(Model Collapse)することが学術的に証明されています。</li>\r
8883</ul>\r
8884\r
8885<p class="r8"><strong>知識蒸留そのものは新しい知能を生み出さない。</strong></p>\r
8886\r
8887<h1 class="r7">5. 法的グレーゾーンと知的財産の課題</h1>\r
8888\r
8889<p class="r8">知識蒸留は法的に適法なのか、それとも違法なのか? 率直に言えば、現行の法制度はこの急速なAI技術の進化を想定して設計されておらず、明確な法的一致は未だ存在しません。</p>\r
8890\r
8891<p class="r8"><strong>利用規約(Terms of Service)の壁:</strong>多くのプロプライエタリなAIベンダーは、自社モデルの出力を「競合モデルの学習に利用すること」を利用規約で明示的に禁じています。しかし、利用規約違反は民事上の契約不履行(アカウント停止や損害賠償請求の対象)であり、直ちに知的財産権の侵害や「窃盗」と法的に同義になるわけではありません。</p>\r
8892\r
8893<p class="r8"><strong>著作権の限界:</strong>例えばOpenAI自身の利用規約では、入力(Input)および出力(Output)に関する権利をユーザーに帰属させると規定されています(ユーザーはAPIトークンに対価を支払っているためです)。また米国著作権法の原則では、純粋にコンピュータ・AIによって自動生成された創作物には著作権が認められません。したがって、API出力を利用したこと自体を著作権侵害として法的に立証することは極めて困難です。</p>\r
8894\r
8895<p class="r8"><strong>営業秘密(Trade Secret)の観点:</strong>最も争点になり得る領域ですが、不正なアクセス行為や守秘義務違反があったことを立証する必要があります。そのため、昨今の告発の焦点は「蒸留という技術行為そのもの」ではなく、「どのようにアクセス制限を回避してデータを抽出したか」というアクセス手法へとシフトしています。</p>\r
8896\r
8897<p class="r8"><strong>業界構造のパラドックス:</strong>コーネル大学客員上級講師であり、GoogleやLinkedInでAI分野の要職を務めたルッツ・フィンガー(Lutz Finger)氏は、大企業のダブルスタンダードを指摘しています。米テック大手が「競合による自社モデルからの蒸留は利用規約違反だ」と非難する一方で、彼ら自身がChatGPTなどの学習のために世界中のニュースメディアやウェブサイトから利用規約を顧みずに膨大なデータをスクレイピングしてきた経緯があるからです。</p>\r
8898\r
8899<p class="r8">さらに現在、米テック大手自身が知識蒸留を公式機能として製品化・ライセンス化する動きを加速させています。OpenAIは自社プラットフォームで「Model Distillation」機能を提供し、MetaはLlama 3.1のライセンスで出力データを用いた他モデルのファインチューニングを明示的に許容し、NVIDIAも自社エコシステム内で蒸留パイプラインを標準機能として提供しています。</p>\r
8900\r
8901<p class="r8">つまり、知識蒸留という技術そのものはAI業界における極めて標準的なエンジニアリング手法です。真の対立点は「誰が、誰のモデルに対して、どのような手段でそれを行ったã
8901®ã‹ã€ã¨ã„う利害関係の衝突にあるのです。</p>\r
8902\r
8903<h1 class="r7">6. 米中AI開発競争の深層</h1>\r
8904\r
8905<h2 class="r9">6.1. 背景:半導体規制とブレイクスルー</h2>\r
8906\r
8907<p class="r8">2022年以降、米国政府は中国への最先端AI半導体(GPU等)の輸出規制を段階的に強化してきました。「AIの進化速度は計算資源の規模に依存するため、先端半導体の供給を断てば中国の開発速度を抑え込める」という地政学的ロジックに基づくものです。</p>\r
8908\r
8909<p class="r8">しかし2025年1月、DeepSeekが推論特化型モデル「R1」を突如発表したことで、市場に激震が走りました。米国トップ水準に迫る極めて高い推論性能を持ちながら、公開された学習コストは米国のフラッグシップモデルの数分の一以下という圧倒的な効率性を誇っていたからです。米国市場ではハイテク株が一時急落し、「半導体規制下において、なぜこのようなモデルが誕生し得たのか?」という根本的な疑問が噴出しました。</p>\r
8910\r
8911<p class="r8">そして、その動揺を打ち消すかのように浮上したのが、「あのモデルは自律的にゼロから開発されたのではなく、米国の先行モデルから知識蒸留を行って作られたに過ぎない」という主張でした。</p>\r
8912\r
8913<h2 class="r9">6.2. 相次ぐ疑惑と主張の経緯</h2>\r
8914\r
8915<p class="r8">2025年1月のR1公開直後、OpenAIとMicrosoftは、R1の学習データの一部にChatGPTの出力データが含まれているのではないかとの疑念を表明しました。</p>\r
8916\r
8917<p class="r8">さらに2026年2月12日、OpenAIは米下院の中国特別委員会に覚書を提出し、中国企業が米国の最先端モデルの成果にフリーライド(ただ乗り)するために知識蒸留を組織的に悪用していると主張。アクセス制限を回避するルーティングや自動抽出スクリプトを用いた具体的な抽出手口を指摘しました。</p>\r
8918\r
8919<p class="r8">その2週間後にはAnthropicも同様に、DeepSeek、Moonshot AI、MiniMaxの中国AI企業3社が、同社の「Claude」に対して協調的な知識蒸留キャンペーンを実施していたと主張しました。</p>\r
8920\r
8921<h2 class="r9">6.3. 「単なるコピー」説の真偽と技術的検証</h2>\r
8922\r
8923<p class="r8"><strong>1. 独自の画期的なアーキテクチャとアルゴリズムの革新:</strong>DeepSeekが発表したのは単なる蒸留済みウェイトではありません。「Multi-Head Latent Attention(MLA)」による劇的なKVキャッシュ圧縮、独自のスパース構造を持つ「DeepSeekMoE」、強化学習の新アルゴリズム「GRPO(Group Relative Policy Optimization)」、そして「FP8精度」による大規模学習フレームワークなど、数々の理論的ブレイクスルーを完全公開しました。とりわけ「R1-Zero」は、人間の模範解答(SFT)を一切介さず、純粋な強化学習のみによって多段階の推論能力を獲得できることを実証しました。単なる出力のコピーであれば、これほど高度かつ実用的な数理モデルや学習理論を自ら創出・公開する必要はありません。これらは世界のAI研究コミュニティから正当な学術的貢献として高く評価されています。</p>\r
8924\r
8925<p class="r8">筆者の個人的な所感としても、DeepSeekのエンジニア陣の数理的センスと設計思想には驚嘆を禁じ得ません。潤沢な資金と巨大GPUクラスタを擁する米国勢は、推論時に膨大なKVキャッシュをそのままメモリ上に展開する「力技(Brute-force)」のアプローチを採りがちでした。一方、計算資源に制約を抱える環境下において、彼らは洗練された線形代数と双方向マッピングを駆使してKVキャッシュを極限まで低次元空間へと圧縮し、推論時に復元するという極めてエレガントな工学的解決策を編み出しました。豊富なリソースに頼らないからこそ生まれた、真の技術的イノベーションと言えます。</p>\r
8926\r
8927<p class="r8"><strong>2. 性能上限のパラドックス(生徒が教師に迫る実測データ):</strong>前述の通り、純粋な知識蒸留のみでは生徒モデルが教師モデルの総合性能を超えることは原理的に不可能です。もし中国勢の進化が単なるコピーに過ぎないならば、米国モデルとの性能格差は恒久的に縮まらないはずです。しかし、公開ベンチマークの
8927実測データは異なる現実を示しています。2026年半ば時点で、Artificial Analysisの知能インデックスにおけるオープンモデルと商用クローズドモデルの差は、前年の13ポイントからわずか6ポイントにまで縮小しました。LMSYSの「Chatbot Arena(LMArena)」におけるEloレーティングの差も約150から約30へと激減。米NIST傘下のCAISI(Center for AI Standards and Innovation)による評価でも、米国の最先端モデルとDeepSeek V4 Proとの実質的な時間差は約8ヶ月程度にまで接近していると推計されています。</p>\r
8928\r
8929<p class="r8"><strong>3. 世界のデベロッパー市場における圧倒的な支持:</strong>Hugging Faceの公表データによると、中国発のオープンモデルは月間ダウンロード数・累計ダウンロード数の双方で米国製モデルを上回り、過去1年間の同プラットフォーム全体のダウンロードシェアの41%を占めるに至りました。この数字は政治的なプロパガンダではなく、世界中の何十万人ものソフトウェアエンジニアが、自らの開発業務に最もコストパフォーマンスと実用性の高いツールを自律的に選択した結果です(一部の国では安全保障上の理由から利用制限政策を導入せざるを得ない事態にまで発展しています)。</p>\r
8930\r
8931<p class="r8"><strong>4. 各ステークホルダーのビジネスモデルと利害の対立:</strong>米大手テック企業が知識蒸留を「国家安全保障の脅威」として位置づける背景には、純粋な防衛意識だけでなく、巨額投資によって築いた自社の独占的プラットフォームとAPIビジネスモデルを防衛したいという強い商業的動機が絡み合っています。</p>\r
8932\r
8933<p class="r8">象徴的なのが、NVIDIAが主導するオープンウェイト(Open-Weight)モデル支持の動きです。NVIDIAにとって、オープンモデルが世界中で普及・自前運用されることは、エンタープライズ向けGPUやソフトウェアエコシステム(NIM等)の売上を最大化する強力なドライバーとなります。そのため同社はオープン陣営を強力に後押ししています。一方で、API利用料モデルに依存するOpenAI、Anthropic、Googleらは当然ながらこの動きに距離を置いています。OpenAIの「Open」という名称が欧州等で皮肉を込めて議論されるのも、こうした事業実態とブランドの乖離が背景にあります。</p>\r
8934\r
8935<h1 class="r7">7. 結論</h1>\r
8936\r
8937<p class="r8">知識蒸留は、ディープラーニング(深層学習)の歴史において最も美しくエレガントなアイデアの一つです。AIモデルが持つ「知識」の本質は、単一の正解ラベルだけにあるのではなく、結論に至る過程で検討・比較された無数の選択肢の確率分布の中にこそ宿っています。それはまさに、人間が経験を通じて培う思考プロセスそのものです。温度パラメータを高めて確率分布を滑らかにし、潜在的なダークナレッジを抽出・転移させる技術は、今後もAIの実用化と社会実装を支える不可欠な基盤であり続けるでしょう。</p>\r
8938\r
8939<p class="r8">しかし同時に、単なる知識蒸留によって作られたモデルは、本質的に教師モデルの影(不完全な写し鏡)にとどまります。蒸留それ自体が、新しいネットワーク構造を設計することも、革新的な学習アルゴリズムを考案することも、手本なしにゼロから推論プロセスを自律獲得する方法を生み出すこともありません。</p>\r
8940\r
8941<p class="r8">したがって、私たちがこの一連の議論から真に受け止めるべき問いは、「誰が誰から蒸留したのか」という表面的な非難合戦ではないはずです。</p>\r
8942\r
8943<p class="r8"><strong>「もしそれが単なるコピーに過ぎないのだとしたら、なぜ世界中の最高峰の研究機関やテックジャイアントたちが、彼らの公開したアーキテクチャ論文を一字一句逃さず熟読し、追試を行っているのか?」</strong></p>\r
8944\r
8945<h1 class="r7">8. 参考文献</h1>\r
8946\r
8947<h2 class="r9">知識蒸留の基礎理論</h2>\r
8948\r
8949<p class="r8">[1] Buciluă, C., Caruana, R., Niculescu-Mizil, A. (2006). Model Compression. KDD 2006.</p>\r
8950\r
8951<p class="r8">
8951[2] Hinton, G., Vinyals, O., Dean, J. (2015). Distilling the Knowledge in a Neural Network. arXiv:1503.02531.</p>\r
8952\r
8953<p class="r8">[3] Romero, A., Ballas, N., Kahou, S. E., Chassang, A., Gatta, C., Bengio, Y. (2015). FitNets: Hints for Thin Deep Nets. ICLR 2015. arXiv:1412.6550.</p>\r
8954\r
8955<p class="r8">[4] Zhang, Y., Xiang, T., Hospedales, T. M., Lu, H. (2018). Deep Mutual Learning. CVPR 2018.</p>\r
8956\r
8957<p class="r8">[5] Furlanello, T., Lipton, Z. C., Tschannen, M., Itti, L., Anandkumar, A. (2018). Born-Again Neural Networks. ICML 2018.</p>\r
8958\r
8959<p class="r8">[6] Sanh, V., Debut, L., Chaumond, J., Wolf, T. (2019). DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter. arXiv:1910.01108.</p>\r
8960\r
8961<h2 class="r9">大規模言語モデル(LLM)における知識蒸留</h2>\r
8962\r
8963<p class="r8">[7] Kim, Y., Rush, A. M. (2016). Sequence-Level Knowledge Distillation. EMNLP 2016, pp. 1317-1327. arXiv:1606.07947.</p>\r
8964\r
8965<p class="r8">[8] Wang, Y., Kordi, Y., Mishra, S., Liu, A., Smith, N. A., Khashabi, D., Hajishirzi, H. (2022). Self-Instruct: Aligning Language Models with Self-Generated Instructions. arXiv:2212.10560.</p>\r
8966\r
8967<p class="r8">[9] Gu, Y., Dong, L., Wei, F., Huang, M. (2024). MiniLLM: Knowledge Distillation of Large Language Models. ICLR 2024. arXiv:2306.08543.</p>\r
8968\r
8969<p class="r8">[10] Agarwal, R., Vieillard, N., Zhou, Y., Stanczyk, P., Ramos, S., Geist, M., Bachem, O. (2024). On-Policy Distillation of Language Models: Learning from Self-Generated Mistakes (GKD). ICLR 2024. arXiv:2306.13649.</p>\r
8970\r
8971<p class="r8">[11] Gemma Team, Google DeepMind (2024). Gemma 2: Improving Open Language Models at a Practical Size. arXiv:2408.00118.</p>\r
8972\r
8973<p class="r8">[12] Muralidharan, S., Turuvekere Sreenivas, S., Joshi, R., Chochowski, M., Patwary, M., Shoeybi, M., Catanzaro, B., Kautz, J., Molchanov, P. (2024). Compact Language Models via Pruning and Knowledge Distillation (Minitron). NeurIPS 2024. arXiv:2407.14679.</p>\r
8974\r
8975<p class="r8">[13] Shumailov, I., Shumaylov, Z., Zhao, Y., Papernot, N., Anderson, R., Gal, Y. (2024). AI models collapse when trained on recursively generated data. Nature, 631(8022), 755-759.</p>\r
8976\r
8977<h2 class="r9">DeepSeekのアーキテクチャおよびアルゴリズム</h2>\r
8978\r
8979<p class="r8">[14] Shao, Z., Wang, P., Zhu, Q., Xu, R., Song, J., Bi, X., Zhang, H., Zhang, M., Li, Y. K., Wu, Y., Guo, D. (2024). DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models. (GRPOアルゴリズムの原典) arXiv:2402.03300.</p>\r
8980\r
8981<p class="r8">[15] DeepSeek-AI (2024). DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model. (Multi-head Latent AttentionおよびDeepSeekMoEの提案) arXiv:2405.04434.</p>\r
8982\r
8983<p class="r8">[16] DeepSeek-AI (2024). DeepSeek-V3 Technical Report. (FP8精度での学習プロセス) arXiv:2412.19437.</p>\r
8984\r
8985<p class="r8">[17] DeepSeek-AI (2025). DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning. arXiv:2501.12948.</p>\r
8986\r
8987<p class="r8">[18] NVIDIA (2025). Llama-Nemotron: Efficient Reasoning Models. arXiv:2505.00949.</p>\r
8988\r
8989<h2 class="r9">ベンチマーク評価および市場動向データ</h2>\r
8990\r
8991<p class="r8">[19] Artificial Analysis (2026/04/30). Recent open weights model launches. https://artificialanalysis.ai/articles/recent-open-weights-model-launches</p>\r
8992\r
8993<p class="r8">[20] Center for AI Standards and Innovation, NIST (2026/05). CAISI Evaluation of DeepSeek V4 Pro. https://www.nist.gov/news-events/news/2026/05/caisi-evaluation-deepseek-v4-pro</p>\r
8994\r
8995<p class="r8">[21] CSIS (2026). What to Know About Chinese AI Models. (Hugging Faceダウンロード統計の出典) https://www.csis.org/analysis/what-know-about-chinese-ai-models</p>\r
8996\r
8997<h2 class="r9">法的紛争および公式声明</h2>\r
8998\r
8999<p class="r8">[22] Cornell Chronicle (2025/01). “Ironic, hypocritical” of big tech to call out DeepSeek. (Lutz Finger氏の声明) https://news.cornell.edu/media-relations/tip-sheets/ironic-hypocritical-big-tech-call-out-deepseek</p>\r
9000\r
9001<p class="r8">[23] OpenAI (2026/02/12). Letter to the House Select Committee on the Strategic Competition between the United States and the Chinese Communist Party on Updated Stakes for American-Led, Democratic AI.</p>\r
9002\r
9003<p class="r8">[24] Bloomberg (2026/02/12). OpenAI Accuses China’s DeepSeek of Distilling US AI Models to Gain an Edge.</p>\r
9004\r
9005<p class="r8">[25] CNBC (2026/02/24). Anthropic accuses DeepSeek, Moonshot and MiniMax of distillation attacks on Claude. https://www.cnbc.com/2026/02/24/anthropic-openai-china-firms-distillation-deepseek.html</p>\r
9006\r
9007<p class="r8">[26] OpenAI. Terms of Use (利用規約:InputおよびOutputに対する所有権条項).</p>\r
9008</div>\r
9009</body>\r
9010</html>`},{id:232,title:"次世代がAIと共存するために、私たちは何をすべきか?",date:"2026年8月5日",category:"AIコラム",type_post:"ai",imageUrl:"https://s3.cloudfly.vn/reactplus/Screenshot 2026-08-05 at 21.01.47.png",excerpt:"これは技術の問いではありません。人間の問いです——AIが生活の不可欠な一部となった世界で育つ子どもたちのために、私たちは何を準備すべきでしょうか。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"これは技術の問いではありません。人間の問いです——AIが生活の不可欠な一部となった世界で育つ子どもたちのために、私たちは何を準備すべきでしょうか。",rawHtml:`<!DOCTYPE html>\r
9011<html lang="ja">\r
9012<head>\r
9013  <meta charset="UTF-8">\r
9014  <meta name="viewport" content="width=device-width, initial-scale=1.0">\r
9015  <title>次世代がAIと共に生きるために、教育は何をすべきか?</title>\r
9016  <style>\r
9017    /* Chi ap dung cho ban doc doc lap. Khi dan vao CMS thi bo qua khoi nay. */\r
9018    html{-webkit-text-size-adjust:100%}\r
9019    body{margin:0;background:#fff;padding:56px 24px 72px}\r
9020  </style>\r
9021</head>\r
9022<body>\r
9023    <!-- ===================== BAT DAU DAN VAO CMS ===================== -->\r
9024    <style>\r
9025@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=Noto+Sans:wght@400;500;700&display=swap');\r
9026\r
9027/* =========================================================================\r
9028   React Plus — module bai viet dang editorial. Moi selector deu nam duoi\r
9029   .rp-article nen khong dung den CSS cua website, va CSS cua website cung\r
9030   khong voi vao duoc. Khong dung html / body / dau sao / :root.\r
9031   ========================================================================= */\r
9032.rp-article{\r
9033  --ink:#141B2A;\r
9034  --body:#2F3844;\r
9035  --muted:#6D7784;\r
9036  --cobalt:#1F6FE0;\r
9037  --cobalt-dk:#0E4796;\r
9038  --tint:#EAF1FC;\r
9039  --paper:#F4F6F9;\r
9040  --rule:#DFE4EA;\r
9041  --rule-mid:#B9C2CE;\r
9042  --serif:"Yu Gothic UI", "Yu Gothic", "Meiryo", "Noto Sans JP", "Noto Sans", Arial, sans-serif;\r
9043  --sans:"Yu Gothic UI", "Yu Gothic", "Meiryo", "Noto Sans JP", "Noto Sans", Arial, sans-serif;\r
9044\r
9045  container-type:inline-size;\r
9046  box-sizing:border-box;\r
9047  max-width:720px;\r
9048  margin:0 auto;\r
9049  padding:0;\r
9050  background:transparent;\r
9051  color:var(--body);\r
9052  font-family: "Yu Gothic UI", "Yu Gothic", "Meiryo", "Noto Sans JP", "Noto Sans", Arial, sans-serif !important;\r
9053  font-feature-settings: normal !important;\r
9054  font-variation-settings: normal !important;\r
9055  font-size:17px;\r
9056  font-weight:400;\r
9057  line-height:1.95;\r
9058  letter-spacing:.02em;\r
9059  text-align:left;\r
9060  word-break:normal;\r
9061  line-break:strict;\r
9062  overflow-wrap:break-word;\r
9063  -webkit-font-smoothing:antialiased;\r
9064  -webkit-text-size-adjust:100%;\r
9065}\r
9066.rp-article *,.rp-article *::before,.rp-article *::after{box-sizing:border-box}\r
9067.rp-article p,.rp-article h1,.rp-article h2,.rp-article h3,\r
9068.rp-article ul,.rp-article ol,.rp-article li,\r
9069.rp-article figure,.rp-article blockquote,\r
9070.rp-article header,.rp-article nav,.rp-article section,\r
9071.rp-article div,.rp-article span,.rp-article a{\r
9072  margin:0;padding:0;border:0;background:none;text-indent:0\r
9073}\r
9074\r
9075/* --- dau hieu ba lop lao dong: vach duoc to xanh la lop dang noi den.\r
9076       Lop 3 dung dung .rp-mark mac dinh, tuc vach tren cung mau xanh. --- */\r
9077.rp-article .rp-mark{display:none !important;flex:0 0 auto;width:18px;height:11px;position:relative}\r
9078.rp-article .rp-mark::before{\r
9079  content:"";position:absolute;inset:0;\r
9080  background:\r
9081    linear-gradient(var(--cobalt),var(--cobalt)) left 0/100% 2px no-repeat,\r
9082    linear-gradient(var(--rule-mid),var(--rule-mid)) left 50%/100% 2px no-repeat,\r
9083    linear-gradient(var(--rule-mid),var(--rule-mid)) left 100%/100% 2px no-repeat;\r
9084}\r
9085.rp-article .rp-mark-2::before{\r
9086  background:\r
9087    linear-gradient(var(--rule-mid),var(--rule-mid)) left 0/100% 2px no-repeat,\r
9088    linear-gradient(var(--cobalt),var(--cobalt)) left 50%/100% 2px no-repeat,\r
9089    linear-gradient(var(--rule-mid),var(--rule-mid)) left 100%/100% 2px no-repeat;\r
9090}\r
9091.rp-article .rp-mark-1::before{\r
9092  background:\r
9093    linear-gradient(var(--rule-mid),var(--rule-mid)) left 0/100% 2px no-repeat,\r
9094    linear-gradient(var(--rule-mid),var(--rule-mid)) left 50%/100% 2px no-repeat,\r
9095    linear-gradient(var(--cobalt),var(--cobalt)) left 100%/100% 2px no-repeat;\r
9096}\r
9097\r
9098/* --- dong meta dau bai --- */\r
9099.rp-article .rp-meta{\r
9100  display:flex;align-items:center;gap:12px;\r
9101  padding-bottom:14px;border-bottom:1px solid var(--rule);margin-bottom:36px\r
9102}\r
9103.rp-article .rp-meta-text{\r
9104  font-size:12px;font-weight:500;letter-spacing:.14em;color:var(--muted);line-height:1.6\r
9105}\r
9106\r
9107/* --- tieu de bai --- */\r
9108.rp-article .rp-kicker{\r
9109  display:inline-block;font-size:12px;font-weight:700;letter-spacing:.16em;\r
9110  color:var(--cobalt);margin-bottom:16px\r
9111}\r
9112.rp-article .rp-headline{\r
9113  font-family:var(--serif);font-weight:600;color:var(--ink);\r
9114  font-size:33px;font-size:clamp(26px,5.1cqi,38px);\r
9115  line-height:1.52;letter-spacing:.02em;margin-bottom:24px;text-wrap:balance\r
9116}\r
9117.rp-article .rp-lead{\r
9118  font-size:16px;line-height:2;color:#586373;margin-bottom:30px\r
9119}\r
9120.rp-article .rp-byline{\r
9121  display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;\r
9122  padding-top:16px;border-top:1px solid var(--rule)\r
9123}\r
9124.rp-article .rp-byline-label{font-size:11px;letter-spacing:.18em;color:var(--muted);font-weight:500}\r
9125.rp-article .rp-byline-name{font-family:var(--serif);font-size:16px;font-weight:600;color:var(--ink)}\r
9126\r
9127/* --- muc luc --- */\r
9128.rp-article .rp-index{margin:36px 0 48px;padding:22px 24px;background:var(--paper)}\r
9129.rp-article .rp-index-label{\r
9130  display:block;font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--muted);margin-bottom:10px\r
9131}\r
9132.rp-article .rp-index a{\r
9133  display:grid;grid-template-columns:32px 1fr;gap:0 10px;align-items:baseline;\r
9134  padding:10px 0;border-top:1px solid var(--rule);\r
9135  color:var(--ink);text-decoration:none\r
9136}\r
9137.rp-article .rp-index a:hover .rp-index-title{color:var(--cobalt)}\r
9138.rp-article .rp-index a:focus-visible{outline:2px solid var(--cobalt);outline-offset:2px}\r
9139.rp-article .rp-index-num{font-family:var(--serif);font-weight:600;font-size:15px;color:var(--cobalt);letter-spacing:.04em}\r
9140.rp-article .rp-index-title{font-family:var(--serif);font-weight:500;font-size:15px;line-height:1.65}\r
9141\r
9142/* --- chuong --- */\r
9143.rp-article .rp-section{margin:0 0 56px;scroll-margin-top:88px}\r
9144.rp-article .rp-chapter{\r
9145  display:grid;grid-template-columns:auto 1fr;gap:0 16px;align-items:baseline;\r
9146  border-top:2px solid var(--ink);padding-top:14px;margin-bottom:28px\r
9147}\r
9148.rp-article .rp-chapter-num{\r
9149  font-family:var(--serif);font-weight:600;color:var(--cobalt);\r
9150  font-size:32px;font-size:clamp(25px,4.6cqi,36px);line-height:1;letter-spacing:.02em\r
9151}\r
9152.rp-article .rp-chapter-title{\r
9153  font-family:var(--serif);font-weight:600;color:var(--ink);\r
9154  font-size:20px;font-size:clamp(18px,3cqi,23px);line-height:1.5;letter-spacing:.02em\r
9155}\r
9156\r
9157/* --- cau chu de cua chuong --- */\r
9158.rp-article .rp-thesis{\r
9159  font-family:var(--serif);font-weight:600;color:var(--ink);\r
9160  font-size:18px;font-size:clamp(16px,2.6cqi,19px);line-height:1.85;\r
9161  border-left:2px solid var(--cobalt);padding-left:18px;margin-bottom:32px\r
9162}\r
9163\r
9164/* --- than bai --- */\r
9165.rp-article .rp-text{margin-bottom:30px}\r
9166.rp-article .rp-text p{margin-bottom:1.5em}\r
9167.rp-article .rp-text p:last-child{margin-bottom:0}\r
9168.rp-article .rp-text strong,.rp-article .rp-closing strong{\r
9169  font-weight:700;color:var(--ink);\r
9170  background:linear-gradient(transparent 68%,rgba(31,111,224,.15) 68%)\r
9171}\r
9172\r
9173/* --- trich dan --- */\r
9174.rp-article .rp-quote{\r
9175  margin:34px 0;padding:26px 28px 28px;background:var(--paper);border-top:2px solid var(--cobalt)\r
9176}\r
9177.rp-article .rp-quote p{\r
9178  font-family:var(--serif);font-weight:500;color:var(--ink);\r
9179  font-size:17px;font-size:clamp(16px,2.5cqi,18px);line-height:1.95;letter-spacing:.02em\r
9180}\r
9181\r
9182/* --- bang ba lop lao dong --- */\r
9183.rp-article .rp-layers{margin:34px 0}\r
9184.rp-article .rp-layer{\r
9185  display:grid;grid-template-columns:46px 1fr;gap:0 18px;\r
9186  padding:20px 0;border-top:1px solid var(--rule)\r
9187}\r
9188.rp-article .rp-layer:last-child{border-bottom:2px solid var(--ink)}\r
9189.rp-article .rp-layer-id{padding-top:6px}\r
9190.rp-article .rp-layer-num{\r
9191  display:block;font-family:var(--serif);font-weight:600;font-size:21px;line-height:1;\r
9192  color:var(--rule-mid);letter-spacing:.02em;margin-top:9px\r
9193}\r
9194.rp-article .rp-layer-on .rp-layer-num{color:var(--cobalt)}\r
9195.rp-article .rp-layer-name{\r
9196  font-family:var(--serif);font-weight:600;font-size:17px;line-height:1.6;color:var(--ink);margin-bottom:6px\r
9197}\r
9198.rp-article .rp-layer-desc{font-size:15px;line-height:1.8;margin-bottom:10px}\r
9199.rp-article .rp-layer-tag{\r
9200  display:inline-block;font-size:12px;font-weight:500;letter-spacing:.06em;line-height:1.7;\r
9201  color:var(--cobalt-dk);background:var(--tint);padding:3px 10px\r
9202}\r
9203.rp-article .rp-layer-on .rp-layer-tag{background:var(--cobalt);color:#fff}\r
9204\r
9205/* --- ba viec lam duoc ngay --- */\r
9206.rp-article .rp-steps{margin:34px 0 0}\r
9207.rp-article .rp-step{\r
9208  display:grid;grid-template-columns:98px 1fr;gap:0 20px;\r
9209  padding:22px 0;border-top:1px solid var(--rule)\r
9210}\r
9211.rp-article .rp-step:last-child{border-bottom:1px solid var(--rule)}\r
9212.rp-article .rp-step-lbl{font-size:12px;font-weight:700;letter-spacing:.1em;color:var(--cobalt);line-height:2.1}\r
9213.rp-article .rp-step-title{\r
9214  font-family:var(--serif);font-weight:600;font-size:17px;line-height:1.6;color:var(--ink);margin-bottom:8px\r
9215}\r
9216.rp-article .rp-step-desc{font-size:15px;line-height:1.85}\r
9217\r
9218/* --- duong phan cach giua cac chuong --- */\r
9219.rp-article .rp-sep{display:flex;align-items:center;justify-content:center;gap:16px;margin:46px 0}\r
9220.rp-article .rp-sep::before,.rp-article .rp-sep::after{content:"";flex:1;border-top:1px solid var(--rule)}\r
9221\r
9222/* --- doan ket --- */\r
9223.rp-article .rp-closing{\r
9224  margin:54px 0 0;padding:34px 32px 36px;background:var(--paper);border-top:3px solid var(--cobalt)\r
9225}\r
9226.rp-article .rp-closing p{\r
9227  font-family:var(--serif);font-weight:500;font-size:17px;line-height:2;color:var(--body);margin-bottom:1.15em\r
9228}\r
9229.rp-article .rp-closing p:last-child{margin-bottom:0;color:var(--ink);font-weight:600}\r
9230\r
9231/* --- dong ky ten cuoi bai --- */\r
9232.rp-article .rp-colophon{\r
9233  display:flex;align-items:center;gap:14px;margin-top:40px;padding-top:18px;border-top:1px solid var(--rule)\r
9234}\r
9235.rp-article .rp-colophon-logo{height:22px;width:auto;display:block;flex:0 0 auto}\r
9236.rp-article .rp-colophon-text{font-size:11px;letter-spacing:.1em;color:var(--muted);line-height:1.7}\r
9237\r
9238/* --- khung hep: dung container query nen do rong cot bai viet quyet dinh,\r
9239       khong phu thuoc do rong man hinh --- */\r
9240@container (max-width:560px){\r
9241  .rp-article .rp-chapter{grid-template-columns:1fr;gap:6px 0}\r
9242  .rp-article .rp-step{grid-template-columns:1fr;gap:4px 0}\r
9243  .rp-article .rp-step-lbl{line-height:1.8}\r
9244  .rp-article .rp-layer{grid-template-columns:34px 1fr;gap:0 12px}\r
9245  .rp-article .rp-quote{padding:20px 18px 22px}\r
9246  .rp-article .rp-closing{padding:26px 20px 28px}\r
9247  .rp-article .rp-index{padding:18px 16px}\r
9248}\r
9249@media (max-width:560px){\r
9250  .rp-article .rp-chapter{grid-template-columns:1fr;gap:6px 0}\r
9251  .rp-article .rp-step{grid-template-columns:1fr;gap:4px 0}\r
9252  .rp-article .rp-step-lbl{line-height:1.8}\r
9253  .rp-article .rp-layer{grid-template-columns:34px 1fr;gap:0 12px}\r
9254  .rp-article .rp-quote{padding:20px 18px 22px}\r
9255  .rp-article .rp-closing{padding:26px 20px 28px}\r
9256  .rp-article .rp-index{padding:18px 16px}\r
9257}\r
9258    </style>\r
9259\r
9260    <article class="rp-article">\r
9261\r
9262      <!-- dong meta -->\r
9263      <div class="rp-meta">\r
9264        <span class="rp-meta-text">Blog Vol.1 &nbsp;·&nbsp; 教育と未来</span>\r
9265      </div>\r
9266\r
9267      <!-- tieu de. Neu CMS da tu in tieu de bai thi xoa the header nay -->\r
9268      <header class="rp-head">\r
9269        <span class="rp-kicker"><span style="white-space:nowrap">次世代</span>への視点</span>\r
9270        <h1 class="rp-headline"><span style="white-space:nowrap">次世代が</span><span style="white-space:nowrap">AIと共存するために</span>、私たちは<span style="white-space:nowrap">何をすべきか?</span></h1>\r
9271        <p class="rp-lead">これは技術の問いではありません。人間の問いです——AIが生活の不可欠な一部となった世界で育つ子どもたちのために、私たちは何を準備すべきでしょうか。</p>\r
9272        <div class="rp-byline">\r
9273          <span class="rp-byline-label">著者</span>\r
9274          <span class="rp-byline-name">ダオ・フウ・フン博士(Ph.D. Dao Huu Hung)</span>\r
9275        </div>\r
9276      </header>\r
9277\r
9278      <!-- muc luc -->\r
9279      <nav class="rp-index" aria-label="目次">\r
9280        <span class="rp-index-label">目次</span>\r
9281          <a href="#rp-s1"><span class="rp-index-num">01</span><span class="rp-index-title">1冊の本から知識の大海へ</span></a>\r
9282          <a href="#rp-s2"><span class="rp-index-num">02</span><span class="rp-index-title">AIがもたらす労働の3層構造化</span></a>\r
9283          <a href="#rp-s3"><span class="rp-index-num">03</span><span class="rp-index-title">ベトナムの教育——期待の持てる兆し</span></a>\r
9284          <a href="#rp-s4"><span class="rp-index-num">04</span><span class="rp-index-title">今日、まさに形成されつつある「第3層」</span></a>\r
9285      </nav>\r
9286\r
9287      <!-- 01 -->\r
9288      <section class="rp-section" id="rp-s1">\r
9289        <div class="rp-chapter">\r
9290          <div class="rp-chapter-num">01</div>\r
9291          <h2 class="rp-chapter-title">1冊の本から知識の大海へ</h2>\r
9292        </div>\r
9293        <p class="rp-thesis">技術の飛躍は常に新たな地平を開く——問題は「使うべきか」ではなく、「より良く活用するために何を準備すべきか」である。</p>\r
9294        <div class="rp-text">\r
9295        <p>素晴らしい本に出会ったときのあの感覚を覚えていますか? 画面上で読むのではなく、SNSのタイムラインをスクロールするのでもなく。紙の本を手に持ち、ページを繰り、ふと手を止めさせる魅力的な一節に出会うあの瞬間です。</p>\r
9296        <p>インターネットがなかった1990年代、その瞬間の重みは現在とは全く異なっていました。本の中の新しいアイデアは、それが正しくても間違っていても、何日も、時には何ヶ月もそのテーマについてあなたが触れられる唯一の情報だったかもしれません。読み、思索し、信じるか疑うか——しかし、それを即座に検証する手段はほぼありませんでした。「ファクトチェック」は当時の贅沢な概念でした。図書館も誰もが簡単にアクセスできる場所ではありませんでした。自由かつ深く議論できる相手も、運が良くても片手で数えるほどでした。偽情報や意図的な誘導情報はどの時代にも存在します。ただ当時の私たちは、それに気づくためのツールが少なかっただけなのです。</p>\r
9297      </div>\r
9298        <div class="rp-quote"><p>新しい知識が詰まった本や記事を読むとき、私たちはそれを新しい地平として受け入れます。それは正しいかもしれないし、間違っているかもしれません。それを認識できるかどうかは、一人ひとりの能力と知識にかかっています。</p></div>\r
9299        <div class="rp-text">\r
9300        <p>やがてベトナムにインターネットが導入され普及しました。突然、1冊の本は知識を探求する旅の終着点ではなくなり、スタート地点となりました。1つの章を読み終え、Googleにキーワードや著者名を入力すると、広大な世界が広がります。反論記事、補足説明、対立する視点、関連研究など……。知識は突如として相互に接続(interconnected)され、それまで豊かな経験を持つ専門家しかできなかったような形で繋がるようになったã
9300®ã§ã™ã€‚</p>\r
9301        <p>私がハノイ工科大学(BKHN)の4年生で研究を始めた頃、参考論文の中で最も魅力的だったのは関連研究(Related Works)のセクションでした。大学の最終学年だけでなく、修士課程、さらにはその後の博士課程に至るまで、私は自分の感覚を表現するのに<strong>「知識の大海を泳ぐ」</strong>という言葉を使わなければなりませんでした。現在、AIは同じことをさらに一歩深く行っています。関連情報を探すだけでなく、質問し、対話し、掘り下げ、分かりやすい解説を求め、時系列や文脈に沿って知識を整理させることができます。AIは一見バラバラに見えるものを要約し、接続し、体系的に並べてくれるのです。</p>\r
9302        <p>そしてさらに重要なのは、かつて恵まれた環境やネットワークを持つ人しか持ち得なかった「情報の検証能力」が、今や誰もが手にできるようになったということです。AIが提供した情報に疑問を感じたとき、同じチャット内で即座に尋ねることができます。「なぜそのように結論付けたのですか?」「他の視点はありますか?」「これはベトナムの文脈でも正しいですか?」AIは説明し、照合し、往々にして自らの限界を示します。学位も、専門家を雇う資金も不要です。必要なのは「正しい質問をする力」と「優れた論理的思考力」だけです。</p>\r
9303        <p>AIにはまだ誤りがあり、時には引用元を捏造したり、数字を間違えたり、確定していないことを自信満々に主張したりすることもあります。しかし日常の実用において、深刻なエラーの発生頻度は人々が心配するよりも遥かに少ないのが現実です。さらに、2026年のAIは2022年のAIとは大きく異なります。精度だけでなく、確信が持てないことへの対処法も進化しました。それっぽい答えを捏造する代わりに、「これについては確信がありません」と言ったり、自ら限界を設定したりすることが増えています。Googleで検索しても無関係な結果が出たり意図的な誘導情報が含まれたりすることを受け入れつつ、誰もが毎日Googleを使っているのと変わりません。AIは完璧ではありませんが、日常の大部分のシチュエーションにおける信頼性は、実用的な仕事のツールとして十分に機能するレベルに達しています。</p>\r
9304        <p><strong>技術の飛躍は常に新たな地平を開きます。</strong>問題は決して「使うべきか」ではなく、「より良く活用するために、私たちは何を準備すべきか」なのです。</p>\r
9305      </div>\r
9306      </section>\r
9307\r
9308      <div class="rp-sep" role="presentation">&nbsp;</div>\r
9309\r
9310      <!-- 02 -->\r
9311      <section class="rp-section" id="rp-s2">\r
9312        <div class="rp-chapter">\r
9313          <div class="rp-chapter-num">02</div>\r
9314          <h2 class="rp-chapter-title">AIがもたらす労働の3層構造化</h2>\r
9315        </div>\r
9316        <p class="rp-thesis">技術が労働の一層を奪うたび、人間はより高い層へと移行してきた。今回も例外ではない。</p>\r
9317        <div class="rp-text">\r
9318        <p>私たちの祖父母の世代が経験した、古典的な恐怖があります。20世紀初頭、工場に組み立てラインが登場したとき、作業員たちは驚きと不安の入り混じった目で機械を見つめました。機械は疲れを知らず、ストライキも起こさず、昼食休憩も必要ありません。同じ動作を何千回も寸分の狂いもなく繰り返します。</p>\r
9319        <p>何百万もの肉体労働が消失しました。しかし人間は労働市場から消えたのではなく、新たな領域へと移行しました。手作業の肉体労働から機械の操作へ、操作から設計へ、設計からより複雑なシステムの管理へ。機械が1つの職種を奪うたびに、人間は機械の手が届かない新たな職種の階層を見つけ出してきたã
9319®ã§ã™ã€‚そしてその階層——20世紀から21世紀初頭にかけて——は常に安全な聖域であり続けました。それが「頭脳労働(知的労働)」です。</p>\r
9320      </div>\r
9321        <div class="rp-layers">\r
9322          <div class="rp-layer">\r
9323          <div class="rp-layer-id">\r
9324            <span class="rp-layer-num">01</span>\r
9325          </div>\r
9326          <div>\r
9327            <div class="rp-layer-name">物理的な肉体労働</div>\r
9328            <div class="rp-layer-desc">筋力、搬送、組み立て、製造</div>\r
9329            <span class="rp-layer-tag">産業革命により代替完了</span>\r
9330          </div>\r
9331        </div>\r
9332          <div class="rp-layer">\r
9333          <div class="rp-layer-id">\r
9334            <span class="rp-layer-num">02</span>\r
9335          </div>\r
9336          <div>\r
9337            <div class="rp-layer-name">デジタルな単純作業(デジタル肉体労働)</div>\r
9338            <div class="rp-layer-desc">データ入力、コピペ、フォーム入力、メール処理、レポート作成——手ではなくキーボード操作だが、本質はデジタル環境における単純反復作業</div>\r
9339            <span class="rp-layer-tag">AIエージェントが代替中</span>\r
9340          </div>\r
9341        </div>\r
9342          <div class="rp-layer rp-layer-on">\r
9343          <div class="rp-layer-id">\r
9344            <span class="rp-layer-num">03</span>\r
9345          </div>\r
9346          <div>\r
9347            <div class="rp-layer-name">思考・方向性・責任</div>\r
9348            <div class="rp-layer-desc">正しい問いを立てる。判断を下す。決定に責任を持つ。AIが生成する世界の中で人間らしさ(アイデンティティ)を維持する。</div>\r
9349            <span class="rp-layer-tag">AI時代における人間の立ち位置</span>\r
9350          </div>\r
9351        </div>\r
9352        </div>\r
9353        <div class="rp-text">\r
9354        <p>私たちは通常、労働には肉体労働と頭脳労働の2種類しかないと考えがちです。しかし、あまりに身近すぎて多くの人が見落としている「中間層」が存在します。重い荷物を運ぶわけでもなく、クリエイティブな創造をするわけでもありません。それは、何百万人ものオフィスワーカーが毎日行っている作業です。システムへのデータ入力、ファイル間のデータコピー&ペースト、フォーム入力、定型メールの送信など。手はキーボードを叩き、目は画面を見ていますが、脳はほとんど深く思考していません。<strong>これはコンピュータ・ソフトウェア時代に生まれた、デジタル環境で行われる「もう一つの単純作業(デジタル肉体労働)」なのです。</strong></p>\r
9355        <p>そしてこれこそが、現在AIエージェントが最も急速に代替しつつある階層です。1つのAIエージェントは、社員が受信トレイを開いている間に、何千通ものメールを読み込み、分類し、グループごとに返信ドラフトを作成して送信できます。別のエージェントは互換性のない2つのソフトウェアを接続し、誰も一行ずつコピーすることなく自動的にデータを相互転送します。産業革命が第1層の労働を奪ったように、AIは第2層の労働で同じことを起こしています。そして人間は第3層の労働へと移行します——真の思考、方向性、そして責任が尊重される領域へ。</p>\r
9356      </div>\r
9357      </section>\r
9358\r
9359      <div class="rp-sep" role="presentation">&nbsp;</div>\r
9360\r
9361      <!-- 03 -->\r
9362      <section class="rp-section" id="rp-s3">\r
9363        <div class="rp-chapter">\r
9364          <div class="rp-chapter-num">03</div>\r
9365          <h2 class="rp-chapter-title">ベトナムの教育——期待の持てる兆し</h2>\r
9366        </div>\r
9367        <p class="rp-thesis">試験問題は知識の暗記を問うのではなく、思考力を問う。まさに正しい方向への転換である。</p>\r
9368        <div class="rp-text">\r
9369        <p>2026å¹´6月、120万人以上のベトナムの受験生が高校卒業国家試験ï¼
9369ˆTHPT)に臨みました。今年の国語(文学)の試験には、SNS上で急速に拡散し、数十万件もの議論を呼んだ問いがありました。</p>\r
9370      </div>\r
9371        <div class="rp-quote"><p>「アメリカにはスティーブ・ジョブズ、マーク・ザッカーバーグ、イーロン・マスクらがおり、彼らの技術革新は世界を変えることに貢献しました。この示唆を踏まえ、若者としての立場から次の問いに答える文章を書きなさい:『ベトナムからスティーブ・ジョブズのような人物を輩出するにはどうすればよいか?』」</p></div>\r
9372        <div class="rp-text">\r
9373        <p>この問いは大きな議論を呼びました。そしてそれは良いことです。議論が起きることは、試験問題が本当に重要なテーマに触れている証拠です。文学作品の要約やよく知られた登場人物の分析を求める代わりに、今年の試験問題は生徒たちに世界へ目を向け、未来を考え、個人の意見を述べることを求めました。これは評価すべき前進です。試験後に興味深い事実が発覚しました。多くの受験生が「スティーブ・ジョブズが誰なのかよく知らなかった」と認めたのです。早期からテクノロジーに触れられる環境にあるホーチミン市でさえ、彼を「Googleの創業者」と勘違いした生徒がいました。ジョブズ氏が亡くなったのは2011年、彼らがまだ数歳だった頃です。これは生徒たちの落ち度ではありません。出題者と受験生の間の自然なジェネレーションギャップに過ぎません。</p>\r
9374        <p>これは多くの正解が存在するオープンな出題ですが、ここで1つ興味深い点を指摘したいと思います。このお題をAIに与えれば、一瞬にして何十通りもの「模範解答」が得られます。今後卒業試験を受ける世代は、私たちの世代が模範小論文を暗記したように、AIが作った模範解答を丸暗記するようになるのでしょうか? これは皆さんへのオープンな問いです。</p>\r
9375        <p>ここで、小国でありながら地域および世界で大きな影響力を持つ隣国、シンガポールに目を向けてみましょう。シンガポール国立教育学院(NIE NTU)のルー・チーキット(Looi Chee Kit)教授は、本質的な問いを投げかけています。「もしAIがまともな小論文を書けるのなら、学校は生徒にAIの出力を評価し、批判し、改善する方法を教えるべきではないか?」つまり、AIが生徒の代わりにできることをテストするのではなく、「生徒自身にしかできないこと」をテストするのです。この哲学を、先ほどのスティーブ・ジョブズの例に当てはめてみましょう。</p>\r
9376      </div>\r
9377        <div class="rp-quote"><p>「AIは、ベトナムが世界レベルの技術革新者を輩出するための条件をいくつか提示しました。あなたはそのうちどの論点に同意しますか? 今日のベトナムの現状に照らして、どの条件が非現実的だと思いますか? そしてベトナムの若者であるあなた自身は、どこから踏み出しますか?」</p></div>\r
9378        <div class="rp-text">\r
9379        <p>この問いに標準的な正解はありません。答えは一人ひとりの経験、観察、および独自の判断の中にあるからです。それは、どんなAIでも代わりに答えることが難しい領域です。このような問いかけこそが受験生の能力を真に識別します。優れた回答は、間違いなく高い思考力と批判的思考(クリティカルシンキング)を正しく反映するでしょう。</p>\r
9380        <p>目的は、AIが「ない」状態で生徒に何ができるかをテストすることではなく、AIが手元に「ある」状態で何ができるかをテストすることなのです。</p>\r
9381        <p>これこそが正に「第3層」です。そしてこれはシンガポールが意
9381図的に構築している仕組みでもあります——出題方法から採点基準、教師の育成方法に至るまで。</p>\r
9382      </div>\r
9383      </section>\r
9384\r
9385      <div class="rp-sep" role="presentation">&nbsp;</div>\r
9386\r
9387      <!-- 04 -->\r
9388      <section class="rp-section" id="rp-s4">\r
9389        <div class="rp-chapter">\r
9390          <div class="rp-chapter-num">04</div>\r
9391          <h2 class="rp-chapter-title">今日、まさに形成されつつある「第3層」</h2>\r
9392        </div>\r
9393        <p class="rp-thesis">あなたが望むと望まざるとにかかわらず、第3層はすでに自律的に形成されつつある。</p>\r
9394        <div class="rp-text">\r
9395        <p>第3層は遠い将来の概念ではありません。会議室、コンサルティングの場、そして日々の議論の中で、私たちが気づかないうちに静かに形成されています。</p>\r
9396        <p>私は世界最大級のコンサルティングファームから招いた海外専門家とのテクノロジー相談会で、それを目撃しました。すべてはお決まりのシナリオ通りに進んでいました。プロフェッショナルなスライド、説得力のある数値データ、体系的なフレームワーク。しかし質疑応答セクションに入ると、1人の参加者が静かに立ち上がりました。「ここに来る前に、この問題についてChatGPTに尋ねてみました。ChatGPTは皆さんの発表とは異なる視点を提示していましたが、これについてどう評価されますか?」</p>\r
9397        <p>会場全体が一瞬、静まり返りました。質問が失礼だったからではなく、前例がないものの非常に理にかなっていたからです。室内の専門家たちは、事前に準備した内容を説明するだけでなく、本気で考えて回答せざるを得なくなりました。その日質問した人物はITの専門家ではありませんでした。しかし彼はAIを「思考のツール」として活用し、準備し、照合し、より良い質問を立てる方法を知っていたのです。これこそが、現実の場で起きている「第3層」の具体的な姿です。</p>\r
9398        <p>このエピソードは、私の最近の体験も思い出させます。私の上司は外国人エグゼクティブ(エクスパット)です。ある日、コンサル会社との打ち合わせを控え、経営陣はみな「彼(上司)は参加できるか?」と気にしていました。最初はその意図が分かりませんでしたが、後に理由が判明しました。経営陣の経験上、そのコンサル会社に対して対等に議論(チャレンジ)できるのは、彼一人だったのです。では、コンサルに議論を挑む能力を持つ外国人エグゼクティブに年間数千万円〜数億円の報酬を払い続ける必要があるでしょうか、それともAIで代替・補完できるでしょうか? これも皆さんへのオープンな問いです。</p>\r
9399        <p>日々の業務に近いもう一つの観察として、クライアントとのQ&Aセクションにおける最近の劇的な変化が挙げられます。以前は、1回の打ち合わせで出される質問は多くても数十件程度で、その大半はクライアントが理解できていない点に関するものでした。しかし現在、質問の数は数百件規模に膨れ上がっています。なぜなら、それらの質問の多くがAIによって作成されているからです。クライアントは会議の前にAIを使って、より詳細で包括的な質問を用意してきます。時にはコンサル側が以前より遥かに綿密な準備を強いられるほどです。私はさらに、コンサル側が自らの回答内容を「AIによって評価・採点される可能性」まで考慮して準備しなければならない時代が来ているとさえ感じています。</p>\r
9400        <p><strong>彼らは助言をただ受動的に待つクライアントではありません。</strong>AIを活用して対話のレベルを引き上げ、より深い問いを投げかけ、本質的な回答を求めるクライアントです。第3層は、私たちが望むと望まざるとにかかわらず、自ずと形成され進行しています。重要なのは、私たちが明確な方向性と責ä
9400»»ã‚’持ってそれを受け入れることです。</p>\r
9401      </div>\r
9402        <div class="rp-sep" role="presentation">&nbsp;</div>\r
9403        <div class="rp-text">\r
9404        <p>では、あらゆるレベルの教育は、現実から大きく取り残されないために何ができるでしょうか?</p>\r
9405        <p>他国のモデルをそのままコピーするのではなく、自国の固有の現実に即した、試行可能な素晴らしいアプローチがあります。<strong>「AIを新しい教科として教えるのではなく、今教えている授業の質を高めるためにAIを使う」</strong>ということです。</p>\r
9406        <p>すべての教科には、歴史的価値、文学的感性、数学的推理、科学実験など、AIでは代替できない基礎知識があります。しかし一方で、どの教科にも情報検索、要約、初稿作成など、AIが得意とする単純・定型作業が存在します。教師がAIに得意な部分を任せ、自身の時間とエネルギーを教授法、知識の本質、教育プログラムの深化に集中させるとき——これは大規模な構造改革ではありません。授業の前後の「時間の使い方」を変えることなのです。そしてそれは、どんな政策の決定も待たずに、今すぐ始められます。</p>\r
9407        <p>この全体原則から、今日からすぐに始められる3つの具体的な介入レイヤー(層)が導き出せます。</p>\r
9408      </div>\r
9409        <div class="rp-steps">\r
9410          <div class="rp-step">\r
9411          <div class="rp-step-lbl">レイヤー 01</div>\r
9412          <div>\r
9413            <div class="rp-step-title">既存の宿題に「1つの質問」を追加する</div>\r
9414            <div class="rp-step-desc">カリキュラム変更は不要です。どの教師も今すぐ実施できます。課題を出した後、最後に1つのサブクエスチョンを追加します——「この問題にAIはどう答えましたか? あなたはその回答に同意しますか、同意しませんか? その理由も述べなさい。」これにより、生徒はAIの答えを丸写しできなくなり、逆に自ら考え批判的に検証する力を養うことができます。</div>\r
9415          </div>\r
9416        </div>\r
9417          <div class="rp-step">\r
9418          <div class="rp-step-lbl">レイヤー 02</div>\r
9419          <div>\r
9420            <div class="rp-step-title">生徒に教える前に、まず教師自身がAIを活用する</div>\r
9421            <div class="rp-step-desc">自分が体験していないことを教えることはできません。教師が自らAIを使って指導案を作成し、課題を設計し、生徒の成績データを分析し、さらには自らの知識をアップデートするとき、AIの強みと弱みがどこにあるかを身をもって知ることができます。その実践経験から得た気づきがあってこそ、生徒に「本当に価値のあること」を教えることができるのです。</div>\r
9422          </div>\r
9423        </div>\r
9424          <div class="rp-step">\r
9425          <div class="rp-step-lbl">レイヤー 03</div>\r
9426          <div>\r
9427            <div class="rp-step-title">家庭こそが最初の教室である</div>\r
9428            <div class="rp-step-desc">夕食後、保護者が子どもと一緒に座り、適切な質問の立て方や論理的思考をトレーニングします。「AIはこう言っているけれど、どう思う?」といった会話です。この習慣に特別な教材も制度もいりません。必要なのは好奇心と少しの時間だけです。そしてこれこそが、どの学校の授業よりも早く「第3層」の教育をスタートさせる方法なのです。</div>\r
9429          </div>\r
9430        </div>\r
9431        </div>\r
9432      </section>\r
9433\r
9434      <!-- doan ket -->\r
9435      <div class="rp-closing">\r
9436        <p>これこそが、いかなる機械もAIも代替できない「第3層」です。</p>\r
9437        <p>産業革命は人間を工場から排除したのではなく、工場における人間の<strong>「立ち位置」</strong>を変えました。AI革命も今、オフィス、病院、学校、クリエイティブな現場で同じことを起こしています。</p>\r
9438        <p>人間は居場所を失うわけではありません。その居場所は上方へ——思考、方向性、そして人間の真の責任が尊重される場所へと移行しているのです。</p>\r
9439        <p>そしてこれこそが、今日教室に座っている世代に装備させるべき資質です——AIと競争するためではなく、AIと共に働く際に自らの「正しい立ち位置」に立てるようになるために。</p>\r
9440      </div>\r
9441\r
9442      <div class="rp-colophon">\r
9443        <svg role="img" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewB
9443ox="0 0 393.54 109.42" class="rp-colophon-logo" aria-label="React Plus"><defs><clipPath id="rp-clip-a"><path fill="none" d="M46.66-2v59.85h53.19V-2h-53.19ZM98.08,49.94c-6.07,1.45-15.53,5.59-18.29,6.83l-1.24-.53c.28-.13.55-.26.83-.39,5.12-2.3,13.15-5.62,18.46-6.89.27-.06.55-.11.82-.17l-.58,1.14Z" /></clipPath><clipPath id="rp-clip-b"><path fill="none" d="M83.33,56.67v25.12h29.97v-25.12h-29.97ZM101.91,58.66c-.99.5-1.92.99-2.79,1.47l.35-1.32c.64-.34,1.3-.69,2-1.04l1.29.44c-.29.16-.57.31-.85.45Z" /></clipPath></defs><g><g><path fill="#3993FF" d="M97.85,48.96c-5.32,1.27-13.34,4.59-18.46,6.89-3.29-9.06-6.61-18.66-11.22-27.12-.74-1.4-1.54-2.65-2.37-3.94-.12-.18-.29-.6-.54-.95-3.8-5.55-9.4-10.51-16.59-8.43,3.93-4.51,7.87-8.52,11.73-11.75,3.26-2.73,7.52-4.19,11.72-3.48,3.31.56,6.24,2.25,8.05,5.6,4.54,8.48,8.64,20.94,12.33,29.98,1.78,4.4,3.55,8.82,5.35,13.2Z" /><path fill="#3993FF" d="M101.91,58.67l9.39,19.09c-9.2,5.08-18.76-.15-25.35-6.88,0-.01-.48-.88-.63-1.25,6.03-4.53,9.68-7.49,16.58-10.95Z" /></g><path fill="#6CC7FF" d="M128.5,58.04c-4.31-4.42-10.55-4.82-16.34-3.68-.99.19-2.47.67-3.36,1.17-2.49.32-4.77,2.07-6.89,3.13-6.91,3.46-10.55,6.43-16.59,10.95-18.8,14.12-44.63,38.29-69,39.74C3.46,110.12.07,104.26,0,96.52c-.09-9.9,18.88-39.99,32.6-60.02-1.2,2.46-2.39,5.04-3.34,7.24-4.12,9.58-10.62,30.92,6.94,29.63,15.62-1.17,29.28-11.31,43.18-17.53,5.12-2.3,13.15-5.62,18.46-6.89,10.78-2.54,24.24-.9,30.65,9.08Z" /><g clip-path="url(#rp-clip-a)"><path fill="#3993FF" d="M97.85,48.96c-5.32,1.27-13.34,4.59-18.46,6.89-3.29-9.06-6.61-18.66-11.22-27.12-.74-1.4-1.54-2.65-2.37-3.94-.12-.18-.29-.6-.54-.95-3.8-5.55-9.4-10.51-16.59-8.43,3.93-4.51,7.87-8.52,11.73-11.75,3.26-2.73,7.52-4.19,11.72-3.48,3.31.56,6.24,2.25,8.05,5.6,4.54,8.48,8.64,20.94,12.33,29.98,1.78,4.4,3.55,8.82,5.35,13.2Z" /></g><path fill="#224CFF" d="M108.8,55.54c.9-.5,2.36-.98,3.36-1.18,5.81-1.14,12.03-.74,16.36,3.68,10.47,10.71,7.84,35.1-7.89,39.83-17.48,5.25-29.59-13.02-34.67-27,6.59,6.74,16.14,11.96,25.35,6.88,10.61-5.85,10.51-23.83-2.5-22.22Z" /><path fill="#224CFF" d="M34.59,73.44c-15.53-.12-9.31-20.42-5.33-29.69.95-2.21,2.14-4.79,3.34-7.24,5.16-7.51,10.58-14.79,16.06-21.1,7.19-2.08,12.79,2.88,16.59,8.43.25.35.21.38.34.56-.87.85-2.21,2.27-2.99,3.08-9.63,10.09-22.16,29.88-27,42.69-.25.64-.71,2.26-.9,3.27" /><g clip-path="url(#rp-clip-b)"><path fill="#3993FF" d="M101.91,58.67l9.39,19.09c-9.2,5.08-18.76-.15-25.35-6.88,0-.01-.48-.88-.63-1.25,6.03-4.53,9.68-7.49,16.58-10.95Z" /></g></g><g><path fill="#141B2A" d="M176.92,56.34c1.81-.9,3.21-2.15,4.2-3.73.99-1.58,1.49-3.45,1.49-5.61s-.5-3.93-1.49-5.53c-.99-1.6-2.38-2.86-4.17-3.78-1.79-.92-3.85-1.38-6.18-1.38h-14.4v36.67h7.09v-15.28h1.22l11.71,15.28h8.61l-12.24-15.43c1.52-.19,2.91-.59,4.15-1.21ZM163.47,42.1h6.62c1.74,0,3.08.48,4.02,1.43.94.96,1.41,2.16,1.41,3.63s-.47,2.74-1.41,3.62c-.94.89-2.3,1.33-4.07,1.33h-6.57v-10.01Z" /><path fill="#141B2A" d="M205.61,48.83c-1.88-1.08-4-1.62-6.36-1.62-2.5,0-4.76.57-6.78,1.72-2.02,1.15-3.61,2.71-4.77,4.7-1.17,1.98-1.75,4.22-1.75,6.73s.59,4.8,1.77,6.78c1.18,1.98,2.81,3.55,4.88,4.69,2.07,1.15,4.43,1.72,7.07,1.72,2.05,0,3.95-.37,5.69-1.1,1.74-.73,3.25-1.82,4.54-3.29l-4.07-4.07c-.76.91-1.67,1.57-2.71,1.98-1.04.42-2.21.63-3.49.63-1.43,0-2.68-.29-3.76-.89-1.08-.59-1.9-1.45-2.48-2.58-.23-.45-.39-.93-.53-1.44l18.4-.04c.14-.56.22-1.07.26-1.54.03-.47.05-.93.05-1.38,0-2.43-.52-4.61-1.56-6.52-1.04-1.91-2.5-3.41-4.38-4.49ZM195.65,53.84c1.01-.59,2.19-.89,3.55-.89s2.37.26,3.23.78,1.55,1.29,2.03,2.3c.23.48.41,1.03.54,1.63l-12.15.03c.13-.47.28-.91.48-1.32.54-1.09,1.31-1.94,2.32-2.53Z" /><path fill="#141B2A" d="M233.62,50.19c-.7-.73-1.51-1.34-2.45-1.83-1.43-.73-3.03-1.09-4.8-1.09-2.33,0-4.41.57-6.23,1.72-1.83,1.15-3.26,2.71-4.3,4.69-1.04,1.98-1.57,4.23-1.57,6.73s.52,4.69,1.57,6.68c1.04,1.98,2.48,3.55,4.3,4.7,1.82,1.15,3.89,1.72,6.18,1.72,1.81,0,3.43-.37,4.88-1.1.94-.48,1.74-1.08,2.43-1.8v2.37h6.89v-25.19h-6.89v2.4ZM232.26,65.26c-1.18,1.29-2.73,1.93-4.64,1.93-1.22,0-2.31-.29-3.28-.89-.97-.59-1.73-1.39-2.27-2.4-.54-1.01-.81-2.19-.81-3.55s.27-2.49.81-3.49c.54-1.01,1.29-1.81,2.24-2.4.96-.59,2.06-.89,3.31-.89s2.4.29,3.34.86c.94.57,1.69,1.38,2.24,2.43.56,1.04.83,2.23.83,3.55,0,1.95-.59,3.56-1.77,4.85Z" /><path fill="#141B2A" d="M254.98,54.49c.99-.57,2.11-.86,3.37-.86,1.11,0,2.13.19,3.05.57.92.38,1.7.96,2.32,1.72l4.49-4.49c-1.25-1.39-2.71-2.44-4.38-3.16-1.67-.71-3.49-1.07-5.48-1.07-2.57,0-4.89.57-6.94,1.72-2.05,1.15-3.67,2.72-4.85,4.72-1.18,2-1.77,4.25-1.77,6.76s.59,4.65,1.77,6.65c1.18,2,2.8,3.58,4.85,4.75,2.05,1.17,4.35,1.75,6.89,1.75,2.02,0,3.87-.37,5.55-1.12,1.69-.75,3.14-1.82,4.36-3.21l-4.38-4.43c-.7.76-1.5,1.35-2.4,1.75-.9.4-1.93.6-3.08.6-1.25,0-2.37-.3-3.37-.89-.99-.59-1.76-1.39-2.32-2.4-.56-1.01-.83-2.17-.83-3.49s.28-2.49.83-3.49c.56-1.01,1.33-1.8,2.32-2.37Z" /><polygon fill="#141B2A" points="282.18 37.31 275.35 37.31 275.35 47.79 269.45 47.79 269.45 53.79 275.35 53.79 275.35 72.98 282.18 72.98 282.18 53.79 288.07 53.79 288.07 47.79 282.18 47.79 282.18 37.31" /><path fill="#141B2A" d="M323.57,37.72c-1.86-.94-3.96-1.41-6.29-1.41h-14.45v36.67h7.09v-13.56h7.35c2.33,0,4.43-.47,6.29-1.41,1.86-.94,3.33-2.28,4.41-4.02,1.08-1.74,1.62-3.79,1.62-6.16s-.54-4.41-1.62-6.
944313c-1.08-1.72-2.55-3.05-4.41-3.99ZM321.69,50.94c-.51.85-1.21,1.51-2.11,1.98-.9.47-1.91.7-3.03.7h-6.62v-11.53h6.62c1.11,0,2.12.24,3.03.7.9.47,1.61,1.13,2.11,1.98.5.85.76,1.87.76,3.05s-.25,2.25-.76,3.1Z" /><rect fill="#141B2A" x="334.24" y="35.27" width="6.83" height="37.71" /><path fill="#141B2A" d="M362.4,62.24c0,1.56-.4,2.78-1.2,3.65-.8.87-1.91,1.3-3.34,1.3-.94,0-1.76-.19-2.45-.57-.7-.38-1.22-.95-1.56-1.7-.35-.75-.52-1.64-.52-2.69v-14.45h-6.89v14.6c0,2.19.49,4.12,1.46,5.79.97,1.67,2.33,2.97,4.07,3.89,1.74.92,3.7,1.38,5.89,1.38s4.15-.46,5.87-1.38c1.72-.92,3.07-2.22,4.04-3.89.97-1.67,1.46-3.6,1.46-5.79v-14.6h-6.83v14.45Z" /><path fill="#141B2A" d="M389.97,59.42c-.96-.59-1.97-1.05-3.03-1.38-1.06-.33-2.08-.63-3.05-.91-.97-.28-1.76-.58-2.35-.91-.59-.33-.89-.81-.89-1.43,0-.56.26-.99.78-1.3.52-.31,1.3-.47,2.35-.47s2.09.22,3.05.65c.96.44,1.82,1.1,2.58,2.01l4.12-4.17c-1.11-1.46-2.51-2.55-4.2-3.26-1.69-.71-3.57-1.07-5.66-1.07s-3.7.32-5.16.96c-1.46.64-2.59,1.57-3.39,2.76-.8,1.2-1.2,2.6-1.2,4.2s.31,2.78.94,3.76c.63.97,1.42,1.73,2.37,2.27.95.54,1.97.97,3.05,1.28,1.08.31,2.09.61,3.05.89.96.28,1.75.6,2.37.96.63.37.94.9.94,1.59,0,.59-.3,1.05-.89,1.38-.59.33-1.44.49-2.56.49-1.36,0-2.61-.24-3.76-.73-1.15-.49-2.14-1.23-2.97-2.24l-4.12,4.12c.83.97,1.83,1.82,2.97,2.53,1.15.71,2.41,1.25,3.78,1.62,1.37.36,2.79.55,4.25.55,3.03,0,5.43-.72,7.2-2.16,1.77-1.44,2.66-3.4,2.66-5.87,0-1.53-.3-2.78-.91-3.76-.61-.97-1.39-1.76-2.35-2.35Z" /></g></svg>\r
9444        <span class="rp-colophon-text">Copyright © React Plus JSC. All Rights Reserved.</span>\r
9445      </div>\r
9446\r
9447    </article>\r
9448    <!-- ====================== HET PHAN DAN VAO CMS ====================== -->\r
9449</body>\r
9450</html>\r
9451`},{id:227,title:"2026 年の AI トレンド (パート 1): ビジネスの運営方法を変える 5 つのトレンド",date:"2026å¹´7月29日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/227/%E1%BA%A2nh_b%C3%ACa_web__1_.png",excerpt:"この記事では、AI エージェント、マルチエージェント システム、小型言語モデル (SLM)、エッジ AI、AI ネイティブ開発を含む、ビジネスの運営方法を変える 2026 年の 5 つの著名な AI トレンドを紹介します。 AI はコンテンツ作成をサポートするだけでなく、作業を自動的に実行し、グループで調整し、デバイス上で直接処理し、ソフトウェア開発プロセス全体に参加できる「デジタル同僚」になりつつあります。これらの傾向は、近い将来、企業の業務の最適化、パフォーマンスの向上、AI 変革プロセスの促進に役立つと予想されます。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"この記事では、AI エージェント、マルチエージェント システム、小型言語モデル (SLM)、エッジ AI、AI ネイティブ開発を含む、ビジネスの運営方法を変える 2026 年の 5 つの著名な AI トレンドを紹介します。 AI はコンテンツ作成をサポートするだけでなく、作業を自動的に実行し、グループで調整し、デバイス上で直接処理し、ソフトウェア開発プロセス全体に参加できる「デジタル同僚」になりつつあります。これらの傾向は、近い将来、企業の業務の最適化、パフォーマンスの向上、AI 変革プロセスの促進に役立つと予想されます。",content:["2026 年の AI トレンド (パート 1): ビジネスの運営方法を変える 5 つのトレンド","メタ説明: ビジネスを形成する AI エージェント、マルチエージェント システム、小型言語モデル、エッジ AI、AI ネイティブ開発を含む 2026 年の 5 つの著名な AI トレンドを探ります。","2026 年の AI トレンドは、もはやチャットボットやコンテンツ作成を中心に展開するのではなく、AI が仕事を計画、調整し、自動的に実行できる「デジタル同僚」になることに焦点を当てています。これは、多くの企業が追求している AI 変革プロセスの基礎でもあります。","1. AIエージェント – AIが人間のために働き始める","これは 2026 年の最も重要なトレンドと考えられています。","従来のチャットボットとは異なり、AI エージェントは質問に答えるだけでなく、次の機能も備えています。","- 要件を自分で分析します。","- 実施計画を立てます。","- さまざまなツールを使用します。","- エンタープライズ システムにアクセスします。","- 結果を自己評価し、調整します。","たとえば、銀行の AI エージェントは、各ステップで人間の介入なしに、融資申し込みの受け取り、顧客情報ã
9451®ç¢ºèªã€ãƒªã‚¹ã‚¯ã®è©•価、追加書類の要求、専門家への結果の送信を行うことができます。","Gartner によると、Agentic AI は今後数年間で企業の戦略的開発方向の 1 つになりつつあります。","2. マルチエージェント システム – 複数の AI がチームとして連携","AI エージェントが「従業員」だとすると、マルチエージェント システムは全体の「部門」のようなものです。","各 AI は個別の役割を引き受けます。","- AIがデータを分析","- AIが合法性をチェック","- AIがリスクを評価","- AIがレポートを生成","- AIが顧客とコミュニケーションする","これらの AI は相互に情報を交換し、以前は複数の部門の調整が必要だったプロセスを完了します。","Fintech 分野では、このモデルは次のような運用に特に適しています。","- 貸し出し","- 信用スコアリング","- 不正行為の検出","- 顧客サービス","- AML/KYC","Gartner は、マルチエージェント システムが新世代のエンタープライズ AI アプリケーションにとって重要なプラットフォームになると予測しています。","3. 小型言語モデル (SLM) – 「小さいながらも強力」","何年もの間、AI 競争はますます大規模なモデルに焦点を当ててきました。","しかし、企業は、規模が大きいことが必ずしも最適ではないことに気づき始めています。","小規模言語モデルは多くの利点をもたらします。","- 低コスト;","- 素早い対応。","- 社内での導入が簡単。","- ビジネスデータに応じた微調整が簡単。","- セキュリティの向上。","特に金融、保険、ヘルスケアなど高い精度が要求される分野では、多目的モデルから各分野で学習された小型モデルが徐々に置き換えられつつあります。","これは、ガートナーが 2026 年の戦略テクノロジー グループにドメイン固有言語モデルを含めた理由でもあります。","4. エッジ AI – AI はデバイス上で直接実行されます","すべてのデータをクラウドに送信する代わりに、Edge AI はデータを次の場所で直接処理します。","- 電話;","- カメラ;","- ロボット;","- IoT デバイス。","- スマートな車。","これは次の点に役立ちます。","- 待ち時間を短縮します。","- 帯域幅を節約します。","- プライバシーを高めます。","- データセキュリティ要件を満たします。","エッジ AI は、製造、物流、金融、スマートシティで重要な役割を果たします。 IBMはまた、エッジインテリジェンスを、今後のアプリケーションスピードが速いAIトレンドの1つとして評価しています。","5. AIネイãƒ
9451†ã‚£ãƒ–開発 – AIを使用したソフトウェア開発","AI はもはやプログラマーのコード作成を支援するだけではありません。","現在、AI は次のことを行うことができます。","- 要件分析。","- ソースコードの生成。","- 文書を書く。","- テストケースを作成します。","- コードを確認してください。","- エラー検出。","- 導入サポート。","これにより、ソフトウェア開発プロセス全体が変化します。","Gartner によると、AI ネイティブ開発プラットフォームは、企業の製品開発の加速と技術チームの生産性の向上を支援する戦略的プラットフォームの 1 つになるとのことです。","*結論する:","最初の 5 つのトレンドの共通点は、AI を運用および製品開発プロセスにさらに深く組み込んでいることであることがわかります。しかし、それは全体像の半分にすぎません。","次のパートでは、React Plus が、AI オペレーティング システム、AI ブラウザ、ドメイン AI、AI ガバナンス、AI 変革を含む残りの 5 つのトレンドを分析します。これらの要素は、今後数年間で企業による AI の適用方法を形作ると予測されています。"]},{id:226,title:"【RECAP】React Plus 2026 Mid-Year Review - AIと共に未来を創る",date:"2026å¹´6月23日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/226/%E1%BA%A2NH_B%C3%8CA__WEB__4_.png",excerpt:"React Plusは、「AIと共に未来を創る」をテーマとするMid-Year Review 2026をハノイ市バヴィーにて成功裏に開催しました。経営陣とマネジメント層が一堂に会し、上半期の成果を振り返るとともに、次期の成長戦略の方向性を定め、AI活用のトレンドについて議論しました。イベントは、運営戦略の最適化、AIによる技術力の強化、そしてFull-SDLC AI Agent Integrati",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"React Plusは、「AIと共に未来を創る」をテーマとするMid-Year Review 2026をハノイ市バヴィーにて成功裏に開催しました。経営陣とマネジメント層が一堂に会し、上半期の成果を振り返るとともに、次期の成長戦略の方向性を定め、AI活用のトレンドについて議論しました。イベントは、運営戦略の最適化、AIによる技術力の強化、そしてFull-SDLC AI Agent Integration戦略の推進という3つの重点に焦点を当てました。",content:["【RECAP】React Plus 2026 Mid-Year Review - AIと共に未来を創る","2026å¹´6月20日~21日の2日間、ハノイ市バヴィー(Ba Vì)にて、React Plusは「React Plus 2026 Mid-Year Review - AIと共に未来を創る」をテーマとしたMid-Year Reviewイベントを成功裏に開催しました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1052/content_Mid-Year_Review_2016__5_.png]","本イベントは、BOD、各Manager、Leader、Project Managerをはじめとする主要マネジメントメンバーが参加する、React Plusにとって大きな転換点となる重要な会議でした。単なる節目の振り返りにとどまらず、今後のReact Plusの飛躍的な成長を左右する、重要な戦略基盤を築く機会となりました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1039/content_3.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1041/content_4.png]","イベントでは、経営陣とマネジメントチームが深い議論を重ね、以下3つの重要テーマを軸に今後の戦略について共有・合意しました。","1. 振り返りと戦略的方向性の策定:React Plusは、2026年前半6か月間の歩みを振り返り、達成した成果を率直に評価するとともに、世界的なAI市場の変化やビジネス環境について詳細な分析を行いました。その全体像を踏まえ、経営陣は新たな戦略的方針を策定し、2026年後半に向けた明確な成長ロードマップを設定しました。これにより、運営体制の最適化を進め、今後訪れる大きなチャンスを確実に掴んでいきます。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1042/content_5.png]","2. AIに関する専門的な共有セッション:単に変化へ対応するだけでなく、未来のトレンドをリードしていくことを目標に、AIのソリューション、最新トレンド、実際のビジネス活用に関する活発な共有・ディスカッションが行われました。これらの取り組みは、React Plusの社内技術力をさらに高め、お客様へより革新的な価値をæ
9451ä¾›ã™ã‚‹ãŸã‚ã®é‡è¦ãªåŸºç›¤ã¨ãªã‚Šã¾ã™ã€‚","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1044/content_7.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1045/content_8.png]","3. Full-SDLC AI Agent Integration戦略の実現:これは、ソフトウェア開発ライフサイクル全体へAI Agentを包括的に統合するという、革新的な取り組みです。この新たな運用モデルへの移行は、React Plusが開発効率を最大化し、プロジェクトの展開期間を短縮するとともに、市場における競争優位性をさらに強化するための「鍵」となります。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1048/content_11.png]","Mid-Year Review 2026は、大きな可能性に満ちた新たな章の幕開けとして成功裏に終了しました。本イベントは単なる成果確認の場ではなく、React Plusの未来を切り拓くための強力な戦略的推進力となり、マネジメントチームがさらなる成長へ向けて進み続けるための大きなインスピレーションとなりました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1049/content_12.png]","ご参加いただき、貴重なご意見やご協力をいただいたすべての皆さまに心より感謝申し上げます。さあ、これから始まる新たな加速の旅へ。React Plusとともに、テクノロジーをリードし、未来を創り上げていきましょう!","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1050/content_14.png]"]},{id:225,title:"【MID-YEAR REVIEW】React Plus 2026 Mid-Year Review - AIと共に未来を切り拓く",date:"2026å¹´6月16日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/225/%E1%BA%A2nh_backdrop_MYR__7_.png",excerpt:"MID-YEAR REVIEW 2026は、React Plusの今後の方向性に直結する、これまでで最も重要な会議の一つと位置づけられています。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"MID-YEAR REVIEW 2026は、React Plusの今後の方向性に直結する、これまでで最も重要な会議の一つと位置づけられています。",content:["【MID-YEAR REVIEW】React Plus 2026 Mid-Year Review - AIと共に未来を切り拓く","私たちは2026年の前半戦を共に走り抜けてきました。この半年間は、AI(人工知能)時代の急速な進化と、世界のテクノロジー市場における大きな変革が加速した期間でもありました。React Plusは、変化に適応するだけでなく、その変化をリードする存在となるために、次なる飛躍に向けた戦略的な準備を進めています。","MID-YEAR REVIEW 2026は、React Plusの今後の方向性に直結する、これまでで最も重要な会議の一つと位置づけられています。","本イベントでは、以下のテーマを中心に議論を行います。","■ 振り返りと今後の方向性:上半期の歩みと成果を振り返るとともに、市場環境の変化を共有し、次のステージに向けた新たな戦略を描きます。","■ AI共有セッション:Beyond Man-Month: How to Win in the AI Era","■ グループディスカッション:Full-SDLC AI Agent Integration","開催日時:2026å¹´6月20日(土)~21日(日)","開催場所:ハノイ市バヴィー県イエンバイ(Yên Bài)","参加対象:BOD、Manager、Leader、Project Manager、および主要マネジメントメンバー","今回のイベントが成功裏に開催され、React Plusの未来を支える確かな戦略的転換点となるとともに、これからの飛躍的な成長への大きな原動力となることを願っています。共に未来を描き、新たな可能性へ挑戦していきましょう!","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1036/content_%E1%BA%A2nh_backdrop_MYR__7_.png]"]},{id:224,title:"学校へ届ける応援プロジェクト:山間部の子どもたちへ本を贈ろう",date:"2026å¹´6月15日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/224/Gom_s%C3%A1ch_cho_v%C3%B9ng_cao_2026__2_.png",excerpt:"一冊の本が棚の上で埃をかぶったままになるのではなく、「誰かの人生を切り拓くきっかけ」となるように、React Plusは「古本を集め、夢を届けよう」活動を発足し、Reacterの皆さんへ参加を呼びかけています。対象は、Nghệ An、Hà TÄ©nh、Thanh Hóa、Quảng Bình、Quảng Trị、Quảng Ngãiなど、ベトナム中部山間地域の困難な環境にある子どもたちです。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"一冊の本が棚の上で埃をかぶったままになるのではなく、「誰かの人生を切り拓くきっかけ」となるように、React Plusは「古本を集め、夢を届けよう」活動を発足し、Reacterの皆さんへ参加を呼びかけています。対象は、Nghệ An、Hà TÄ©nh、Thanh Hóa、Quảng Bình、Quảng Trị、Quảng Ngãiなど、ベトナム中部山間地域の困難な環境にある子どもたちです。",content:["学校へ届ける応援プロジェクト:山間部の子どもたちへ本を贈ろう","9月が近づき、また新しい学びの季節が始まろうとしています。しかし、山間部の地域や霧と強い日差しに包まれた高地の村々では、知識への扉となる大切な存在――本や学用品が、今も多くの子どもたちにとって貴重なものとなっています。","一冊の本が棚の上で「眠ったまま」になるのではなく、「誰かの人生を切り拓くきっかけ」となるように、React Plusでは「古本を集め、夢を届けよう」という活動を開始します。対象は、Nghệ An、Hà TÄ©nh、Thanh Hóa、Quảng Bình、Quảng Trị、Quảng Ngãiなど、ベトナム中部の山間地域に暮らす、困難な環境にある学生たちです。","現在、6年生から12年生
9451向けの本の寄付を募集しています。学校図書館の本棚を充実させ、子どもたちへ直接届けることを目的としています。","■ 受付可能な本の基準","1. 状態:70%以上の良好な状態であること。破れ、過度な書き込みや消去跡、ページ不足がないもの。","2. 内容:","・参考書:数学、物理、化学、文学、歴史、地理、外国語などの参考書。(これらは学習や試験対策に重要ですが、山間部の子どもたちには不足しがちな種類の本です。)","・文学・娯楽書:12~18歳の年齢に適した小説、漫画、読み物。","・受付不可:教科書(教育課程の変更があるため、また必要数が確保されているため)","■ 寄付方法","受付場所:BO部門にて、または受付担当の @Cao TQA までご連絡ください。","回収期間:2026年7月15日まで","あなたが届ける一冊の本は、知識への扉を開く一歩となり、山間部に暮らす多くの子どもたちに笑顔と未来を変えるチャンスを届けます。ぜひReact Plusと一緒に、この温かい活動を広げていきましょう!温かいご支援に心より感謝いたします。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1033/content_Gom_s%C3%A1ch_cho_v%C3%B9ng_cao_2026__2_.png]"]},{id:223,title:"React Plus、国際子どもの日(6月1日)に愛と思いやりを届けました",date:"2026年6月1日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/223/%E1%BA%A2NH_B%C3%8CA__WEB__1_.png",excerpt:"国際子どもの日(6月1日)にあたり、React Plusは社員のお子さまがいるご家庭へ、お祝いと思いやりの気持ちを込めたプレゼントをお贈りしました。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"国際子どもの日(6月1日)にあたり、React Plusは社員のお子さまがいるご家庭へ、お祝いと思いやりの気持ちを込めたプレゼントをお贈りしました。",content:["React Plus、国際子どもの日(6月1日)に愛と思いやりを届けました 💙","「今日、保護者の皆さまが見せてくれた素敵な笑顔こそ、React Plusが大切に育み続けている“つながり”の価値を何よりも物語っています。」","国際子どもの日(6月1日)にあたり、React Plusでは社員のお子さまがいるご家庭へ、心を込めたプレゼントをお贈りしました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1024/content_1.png]","この贈り物には、社員の皆さまとそのご家族への感謝と敬意が込められています。ご家族は、React Plusメンバー一人ひとりが安心して働き、創造し、成長していくための大切な支えです。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1026/content_4.png]","📸 楽しい祝日の雰囲気の中、プレゼントはオフィスにて保護者の皆さまへ直接お渡しされ、多くの笑顔と喜び、そして心温まるひとときを生み出しました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1028/content_5.png]","React Plusは、このような活動を通じて社員同士のつながりを深めるとともに、キャリア形成だけでなく、社員とそのご家族の心豊かな生活にも寄り添う職場づくりを目指しています。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1027/content_6.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1030/content_8.png]","お子さまたちがこれからも健やかに成長し、素直で優しく、学びに励み、たくさんの素晴らしい思い出に囲まれた幸せな子ども時代を過ごせますように。","Happy World Children’s Day 1/6!","#ReactPlus #ReactPlusFamily #InternationalChildrensDay #HappyChildrensDay #ReactPlusCulture","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1032/content_9.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1023/content_2.png]"]},{id:222,title:"AI Kids Day Photo Contest 2026",date:"2026年5月22日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/222/A%CC%89NH_BI%CC%80A__WEB__3_.png",excerpt:"✨「子どもたちは未来を担う世代 ― AIもまた未来そのものです。」",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"✨「子どもたちは未来を担う世代 ― AIもまた未来そのものです。」",content:["AI Kids Day Photo Contest 2026","「子どもたちは未来を担う世代 ― AIもまた未来そのものです。」","6月1日の「国際子どもの日」を記念して、React Plusでは「AI Kids Day Photo Contest 2026」を正式に開催いたします!","本コンテストは、AI技術と想像力を組み合わせ、子どもたちの“未来の姿”をテーマにしたユニークな作品を創り出すクリエイティブコンテストです。皆さまにたくさんの楽しさを届けるとともに、創造力を刺激し、子どもたちの未来への
9451夢を広げる機会となることを願っています。","■ コンテスト内容","参加者は、お子さまの実際の写真をもとにAIを活用し、「未来の姿」を自由に創作していただきます。","将来は優秀なお医者さん?未来のAIエンジニア?有名な歌手?または、お子さまに思い描くどんな未来の姿でもOKです!","■ 参加方法","参加者は、以下の情報を運営委員会(BTC)へご提出ください:お子さまの元写真、元写真をもとにAIで作成した応募作品、応募作品に関する短いストーリー。","※注意事項:応募は1作品のみとなります。1枚の写真に複数のお子さまが写っていても応募可能です。","応募作品は、会社のFacebookページへ投稿され、投票が行われます。公平性を保つため、社員1名につき応募作品は1点のみとします。","■ 審査基準","Facebook上での総リアクション数に基づいて得点を集計します。「いいね」1件=1ポイント、コメント1件=1ポイント、シェア1件=1ポイント(公開設定でのシェアのみ有効)。","注意事項:Facebookアカウントごとに、各リアクション(いいね・コメント・シェア)は1回のみカウントされます。","■ 賞品","第1位:1,000,000 VND/第2位:700,000 VND/第3位:500,000 VND/第4位:300,000 VND","■ スケジュール","応募締切:5月25日/投票期間:応募作品投稿後~5月29日 20:00まで/結果発表:6月1日「国際子どもの日」イベントにて","今年の6月1日を、特別な思い出にしましょう!AIは単なるテクノロジーではなく、子どもたちの笑顔、創造力、そして未来への夢をつなぐ架け橋となります。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1022/content_A%CC%89NH_BI%CC%80A__WEB__4_.png]"]},{id:221,title:"React Plus 設立7周年 - Happy 7th Anniversary",date:"2026å¹´5月17日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/221/A%CC%89NH_BI%CC%80A__WEB__1_.png",excerpt:"React Plusは2026å¹´5月17日、設立7周年を迎えました【2019.05.17 – 2026.05.17】。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"React Plusは2026å¹´5月17日、設立7周年を迎えました【2019.05.17 – 2026.05.17】。",content:["Happy 7th Anniversary React Plus!","【2019.05.17 – 2026.05.17】","5月は、React Plusの成長の歩みにおいて、また一つの大切な節目を迎える特別な月です。設立から7年間、React Plusは絶え間ない努力、挑戦し続ける姿勢、そして成長への強い想いを胸に、一歩ずつ確かな存在感を築き上げてきました。","これまでの道のりの中で、React Plusのメンバーは数々の困難や市場環境の変化、そして成長し続けるために求められる変化への適応という課題を共に乗り越えてきました。しかし、その一つひとつの経験こそが、私たちの力となり、能力を高め、そして年々より強く結束した組織を作り上げてきたのです。","今日のすべての成果は、社員一人ひとりの支え合い、責任感、そして絶え間ない努力の積み重ねによって生まれたものです。それこそが、React Plusがこれからもさらなる飛躍と大きな目標への挑戦を続けていくための原動力となっています。","そして8年目を迎える今年、「The Invasion Begins」をテーマに、React Plusは新たな挑戦の旅へと踏み出します。先駆者としての精神、変革への強い決意、そしてより大きなインパクトを生み出したいという想いを胸に、さらなる未来へ向かって進んでいきます。","この特別な節目にあたり、これまで共に歩み、今日のReact Plusを築き上げてくださったすべてのメンバーの皆さまへ、心より感謝申し上げます。","React Plusが新たな一年も力強く成長し、さらなる成功を掴み、未来へ向かって大きく羽ばたいていけますように!","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1021/content_Poster_ky%CC%89_nie%CC%A3%CC%82m_sinh_nha%CC%A3%CC%82t_co%CC%82ng_ty__1_.png]"]},{id:220,title:"NLPを3か月で学ぶ - 学びと実践を両立するトレーニングプログラム",date:"2026å¹´4月21日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/220/A%CC%89NH_BI%CC%80A__WEB__2_.png",excerpt:"NLPを3か月で学ぶ、学びと実践を両立する学習ロードマップ。最終学年の学生または新卒で、AIの基礎知識を持ち、NLPエンジニアを目指している方は、ReactPlusのNLP Intern/Fresherプログラムに参加して、AI分野でのキャリアを築きませんか。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"NLPを3か月で学ぶ、学びと実践を両立する学習ロードマップ。最終学年の学生または新卒で、AIの基礎知識を持ち、NLPエンジニアを目指している方は、ReactPlusのNLP Intern/Fresherプログラムに参加して、AI分野でのキャリアを築きませんか。",content:["NLPを3か月で学ぶ - 学びと実践を両立するトレーニングプログラム","最終学年の学生、または新卒で、AIの基礎知識を持ち、NLPエンジニアを目指している方はいませんか?","ReactPlusのNLP Intern/Fresherプログラムに参加して、AI分野でのキャリアを築きましょう。","■ プログラムの特長","・実際の課題に取り組む、学習と実践を組み合わせたカリキュラム","・明確で体系的なトレーニングロードマップと長期的なキャリア形成","・自学自習と研究マインドの奨励","・経験豊富なNLPエンジニアチームによる直接メンタリング","・学習期間中から実際のAI/NLPプロジェクトの開発に参加","■ プログラム情報","形式:オフライン","期間:3か月(フルタイム、月曜~金曜)","勤務時間:09:00~18:00","場所:ハノイ市ナムトゥリエム区Nguyễn CÆ¡ Thạch通り24番地 Golden Fieldビル7階","手当:月額6,000,000 VND","■ プログラム修了後のチャンス","・NLPエンジニア/AIエンジニア/LLMエンジニアへのキャリアパス","・ReactPlusでの正式契約のチャンス","・実際のAIプロジェクトへの参加","・日本での勤務・オンサイトのチャンス","現在、React PlusではData ScientistとNLPの2つのポジションで応募を受け付けています。詳細はこちら:https://www.reactplus.vn/tuye.../intern-fresher-nlp-engineer","お問い合わせ:[email protected]
9451om","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1019/content_1.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1020/content_2.png]"]},{id:219,title:"Data Scientistを3か月で学ぶ - 学びと実践を両立するトレーニングプログラム",date:"2026å¹´4月10日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/219/%E1%BA%A2NH_B%C3%8CA__WEB.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/219/L%E1%BB%98_TR%C3%8CNH_%C4%90%C3%80O_T%E1%BA%A0O_Data_Scientist__1_.png",excerpt:"Data Scientistを3か月で学ぶ - 学びと実践を両立するトレーニングプログラム",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"Data Scientistを3か月で学ぶ - 学びと実践を両立するトレーニングプログラム",content:["Data Scientistを3か月で学ぶ - 学びと実践を両立するトレーニングプログラム","理論中心の学習とは異なり、React Plusのプログラムは、Data Scientistが実際の現場でどのように働くかに焦点を当てています。","・Logisticsシステムの実データを扱う","・欠損や不整合を含む生データの処理","・特徴量エンジニアリングとスコアリングモデルの構築","・データ分析によるビジネスインサイトの発見","・実プロジェクトさながらのダッシュボード・プロトタイプ構築","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1003/content_1.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1004/content_2.png]","プログラムは、チームのリーダーおよび専門家が直接指導し、実際の業務環境に近いアプローチで進められます。","形式:オフライン","期間:3か月/毎週月曜~金曜 09:00~18:00","授業料:100%無料","手当:月額6,000,000 VND","詳細なロードマップは下記の画像をご覧ください。","受講生は、日本の大手企業における銀行・保険・物流分野のAIプロジェクトへ参加するチャンスがあるほか、ITエンジニアがAI分野へキャリアを広げる機会にもなります。さらに、大規模AIプロジェクトにおける日本への出張・勤務のチャンスも用意されています。","現在、React PlusではData ScientistとNLPの2つのポジションで応募を受け付けています。","お問い合わせ:[email protected]"]},{id:218,title:"React Plus、データサイエンティスト&NLPトレーニングプログラムを正式に開始",date:"2026å¹´3月25日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/218/%E1%BA%A2NH_B%C3%8CA__WEB__3_.png",excerpt:"AI時代の競争力を高めるため、データサイエンティストおよび自然言語処理(NLP)エンジニア向けの専門トレーニングプログラムを始動しました。🚀",gradient:"from-blue-200 via-indigo-200 to-cyan-200",summary:"AI技術の発展に伴い、社内の技術力を強化するためのデータ専門家育成プログラムを開始。基礎から実践までの包括的なコースを提供します。",content:["🚀 React Plus、データサイエンティスト&NLPエンジニア研修プログラムを正式に開始 🚀","人工知能技術がかつてないスピードで進化している現在、トップクラスの技術企業としての地位を確固たるものにするため、React PlusはデータサイエンティストおよびNLP(自然言語処理)エンジニア向けの専門トレーニングプログラムの立ち上げを発表しました。","この研修プログラムは、プロフェッショナルなスキルを強化し、実際のプロジェクトにおいてGenAIソリューションを効果的に適用・実装する能力を高めることを目的としています。体系的に設計されたカリキュラムを通じて、受講者は最新のAI関連知識を深くæŽ
9451˜ã‚Šä¸‹ã’る絶好の機会を得ることができます。"]},{id:217,title:"2026å¹´ 丙午(ひのえうま)新年のご挨拶",date:"2026å¹´3月12日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/217/2.png",excerpt:"新年あけましておめでとうございます!2026年(丙午)が皆様にとって健康と幸運、そして成功に満ちた素晴らしい一年となりますようにお祈り申し上げます。🌸",gradient:"from-red-200 via-rose-200 to-orange-200",summary:"2026年の新春を迎え、お客様やパートナー、そして全社員に向けた新年のご挨拶と感謝のメッセージです。",content:["🌸 2026å¹´ 丙午(ひのえうま)新年のご挨拶 - 万福如意 🌸","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1002/content_%E1%BA%A2NH_B%C3%8CA__WEB__5_.png]","React Plusより、新しい年に際し、皆様に心からのお祝いと感謝の意を表します。","過去1年間の皆様のご支援とご協力に深く感謝申し上げます。2026年が健康と幸福、そして更なる飛躍の年となりますよう、心よりお祈り申し上げます。本年もReact Plusを何卒よろしくお願い申し上げます。"]},{id:216,title:"React Plus 2026年仕事始め・新年祝賀会を開催",date:"2026å¹´3月9日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/216/3.png",excerpt:"React Plusは2026年の仕事始めを迎え、全社員で新年の祝賀会を開催しました。新たな目標に向かって「The Invasion Begins」の精神で力強くスタートを切りました。🎉",gradient:"from-yellow-200 via-orange-200 to-red-200",summary:"テト(旧正月)明けの初出勤日を祝う社内イベント。新年の抱負を共有し、お年玉(リシ)を配布して活気づきました。",content:["🎉 React Plus 2026年仕事始め・新年祝賀会を開催🎉","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/993/content_1.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/994/content_3.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/992/content_2.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/997/content_6.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1000/content_9.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/996/content_5.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/999/content_8.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/1001/content_10.png]","新たな旅が再び公式に幕を開けました。昨年の成果を振り返りつつ、React Plusは「The Invasion Begins」の精神のもと、新たな目標と機会を掴むために全員で2026年(丙午)を歓迎しました。","新年初日には、CEOや経営陣からの心温まる新年の挨拶とお年玉(Lì Xì)がありました。社員一同、新たなエネルギーと情熱に満ち溢れ、今年一年のさらなる成長と飛躍への決意を新たにしました。"]},{id:215,title:"React Plus、3月8日の国際女性デーを華やかに祝福",date:"2026å¹´3月6日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/215/1.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/215/1.png",excerpt:"国際女性デーを記念し「Bloom with Grace」イベントを開催。社内の女性社員たちに感謝を込めて、リラックスと笑顔に包まれた素敵な時間を過ごしました。🌸",gradient:"from-pink-200 via-rose-200 to-purple-200",summary:"3月8日の国際女性デーを祝う社内イベントの報告。女性社員にサプライズギフトを贈り、和やかな雰囲気の中で行われました。",content:["🌸 React Plus、3月8日の国際女性デーを華やかに祝福 - 笑顔に溢れた和やかな午後","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/981/content_2.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/982/content_4.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/980/content_3.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/983/content_5.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/984/content_6.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/986/content_8.png]","国際女性デー(3月8日)を祝う社内イベント「Bloom with Grace」は、多くの楽しいアクティビティとともに開催され、社員にリラックスしたくつろぎの時間をもたらしました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/987/content_9.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/989/content_11.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/990/content_12.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/985/content_7.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/991/content_13.png]","朝一番には、React Plusの女性陣全員のデスクに愛らしい花束と心のこもったメッセージカードが添えられるなど、嬉しいサプライズが用意されていました。午後ã
9451®ãƒ†ã‚£ãƒ¼ãƒ‘ーティーではゲームや歓談が行われ、社内の絆がさらに深まりました。","すべての女性が、その存在自体が美しく価値のあるものです。React Plusの「花々」がこれからも自信を持って輝き続けられますように!"]},{id:214,title:"React Plus、コーポレートロゴを刷新 - 「AI First」への決意を象徴",date:"2026å¹´2月27日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/214/A%CC%89NH_BI%CC%80A__WEB.png",excerpt:"React Plusは、技術力を核心とするAI企業としての地位を確立する戦略の一環としてコーポレートロゴを刷新。「AI First」への力強い決意を形にしました。✨",gradient:"from-indigo-200 via-purple-200 to-pink-200",summary:"AI企業としてのブランドイメージ再構築に伴う、新しいコーポレートロゴの発表とそのデザイン意図の解説。",content:["[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/971/content_React_Plus_New_Logo_2026__3_.png]","✨ React Plus、新コーポレートロゴを公式発表 ✨","先進的な「AIファースト企業」としての地位を確固たるものにするという発展の道のりにおいて、経営陣は次なる成長戦略への重要なマイルストーンとして、新しいコーポレートロゴを発表いたしました。","新しいロゴデザインは、現代的でダイナミックなテクノロジーの感性を表現しつつ、「安定性と柔軟性」の両立を象徴しています。配色は洗練されたテクノロジーブルーを基調とし、無限の可能性と革新への情熱を象徴しています。これは、グローバルテクノロジー市場における当社の決意とビジョンをより明確に映し出しています。"]},{id:213,title:"Sum Up 2025 - React Plus、さらなる飛躍に向けた「The Invasion Begins」",date:"2026å¹´2月2日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/213/2.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/213/2.png",excerpt:"React Plus 2025年総æ
9451‹¬ä¼šè­°ã€ŒSum Up 2025 - The Invasion Begins」を開催。昨年の大きな成果を振り返り、新年度に向けたトップダウンの戦略を共有しました。📈",gradient:"from-blue-200 via-teal-200 to-emerald-200",summary:"年間業績報告と次年度戦略発表を行う「Sum Up」イベントのレポート。成績優秀者の表彰と新年度の飛躍に向けたメッセージが語られました。",content:["📈 Sum Up 2025 - The Invasion Begins: さらなる飛躍に向けたReact Plus 📈","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/968/content_13.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/966/content_11.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/956/content_3.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/970/content_15.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/963/content_8.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/967/content_12.png]","2025年は、React Plusにとって数々の忘れられない成果を残し、適応と変革、そしてブレイクスルーの年となりました。1年を通じた全社員の努力と革新こそが、この確かな前進の原動力です。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/959/content_4.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/962/content_7.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/961/content_6.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/957/content_1.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/965/content_10.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/960/content_5.png]","Sum Up 2025イベントでは、経営陣からの実績報告と新年度の戦略ロードマップ「The Invasion Begins」が発表されたほか、一年間傑出した貢献をした優秀な個人の表彰式も行われました。","私たちはこの成功の熱気と強固な団結力を胸に、2026年を必ずや大きな飛躍の年へと導きます。"]},{id:212,title:"Manager Escape 2025 レポート:戦略的団結とビジョンの共有",date:"2026å¹´1月24日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/212/A%CC%89NH_BI%CC%80A__WEB__1_.png",excerpt:"経営層およびマネージャー陣を対象とした「Manager Escape 2025」イベントを実施。日常業務から離れ、戦略的な対話とチームビルディングを通じて強い結束を築きました。🤝",gradient:"from-violet-200 via-fuchsia-200 to-pink-200",summary:"BODとマネージャー向けのマネジメント強化イベント。リーダーシップの向上と組織目標のすり合わせを目的として行われました。",content:["🤝 Manager Escape 2025 レポート:戦略的団結とビジョンの共有 🤝","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/934/content_9.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/946/content_21.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/944/content_19.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/935/content_11.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/933/content_8.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/952/content_27.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/945/content_20.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/951/content_26.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/947/content_22.png]","1月24日の土曜日、React PlusのBOD(取締役会)および全マネージャーが「Manager Escape 2025」に参加しました。これまでの道のりを振り返り、連携を強化し、「The Invasion Begins」の精神で新年をスタートさせるための特別な旅です。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/937/content_10.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/932/content_7.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/955/content_30.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/950/content_25.png]","美しい自然に囲まれたリラックスした雰囲気の中、リーダー陣は日常の業務から離れ、今後の戦略について深く議論しました。本音で語り合うオープンな対話は、チームの信頼関係をより強固なものにしました。","このリーダーたちの結束力こそが、React Plusを次なるステージへと導く最強の推進力になると強く確信しています。"]},{id:211,title:"React Plus 2026宣言 - 「The Invasion Begins」:トップレベルの挑戦",date:"2025å¹´12月30日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/211/Co%CC%82ng_bo%CC%82%CC%81_chu%CC%89_%C4%91e%CC%82%CC%80_2026__1_.png",excerpt:"2026 年の全社スローガン「THE INVASION BEGINS」を発表。AIを軸とした新時代において、主体的かつ強力に市場へ「侵攻」していくという強い意志を示しました。🚀",gradient:"from-red-200 via-orange-200 to-yellow-200",summary:"2026年の戦略的スローガン「THE INVASION BEGINS」の意図と、激動するIT市場におけるReact Plusの新たなポジショニングの宣言。",content:["🚀 REACT PLUS 2026 | THE INVASION BEGINS 🚀","2025年は世界のテクノロジー業界にとって激動の時期でした。そして2026年は変革の転換点となります。AIおよびGenAIがすべてのエコシステムの必須基準となる中、React Plusはより積極的かつ強力な姿勢で大きな市場に参入する準備を整えました。その宣言が「THE INVASION BEGINS」です。","「THE INVASION BEGINS」は、自らの限界を突破し、品質の壁を越え、グローバル市場におけるReact Plusの価値と地位を再構築しようとする私たちのハングリーな精神を象徴しています。","品質向上から運営の最適化、そして高度な技術人財の育成まで、私たちは全社一丸となって、この「進撃」を最高レベルで展開していきます。"]},{id:210,title:"n8n で IT 業務を自動化",date:"2025å¹´12月29日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/210/%E1%BA%A3nh_page_Facebook__4_.png",excerpt:"n8n は、オープンソースのワークフロー自動化プラットフォームであり、システム統合、DevOps 自動化、システム監視とã
9451‚¢ãƒ©ãƒ¼ãƒˆã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ç®¡ç†ã¨ IT ヘルプデスク、データ パイプライン構築と ETL などの IT 分野の多くの分野で効果的なアプリケーションを可能にします。 n8n は、さまざまなサービスに接続し、API を柔軟に操作し、展開、バックアップ、監視、システム レポートなどの反復的なタスクを自動化する機能を備えており、IT チームの時間を節約し、エラーを減らし、作業パフォーマンスを最適化するのに役立ちます。 n8n は、ドラッグ アンド ドロップ メカニズム、拡張性の容易さ、AI などのテクノロジと組み合わせる機能により、最新の IT 環境でプロセスを最適化し、運用効率を向上させるのに適したソリューションです。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"n8n は、オープンソースのワークフロー自動化プラットフォームであり、システム統合、DevOps 自動化、システム監視とアラート、ユーザー管理と IT ヘルプデスク、データ パイプライン構築と ETL などの IT 分野の多くの分野で効果的なアプリケーションを可能にします。 n8n は、さまざまなサービスに接続し、API を柔軟に操作し、展開、バックアップ、監視、システム レポートなどの反復的なタスクを自動化する機能を備えており、IT チームの時間を節約し、エラーを減らし、作業パフォーマンスを最適化するのに役立ちます。 n8n は、ドラッグ アンド ドロップ メカニズム、拡張性の容易さ、AI などのテクノロジと組み合わせる機能により、最新の IT 環境でプロセスを最適化し、運用効率を向上させるのに適したソリューションです。",content:["n8n で IT 業務を自動化","n8n はオープンソースのワークフロー自動化ツールであり、IT 分野に非常に強力に適用できます。以下は、情報技術分野における n8n の一般的な実際の用途です。","システム統合","- 企業や IT チームが使用しているさまざまなソフトウェアやサービス (GitHub、Jira、Slack、AWS、Google Cloud、Microsoft Teams など) を接続します。","- 手動でコーディングすることなく、システム (データベース、電子メール、クラウド ストレージなど) 間でデータを自動的に転送します。","DevOps プロセスを自動化する","- GitHub/GitLab/Bitbucket でコードが変更されたときに、ビルド、デプロイ、テストをトリガーします。","- ビルドが完了したとき、またはエラーが発生したときに、Slack/Teams に自動通知を送信します。","- CI/CD ツール (Jenkins、CircleCI、Travis など) を接続して、テストとデプロイを自動化します。","システムの監視とアラート","- Prometheus、Zabbix、Datadog などの監視ツールと接続して、システムに問題が発生したときに自動的にアラートを送信します。","- リソースのしきい値を超えた場合、またはシステムにエラーが発生した場合に、電子メール、SMS、チャットを介して警告ワークフローを設定します。","ユーザー管理と IT ヘルプデスクの自動化","- 新しい従業員が増えたときにサービスでのアカウント作成を自動化します (オンボーディングの自動化)。","- Jira、ServiceNow、Zendesk からチケット処理ワークフローを接続して、転送または自動的に分類します。","- チャットボットを統合して、IT に関するよくある質問に答えたり、システム ステータス情報を自動的に取得したりできます。","API に接続して操作する","- Dễ dàng kết nối tới bất cứ API nào, tạo workflow tá»± động lấy dữ liệu, xá»­ lý, cập nhật lại dữ liệu lên server,...","- 反復的な操作を自動プロセスに変えます (バックアップ、セキュリティチェック、データ同期など)。","データパイプラインとETL","- ETL (抽出、変換、ロード) プロセスを自動化: ログの収集、データの処理、ダッシュボード/レポートへの送信。","- Python/NodeJS スクリプトと組み合わせて、ワークフローのより深い部分でデータを処理します。","IT におけるその他の一般的なアプリケーション","- 定期的なセキュリティ脆弱性テストに関するãƒ
9451‡ãƒ¼ã‚¿ã‚’自動的にクロールします。","- ドメイン名の有効期限が近づくと、自動的に通知が送信されます。","- データベース/サーバーを定期的にクラウドにバックアップします。","- システムのステータス、トラフィック、稼働時間などに関する自動レポートを送信します。","IT分野にn8nを適用するメリット","- 複雑なコードは必要ありません: ドラッグ アンド ドロップ、シンプルな構成で、プログラマーでなくても適しています。","- 時間の節約とエラーの削減: プロセスが自動化されており、保守が容易で、人間への依存が軽減されます。","- 拡張が簡単、強力な統合: カスタム ノードの作成、プラグインによる拡張が可能で、多くの API やサービスと互換性があります。","n8n は、DevOps、システム管理、ヘルプデスクの自動化からデータ パイプラインまで、IT 分野に適用すると完å
9451…¨ã«é©ã—ており、非常に役立ちます。 IT チームの反復的なプロセスを最適化したい場合、n8n は検討およびテストできるオプションであり、chatGPT、Gemini などの AI ツールと組み合わせるとさらに強力になります。"]},{id:209,title:"Merry Christmas - 2025年クリスマスの祝福と安らぎのメッセージ",date:"2025å¹´12月24日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/209/A%CC%89NH_BI%CC%80A__WEB__2_.png",excerpt:"「Merry Christmas!」React Plusの全スタッフに向けて温かいクリスマスの祝福を。オフィスに彩られたツリーとともに、感謝と安らぎのメッセージをお届けします。🎄",gradient:"from-green-200 via-red-200 to-green-200",summary:"クリスマスシーズンの社内の様子と、社員の健康と幸福を願うホリデーメッセージです。",content:["🎄 Merry Christmas - 2025年クリスマスの祝福と安らぎのメッセージ 🎄","クリスマスの足音がすぐそこまで聞こえてきました!年末の賑やかなお祭りの雰囲気の中、React Plusから全Reactersへ、心温まる祝福のメッセージをお送りします!💚","このクリスマスシーズンが、皆様にとって多くの喜び、安らぎ、そして思い出に残るひとときをもたらしますように。ご家族との温かい食卓や、自分自身へのささやかなご褒美など、皆様それぞれの素敵な時間をお過ごしください。Merry Christmas & Happy Holidays! 🎁✨"]},{id:208,title:"CrollX UI – 最新の Web インターフェイス用のスムーズにアニメーション化された React コンポーネント",date:"2025å¹´12月19日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/208/%E1%BA%A2NH_B%C3%8CA__WEB__5_.png",excerpt:"CrollX UI は、最新の Web プロジェクト用のオープンソース React コンポーネント ライブラリであり、スムーズなアニメーション、直観性、カスタマイズの容易さを備えたコンポーネントを提供することに重点を置き、プログラマーが複雑なアニメーションを扱うことなく魅力的なインターフェイスを構築できるようにします。このライブラリは、パフォーマンスを最適化し、すべてのデバイスでの応答性をサポートし、色、効果から全体的なテーマに至るまで柔軟なカスタマイズを可能にするモジュラー アーキテクチャを備えています。 CrollX UI は、Spotlight Cards や Glowing Border Cards などのコンポーネントで際立っており、鮮やかでモダンなインターフェイス エクスペリエンスを提供するとともに、インストール方法が簡単で、品質を確保しながら UI 導入時間を短縮できることが高く評価されています。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"CrollX UI は、最新の Web プロジェクト用のオープンソース React コンポーネント ライブラリであり、スムーズなアニメーション、直観性、カスタマイズの容易さを備えたコンポーネントを提供することに重点を置き、プログラマーが複雑なアニメーションを扱うことなく魅力的なインターフェイスを構築できるようにします。このライブラリは、パフォーマンスを最適化し、すべてのデバイスでの応答性をサポートし、色、効果から全体的なテーマに至るまで柔軟なカスタマイズを可能にするモジュラー アーキテクチャを備えています。 CrollX UI は、Spotlight Cards や Glowing Border Cards などのコンポーネントで際立っており、鮮やかでモダンなインターフェイス エクスペリエンスを提供するとともに、インストール方法が簡単で、品質を確保しながら UI 導入時間を短縮できることが高く評価されています。",content:["CrollX UI – 最新の Web インターフェイス用のスムーズにアニメーション化された React コンポーネント","CrollX UI は、視覚化とユーザー エクスペリエンスが最優先される最新の Web プロジェクト向けに構築されたオープン ソースの React コンポーネント ライブラリです。このライブラリは、美しく洗練された柔軟なアニメーション コンポーネントを提供することに重点を置いており、プログラマが複雑なアニメーションを自分で作成することなく魅力的なインターフェイスを簡単に作成できるようにします。","CrollX UI の強みは、スムーズで自然なアニメーションと、色、効果から全体的なテーマに至るまでの包括的なカスタマイズを提供することにあります。さらに、ライブラリはモジュラー アーキテクチャに基づいて設計されているため、必要なものだけをインポートできるため、パフォーマンスが最適化され、バンドルの負荷が軽減されます。すべてのコンポーネントもレスポンシブ標準に従って開発されており、あらゆる画面サイズで美しい表示を保証します。","CrollX UI の優れたコンポーネントには次のものがあります。","- スポットライト カード – マウスの動きに追従するハイライト効果で、視覚的なハイライトを作成します。","- 光る境界線カード - プレミアム スタイルの UI に適した、モダンな光る境界線","- その他多くのアニメーション コンポーネントにより、インターフェースがより鮮やかでプロフェッショナルなものになります。","CrollX UI のインストールは簡単で、CLI または手動インストールでサポートされており、あらゆる開発環境に適しています。多くのプログラマは、そのスムーズなアニメーション、直感的な統合、そして特に UI の品質を確保しながらインターフェイスの展開速度を向上させ、セットアップ時間を短縮できる機能のおかげで、このライブラリを高く評価しています。","React プロジェクトを構築していて、あまり多くのアニメーション ロジックを自分で処理する必要がなく、美しく滑らかで最新のインターフェイスが必要な場合は、CrollX UI は間違いなく試してみる価値のあるオプションです。このコンポーネント セットがもたらす違いを体験してください。"]},{id:183,title:"Langbase MCP と Cursor AI を使用してサーバーレス AI アシスタントを作成する",date:"2025å¹´12月6日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/183/%E1%BA%A2NH_B%C3%8CA__WEB__10_.png",excerpt:"ハードウェアを気にすることなく、サーバーレス AI アシスタントをわずか数分で作成できます。 Langbase Docs MCP Server と Cursor AI を組み合わせることで、AI モデルをドã
9451‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã«æŸ”軟かつ効率的に接続できます。 MCP を使用すると、AI がドキュメントや API からコンテキストに簡単にアクセスできるようになり、Cursor はプログラミング環境内での直接統合をサポートします。インストールが簡単で、複数の言語をサポートしており、強力でカスタマイズ可能な AI アシスタントの構築をすぐに開始できます。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"ハードウェアを気にすることなく、サーバーレス AI アシスタントをわずか数分で作成できます。 Langbase Docs MCP Server と Cursor AI を組み合わせることで、AI モデルをドキュメントに柔軟かつ効率的に接続できます。 MCP を使用すると、AI がドキュメントや API からコンテキストに簡単にアクセスできるようになり、Cursor はプログラミング環境内での直接統合をサポートします。インストールが簡単で、複数の言語をサポートしており、強力でカスタマイズ可能な AI アシスタントの構築をすぐに開始できます。",content:["複雑なハードウェアを気にせずに AI アシスタントを作成したいと思ったことはありませんか? Langbase Docs MCP Server を使用すると、AI モデルを Langbase ドキュメントに簡単に接続できます。 React Plus を使用して、サーバーレス AI アシスタントを数分で作成する方法を探ってみましょう。","始める前に知っておくべきこと","必要な道具:","- Langbase: サーバーレス AI アシスタントを構築および展開するためのプラットフォーム。","- Langbase SDK: JavaScript、TypeScript、Node.js、Next.js、React などを操作するための TypeScript SDK。","- カーソル: VS Code に似た AI コード エディター。","モデル コンテキスト プロトコル (MCP) とは何ですか?","MCP は、アプリケーションが大規模言語モデル (LLM) に外部コンテキストを提供するのに役立つオープン プロトコルです。これにより、AI モデルがシンプルかつ一貫した方法でドキュメント、API、データベースにアクセスできるようになります。","実践例: MCP は公共図書館のようなもので、文書、書籍、参考文献を簡単に検索して使用できます。","MCPにおける人類の役割","Anthropic は、AI モデルがツールを自然に使用できるようにするために MCP を導入しました。 MCP はもともと Claude 用に構築されましたが、現在は拡張され、Cursor や Claude Desktop などの開発環境でサポートされています。","カーソルAIコードエディター","Cursor は開発者向けの AI コード エディターであり、Claude、GPT などの AI モデルを統合します。 Cursor は MCP をサポートしているため、Langbase Docs MCP サーバーなどのカスタム ツール サーバーに簡単に接続できます。","Langbase および Langbase Docs MCP サーバー","Langbase は、メモリ対応 AI アシスタントを構築するための強力なサーバーレス AI プラットフォームです。 Langbase Docs MCP サーバーは、Langbase API ドキュメントとリファレンスへのアクセスを提供し、AI モデルがこのドキュメントをコンテキストとして使用できるようにします。","Langbase Docs MCP サーバーをカーソルにインストールする方法","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/769/content_501830351_122226404606061265_2376305240585015142_n.jpg]","- ステップ 1: カーソル設定を開く","カーソルを開き、左側のサイドバーから [設定] を選択します。","- ステップ 2: 新しい MCP サーバーを追加する","[新しいグローバル MCP サーバーを追加] ボタンをクリックします。","- ステップ 3: Langbase Docs MCP サーバーを構成する","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/770/content_500483949_122226404528061265_157964728903877744_n.jpg]","次の設定を mcp.json ファイルに貼り付けます。","{",'"mcpサーバー": {',"「ラングベース」: {",'"コマンド": "npx",','"args": ["@langbase/cli","docs-mcp-server"]',"}","}","}","- ステップ 4: Langbase Docs MCP サーバーを開始する","ターミナルで次を実行します。","pnpm 追加 @langbase/cli","pnpm dlx @langbase/cli docs-mcp-server","- ステップ 5: カーソルで MCP サーバーを有効にする","MCP 設定で、Langbase サーバーが有効になっていることを確認してください。","Cursor AI で Langbase Docs MCP サーバーを使用する方法","インストールすると、docs_route_finder、sdk_documentation_fetcher、examples_tool、guide_tool、api_reference_tool などの Langbase ドキュメント ツールを使用できるようになります。","例えば:","カーソルに質問: 「Langbase Memory の API リファレンスを表示」または「Langbase で AI パイプを作成するコード例を検索」。","例: 簡単な AI アシスタントの構築","Curs
9451or AI の Langbase Docs MCP Server を利用した Langbase SDK を使用して、要約 AI アシスタントを構築してみましょう。","- ステップ 1: カーソルの空のフォルダーを開く","カーソルで空のフォルダーを開き、チャット パネルを起動します (Mac の場合は Cmd+Shift+I、Windows の場合は Ctrl+Shift+I)。","- ステップ 2: エージェント モードに切り替える","モード セレクターからエージェント モードを選択し、LLM を選択します (Claude 3.5 Sonnet を使用します)。","- ステップ 3: 概要コマンドを入力する","チャット入力ボックスに次のコマンドを入力します。","「このディレクトリで、Langbase SDK を使用して要約アシスタントを作成します。TypeScript と pnpm を使用して、ターミナルでアシスタントを実行します。」","- ステップ 4: 結果を確認する","カーソルは自動的に MCP を呼び出し、必要なファイルとコードを生成し、変更を提案します。変更を受け入れると、要約アシスタントの準備が整います。 Cursor によって提供されるコマンドを使用してアシスタントを実行し、結果を確認します。","結論する","Langbase Docs MCP Server と Cursor AI を組み合わせることで、IDE 内でサーバーレス AI アシスタントを数分で作成する方法を学びました。","出典: 8 Sync Dev"]},{id:172,title:"シングルトン パターン: 効果的な AI 構成管理",date:"2025å¹´12月4日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/172/%E1%BA%A2NH_B%C3%8CA__WEB__49_.png",excerpt:"この記事では、人工知能 (AI) アプリケーションの構成管理におけるシングルトン パターンに関する詳細なガイダンスを提供します。シングルトン パターンが効果的なソリューションである理由、それを Python で実装する方法、およびそれを適用する際の重要な考慮事項について説明します。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"この記事では、人工知能 (AI) アプリケーションの構成管理におけるシングルトン パターンに関する詳細なガイダンスを提供します。シングルトン パターンが効果的なソリューションである理由、それを Python で実装する方法、およびそれを適用する際の重要な考慮事項について説明します。",content:["問題の概要: 複雑な AI 構成の管理","AI アプリケーション開発では、コンポーネントの分散性と多様性により、構成管理が特に複雑になります。","- ハイパーパラメータ: モデルトレーニングのハイパーパラメータ (学習率、バッチサイズなど)。","- データベース接続文字列: データセットを含むデータベースのアクセス情報。","- API キー: 外部サービスと統合するための API キー (OpenAI、Hugging Face...)。","- 環境変数: 開発 (dev)、テスト (test)、実稼働 (production) 環境間の構成は異なります。","集中管理メカニズムがないと、構成間の同期と一貫性を維持することが非常に困難になり、次のリスクが発生します。","- 本番環境で実行されている開発データでトレーニングされたモデル。","- モジュール間の構成の違いによる一貫性のないエラー。","- Khó khăn trong việc debug và kiểm thá»­.","- シングルトン パターンは、これらの問題を解決する効果的なソリューションとして登場します。","シングルトンパターンとは何ですか?","シングルトン パターンは、作成パターン グループに属する設計パターンであり、クラスに 1 つのインスタンスのみが作成されるようにすると同時に、そのインスタンスへのグローバル アクセス ポイントも提供します。","シングルトン パターンの主な特徴:","- 単一インスタンス: アプリケーションのライフサイクル全体を通じて、クラスのオブジェクトが 1 つだけ存在します。","- グローバル アクセス: 単一のインスタンスには、アプリケーション内のどこからでもアクセスできます。","- 制御されたインスタンス化: パターンにより、誰も誤ってまたは意図的に 2 番目のインスタンスを作成することができなくなります。","** analogies (Ví dụ dễ hiểu):**","- 家のキー: 家のマスター キーが 1 つだけであるのと同じように、シングルトン パターンでは、構成にアクセスするための「キー」(インスタンス) が 1 つだけであることが保証されます。","- システム設定: 単一のシステム設定パネルがあり、すべてのコンポーネントがその設定を参照していると想像してください。","シングルトン パターンが AI 構成管理に役立つのはなぜですか?","シングルトン パターンは、AI 構成管理に多くの実用的な利点をもたらします。","1. 一元化された構成:","問題: AI プロジェクトでは、多くのモジュール (データ前処理、モデル トレーニング、推論) が同じ構成を使用する必要があります。シングルトンを使用しない場合は、次のことを行う必要があります。","モジュール間で構成オブジェクトを手動で転送します (面倒でエラーが発生しやすくなります)。","複数の構成を維持します (不整合が発生しやすい)。","シングルトン ソリューション: 単一の構成インスタンスを提供すると、すべてのモジュールがこの共通の「信頼できる情報源」にアクセスします。","2. リソースを保存します。","問題: 一部の AI 構成 (データベース接続、GPU 割り当て) は、大量の初期化リソースを消費します。複数のインスタンスを作成すると、メモリとパフォーマンスが無駄になります。","シングルトン ソリューション: アクセス数に関係なく、リソースが 1 回だけ初期化さã
9451‚Œã‚‹ã‚ˆã†ã«ã—ます。","3. 安全なスレッド管理:","問題: マルチスレッド環境 (トレーニング、AI 展開) では、構成へのアクセスと変更を同時に行うと、競合状態、システム クラッシュ、または一貫性のない結果が発生する可能性があります。","** Giải pháp Singleton:** Khi triển khai đúng cách, Singleton Pattern có thể xá»­ lý thread-safe, đảm bảo chỉ một thread được phép sá»­a đổi cấu hình tại một thời điểm.","4. Đơn Giản Hóa Debug và Kiểm Thá»­:","問題: 分散 AI システムは本質的にデバッグが困難です。分散した一貫性のない構成により複雑さが増し、エラーの追跡が困難になります。","シングルトン ソリューション: テストとデバッグ用に単一の一貫した構成オブジェクトを提供することで、エラー検出の範囲を狭めます。","Python でシングルトン パターンを実装する手順 (AI 構成例)","Python は AI で人気のある言語であるため、Python でのシングルトン パターンの実装について見ていきます。","ステップ 1: 基本的なシングルトンを実装する","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/753/content_486393631_122216090126061265_25736049784677429_n.jpg]","ステップ 2: シングルトンを使用する","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/751/content_486664050_122216090162061265_4537713070158168372_n.jpg]","コードの説明:","_instance = None: _instance クラス変数には、AIConfig クラスの唯一のインスタンスが格納されます。元々は「なし」でした。","__new__(cls): これは最も重要なメソッドです。インスタンスの作成時に __init__ の前に呼び出されます。","そうでない場合 cls._instance:: _instance が作成されているかどうかを確認します。なしの場合:","cls._instance = super(AIConfig, cls).__new__(cls, *args, **kwargs): 親クラス (super()) の __new__ メソッドを呼び出して、実際に新しいインスタンスを作成します。","cls._initialize_defaults(cls._instance): インスタンスの作成直後にメソッドを呼び出して、デフォルトの構成値を初期化します。","return cls._instance: AIConfig() を呼び出すたびに同じインスタンス (cls._instance) を返します。","_initialize_defaults(instance): 構成プロパティのデフォルト値を設定する静的メソッド。","get_config(): 構成にアクセスする方法を示すサンプルメソッド。","ステップ 3: スレッド セーフを追加する (マルチスレッド環境の場合)","マルチスレッド環境では、複数のスレッドが初めてシングルトン インスタンスを作成しようとすると、競合状態が発生する可能性があります。スレッドの安全性を確保するために、threading.Lock を使用します。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/752/content_486733189_122216090216061265_6953084790664700446_n.jpg]","スレッドセーフなコードの説明:","_lock = threading.Lock(): ロック オブジェクトを作成します。","with cls._lock:: ロック付きのコンテキスト マネージャーを使用します。スレッドが with ブロックに入ると、ロックを取得します。このブロックに入りたい他のスレッドは、現在のスレッドがブロックから出る (ロックが解放される) まで待機する必要があります。これにより、cls._instance ではないかどうかを確認し、インスタンスを作成できるスレッドは一度に 1 つだけになります。","AIにおけるシングルトンパターンの実用化","シングルトン パターンは、多くの AI 構成管理シナリオで役立ちます。","1. モデルのトレーニング:","ハイパーパラメーター (学習率、オプティマイザーなど) がトレーニング プロセス全体で一貫していることを確認します。","トレーニング ループ間の構成の違いによる「サイレント」エラーを回避します。","2. 推論パイプライン (推論プロセス):","パイプライン内のステップ (前処理、モデルの読み込み、後処理) が同じ構成環境を使用していることを確認してください。","非同期構成による導入リスクを最小限に抑えます。","3. 分散システム:","(クラスター上でトレーニングされた) 分散 AI システムでは、各ノード/プロセスはシングルトンを通じて同じ構成オブジェクトにアクセスできます。","ノード間の構成の一貫性を確保し、同期時の「予期せぬ事態」を回避します。","避けるべき落とし穴","シングルトン パターンは強力ではありますが、「万能薬」ではありません。注意すべき点は次のとおりです。","- 隠れた依存関係: シングルトンを過度に使用すると、密結合されたアーキテクチャが作成される可能性があります。すべてをシングルトンに依存すると、リファクタリングが困難になります。","- テストの課題: インスタンス シングルトンはテスト ケース全体に存在します。これにより、テストの分離が困難になり、テスト間に副作用が発生する可能性があります。解決策: 依存関係の注入 
9451(DI) を使用して、テスト内の構成を「モック」します。","- 複雑なスレッド セーフティ: スレッド セーフティを追加すると複雑さが増し、オーバーヘッドが発生する可能性があります。絶対に必要でない場合は、トレードオフを検討してください。","- 単一責任原則の違反: シングルトン クラスはインスタンスの管理と構成の両方を行うことができます。構成が複雑になりすぎる場合は、責任を分離することを検討してください。","ベストプラクティスと重要な注意事項","- 絶対に必要な場合に使用する: シングルトン パターンは、クラスのインスタンスが 1 つだけ必要であることが確実な場合に使用する必要があります。虐待を避けてください。","- 依存性注入 (DI) を検討する: テスト容易性を向上させ、密結合を減らすために、場合によってはシングルトンの代わりに DI の使用を検討してください。","- 必要な場合のスレッド セーフ: アプリケーションが実際にマルチスレッド環境で実行され、競合状態のリスクがある場合にのみスレッド セーフを追加します。","- 遅延読み込みの初期化 (必要な場合): 構成の初期化に時間がかかる場合は、遅延読み込みを検討できます (初めて本当に必要な場合にのみインスタンスを初期化します)。","- ドキュメントrクリア: ドキュメントr&otilde;特に大規模なプロジェクトでシングルトンを使用すると、他のチーム メンバーが重要性を理解できるようになります。そして悪用を避けてください。","出典: 8 Sync Dev"]},{id:207,title:"「ゴミを集めて緑を育む」- React Plusのエコ活動「廃棄物と苗木の交換」プロジェクト",date:"2025å¹´12月1日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/207/%E1%BA%A2NH_B%C3%8CA__WEB.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/207/%E1%BA%A2NH_B%C3%8CA__WEB.png",excerpt:"React Plusでは環境保護活動として「ゴミと苗木の交換」イベントを開催。再利用可能な資源を回収し、オフィスを彩る緑に変えるアクションを通じて、サステナブルな意識を高めました。🌿",gradient:"from-green-200 via-emerald-200 to-teal-200",summary:"環境への意識を高める「Trash for Trees」プロジェクトを実施。ゴミの分別とリサイクルを通じて、社内に緑を増やすとともに、持続可能なライフスタイルの大切さを共有しました。",content:["🌿 ゴミを集めて緑を育む - React Plus「Trash for Trees」の軌跡 🌿","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/973/content_1.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/974/content_3.png]","11月8日から28日にかけて、全社員が熱心に参加した「ゴミと苗木の交換」プログラム。日々の廃棄物を分別・回収し、緑あふれる職場環境を自分たちの手で作り上げました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/975/content_4.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/976/content_5.png]","回収された紙、プラスチックボトル、空き缶、金属類などのリサイクル可能な廃棄物は、提携パートナーを通じて「新鮮な観葉植物」に生まれ変わりました。この活動は、単にオフィスに緑を増やすだけでなく、私たちの身近な行動が環境保護に直結することを再確認させてくれました。","参加してくださった皆様、ありがとうございました!これからもゴミの分別を習慣化し、ポジティブなエネルギーで毎日を満たしていきましょう。"]},{id:206,title:"2025 年のフルスタック開発者の必須スキル",date:"2025å¹´11月20日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/206/A%CC%89NH_BI%CC%80A__WEB__1_.png",excerpt:"フルスタック プログラマーの需要は急激に増加すると予想されており (2020 ~ 2030 年で 22%)、専門スキルとソフト スキルを完全に装備することが IT 分野で競争するための決め手となります。フルスタック開発者は、フロントエンド (HTML/CSS、JavaScript、React、Vue、Angular などのフレームワーク) とバックエンド (Java、Python、Node.js) のスキルに加え、SQL と NoSQL でデータベースを管理する能力を習得する必要があります。さらに、UI/UX デザインを理解し、AWS、Azure などのクラウド プラットフォームを使用し、Docker、Kubernetes を組み合わせ、Git/GitHub に習熟することも非常に重要です。クリティカルシンキング、計画、時間管理、コミュニケーション、チームワーク、適応性などのソフトスキルは、コラボレーション効率の向上に役立ちます。将来的には、プログラマーは AI、セキュリティ、パフォーマンスの最適化、API 統合、クロスプラットフォーム開発に関する知識を補う必要があります。合理的な学習パスがあり、プロジェクトを通じて積極的に実践している場合、フルスタック開発が潜在的なキャリア パスになります。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"フルスタック プログラマーの需要は急激に増加すると予想されており (2020 ~ 2030 年で 22%)、専門スキルとソフト スキルを完全に装備することが IT 分野で競争するための決め手となります。フルスタック開発者は、フロントエンド (HTML/CSS、JavaScript、React、Vue、Angular などのフレームワーク) とバックエンド (Java、Python、Node.js) のスキルに加え、SQL と NoSQL でデータベースを管理する能力を習得する必要があります。さらに、UI/UX デザインを理解し、AWS、Azure などのクラウド プラットフォームを使用し、Docker、Kubernetes を組み合わせ、Git/GitHub に習熟することも非常に重要です。クリティカルシンキング、計画、時間管理、コミュニケーション、チームワーク、適応性などのソフトスキルは、コラボレーション効率の向上に役立ちます。将来的には、プログラマーは AI、セキュリティ、パフォーマンスの最適化、API 統合、クロスプラットフォーム開発に関する知識を補う必要があります。合理的な学習パスがあり、プロジェクトを通じて積極的に実践している場合、フルスタック開発が潜在的なキャリア パスになります。",content:["2025 年のフルスタック開発者に必須のスキル","米国労働統計局によると、フルスタック開発者の需要が 2020 年から 2030 年にかけて 22% 増加すると予想されていることをご存知ですか?この需要の高まりに応えるために、将来のプログラマーは必須のフルスタック プログラミング スキルを学び、技術の進歩の先を行く必要があります。競争の激しいIT環境で成功するには、技術スキルとソフトスキルの両方を習得することが不可欠でã
9451™ã€‚","このブログは、r&otilde; を理解するのに役立ちます。フロントエンドおよびバックエンド開発、データベース管理、クラウド サービスなどのフルスタック開発者のコ​​ア スキルを含む、Web 開発で成功するために必要なスキル。初めての開発者の役割に向けて準備をしている場合でも、フルスタックのスキルを向上させたい場合でも、このガイドは、開発者としての役割を担うためのロードマップを提供します。このダイナミックな分野で目立つことは明らかです。","フルスタック開発者に必要なスキルは何ですか?","フルスタック開発者が成功するには、技術的スキルとソフト スキルの両方が必要です。テクニカル スキルは機能的なアプリケーションを構築するのに役立ちますが、ソフト スキルはコラボレーションして高品質の結果を提供するのに役立ちます。","フルスタック開発者の技術スキルは何ですか?","これらは、コードを書いてソフトウェアを構築するために必要な特定の能力です。","1. フロントエンドスキル: ユーザーエクスペリエンスの作成","- HTML/CSS: HTML は、家の骨組みのような Web サイトの構造を提供します。 CSS はスタイルを追加し、視覚的な魅力を生み出します。これらが基本的な要素です。","- JavaScript: JavaScript は Web サイトを動的で応答性の高いものにします。インタラクティブな要素、アニメーション、ユーザーのフィードバックについて考えてみましょう。 React、Vue、Angular などのフレームワークは、複雑なアプリケーションを構築する際の JavaScript の機能を拡張します。","2. バックエンドスキル: アプリケーションを強化する","- Java: Java は、大規模なエンタープライズ レベルのアプリケーションの構築に使用される強力な言語です。","- Python: Python はその読みやすさと豊富なライブラリで有名で、Web 開発によく選ばれています。 Django や Flask などのフレームワークは、バックエンド開発の簡素化に役立ちます。","- Node.js: Node.js を使用すると、サーバー側で JavaScript を使用して、効率的でスケーラブルなアプリケーションを作成できます。","3. データベース スキル: データの保存と管理","- SQL: SQL は、リレーショナル データベースを管理するための標準言語であり、データをテーブルに編成し、データ間の関係を関連付けます。","- NoSQL: NoSQL データベースは、非構造化データまたは急速に変化するデータをより柔軟に処理できます。","4. 基本的なデザインスキル: ユーザーフレンドリーなインターフェイスを作成する","- UI/UX: UI (ユーザー インターフェイス) はビジュアル デザインとレイアウトに焦点を当て、UX (ユーザー エクスペリエンス) はユーザーがアプリを操作する方法に焦点を当てます。","- Figma や Sketch などのツールはプロトタイピングをサポートします。","5. Web ホスティング プラットフォーム: アプリケーションをデプロイします。","- AWS および Azure: これらのプラットフォームはクラウドベースのストレージとサービスを提供し、アプリケーションを大規模に展開して管理できるようにします。","- Docker や Kubernetes などのツールはサーバー管理を最適化します。","6. バージョン管理: コード変更の管理と共同作業","- Git/GitHub: Git はコードの変更を追跡し、GitHub はバージョン管理とコラボレーション プラットフォームを提供します。これらの要素は、チームワークとプロジェクト管理に不可欠でã
9451™ã€‚","フルスタック開発者にとって重要なソフトスキルは何ですか?","これらのスキルは、コラボレーションやプロジェクト管理を成功させるための技術スキルと同じくらい重要です。","- クリティカルシンキング: 開発プロセス中に問題を分析し、効果的な解決策を考え出す能力。","- 戦略的計画: 戦略の作成プロジェクトの目標を効果的に達成することが明確かつ実現可能であること。","- 時間管理: タスクに優先順位を付け、期限を守り、予定通りプロジェクトを完了します。","- コミュニケーション: コミュニケーションを行います。チームメンバーや関係者に対してアイデアや技術的な問題を明確にします。","- チームワーク: 共通の目標を達成するために他の人と効果的に協力します。","- 適応性: 新しいテクノロジー、プロジェクトの変更、課題に迅速に適応します。","これらのスキルの学習を開始するにはどうすればよいですか?","これらすべてのスキルを学ぶのは大変なことのように思えるかもしれませんが、体系化されたアプローチを使用すれば管理可能になります。特定のテクノロジー グループに焦点を当て、プロジェクトを構築して実践的な経験を積むことを検討してください。コーディング ブート キャンプでは、これらのスキルをすぐに習得できる詳細なトレーニング プログラムを提供しています。","フルスタック開発者のスキルは未来をどのように形作るのでしょうか?","フルスタック開発者は、スマート機能をアプリケーションに統合するための AI と機械学習、およびスケーラブルなソリューションを効率的に処理するためのクラウド サービス管理に関する基本的な知識が必要です。サイバー脅威からデータを保護するにはセキュリティのベスト プラクティスが重要になる一方、パフォーマンス最適化技術によりアプリケーションの高速かつ応答性が確保されます。 API 設計と統合の専門知識により、システム間のシームレスな通信が可能になり、クロスプラットフォーム開発の専門知識により、すべてのデバイスにわたって一貫したパフォーマンスが確保されます。これらのスキルはフルスタック開発の将来を形成し、開発者が技術の進歩を推進する主要なプレーヤーであり続けることを保証します。","AI はフルスタック開発にどのような影響を与えますか?","人工知能 (AI) は、開発プロセスに自動化と人工知能を導入することにより、フルスタック開発を変革しています。 AI を活用したツールは、コード生成、エラー検出、テストを支援し、開発時間とエラーを大幅に削減します。 AI の統合により、開発者はチャットボットやレコメンデーション システムなど、ユーザー エクスペリエンスを向上させる、よりスマートなアプリケーションを作成することもできます。 AI が進化し続けるにつれて、イノベーションを推進し、効率と機能の新たな標準を確立することで、フルスタック開発の未来を形作ることになります。","詳細については、「AI はフルスタック開発の未来をどのように形作るのか?」というタイトルの記事を参照してください。","結論","適切なスキルを習得すれば、フルスタック開発は有望なキャリアパスを提供します。雇用市場で優位に立つために、技術スキルとソフトスキルの両方の開発に重点を置きます。"]},{id:204,title:"React Plus、11月19日の国際男性デーを祝福",date:"2025å¹´11月19日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/204/A%CC%89NH_BI%CC%80A__WEB.png",excerpt:"11月19日の国際男性デーを祝し、日頃から黙々と会社を支えてくれる男性社員たちへ感謝を込めたプロモーションイベントを実施しました。",gradient:"from-blue-200 via-indigo-200 to-cyan-200",summary:"国際男性デーを祝う社内イベント。日頃の感謝を伝えるメッセージとささやかなプレゼントが贈られました。",content:["👨 React Plus、11月19日の国際男性デーを祝福 👨","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/858/content_3.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/856/content_2.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/861/content_5.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/859/content_4.png]","国際男性デー(11月19日)は、私たちが日々支え合っている男性たちに感謝を捧げる大切な機会です。彼らは多くを語らず、感情を表に出すのが苦手かもしれませんが、常に家族や仲間のために全力を尽くしてくれています。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/860/content_6.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/862/content_7.png]","この特別な日に、React Plusは日頃の感謝と敬意を込めて、ささやかながら温かいプレゼントを用意しました。","React Plusを共に作り上げる「力強い」半分の皆様、これからの道のりにおいても、常に健康で自信に満ち、仕事でも家庭でも揺るぎない柱であり続けてください!"]},{id:205,title:"開発 – QA – PM 間の効果的なコミュニケーション",date:"2025å¹´11月12日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/205/%E1%BA%A2NH_B%C3%8CA__WEB__31_.png",excerpt:"アジャイル環境では、プロジェクトを円滑に進めるためには、開発、QA、PM 間のコミュニケーションが重要な役割を果たします。これは、曖昧な要求や報告の遅れでも、進捗や品質に影響を与える可能性があるためです。効果的に調整するには、関係者が互いの役割を理解し、コミュニケーションを取り、互いの役割を理解する必要があります。明確、簡潔、タイムリーであり、チャット、チケット、毎日の会議などの適切なコミュニケーション チャネルを使用します。受け入れ基準を比較したり、優先順位を交渉したり、作業を再割り当てしたりして矛盾に対処すると、誤解を減らすことができます。敬意を持ち、傾聴し、解決策を重視するというポジティブなコミュニケーションの文化が維持されると、3 つの役割が同期した歯車として機能し、高品質の製品と期限内のスプリントを提供します。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"アジャイル環境では、プロジェクトを円滑に進めるためには、開発、QA、PM 間のコミュニケーションが重要な役割を果たします。これは、曖昧な要求や報告の遅れでも、進捗や品質に影響を与える可能性があるためです。効果的に調整するには、関係者が互いの役割を理解し、コミュニケーションを取り、互いの役割を理解する必要があります。明確、簡潔、タイムリーであり、チャット、チケット、毎日の会議などの適切なコミュニケーション チャネルを使用します。受け入れ基準を比較したり、優先順位を交渉したり、作業を再割り当てしたりして矛盾に対処すると、誤解を減らすことができます。敬意を持ち、傾聴し、解決策を重視するというポジティブなコミュニケーションの文化が維持されると、3 つの役割が同期した歯車として機能し、高品質の製品と期限内のスプリントを提供します。",content:["アジャイル プロジェクト環境では、成功はプログラミング テクニックや管理プロセスだけでなく、開発者 (Dev)、品質保証 (QA)、プロジェクト マネージャー (PM) という 3 つの中心的な役割間のコミュニケーションにも大きく依存します。曖昧なメッセージ、満たされない期待。報告が遅れると、スケジュールや製品の品質に遅れが生じる可能性があります。","では、開発、QA、PM が効果的にコミュニケーションを取り、誤解を減らし、スムーズに調整するにはどうすればよいでしょうか?","1. お互いの役割を理解する","開発者: 製品を直接構築し、コードで要件を実現する人。","QA: 製品の品質を保証し、エラーを発見し、リスクを防止する人。","PM: コネクター、範囲、スケジュール、予算、製品の方向性を管理します。","👉 お互いの「言語」を理解すると、あらゆるやり取りで衝突が減り、共通の目標に集中できるようになります。","2. 効果的なコミュニケーションの原則","ロチルダ明確かつ具体的:","- 開発者は、コードをコミットしたりタスクを作成したりするときに、詳細なメモを取る必要があります。","- QA は、完全な再現手順、スクリーンショット/ビデオの図を使用してバグを説明する必要があります。","- PM はリクエストを送信するときに、ユーザー ストーリーを作成する必要があります。もちろん、合格基準はあります。","短く要点をまとめたもの:","- 毎日のスタンドアップが長い会議になることはありません。","- 進捗レポートは、「何が行われたか、何が行われているか、何が妨げられているか」に焦点を当てます。","透明性と適時性:","- 開発者に問題がある場合は、スプリント レビューを待たずにすぐに報告してください。","- QA が重大なバグを発見した場合は、スプリントが終了するまで放置しないように、早期に通知する必要があります。","- PM は範囲または期限の変更を直ちに更新する必要があります。","3. 適切ã
9451ªã‚³ãƒŸãƒ¥ãƒ‹ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ãƒãƒ£ãƒãƒ«","- グループ チャット (Slack、Teams、Zalo): 迅速な交換、即座の更新。","- チケット/バグ追跡 (Jira、Trello): 作業とバグを記録し、透明性と簡単な追跡に役立ちます。","- 毎日のミーティング:その日のうちに問題に対処します。","- 振り返り: 各スプリント後のコミュニケーションを改善します。","4. よくある状況とその対処方法","- 開発者と QA: QA はバグを報告しましたが、開発者はそれが「仕様」であると述べました。","&rar;解決策: PM によって確認された合格基準と比較してください。","- 開発者と PM: PM はスプリント中に機能を追加したいと考えていますが、開発者は過負荷のため反応します。","&rar;解決策: 優先順位が追加されている場合は、削除するか、次のスプリントに移動する必要があるかについて話し合います。","- QA 対 PM: QA はより多くのテスト時間を要求しますが、PM は期限に間に合わないことを心配します。","&rar;解決策: 交渉し、優先度に従ってテストできます (優先度の高いものから順に)。","5. 積極的なコミュニケーション文化","お互いを尊重します。他の役割を責めたり、軽視したりしないでください。","積極的に共有する: 開発者は QA テスト ケースを提案でき、QA はリスクを早期に報告でき、PM は全体像を共有できます。","話を聞いて建設的なフィードバックを与える: 個人的な議論を避け、解決策に焦点を当てます。","6. 結論","IT プロジェクトにおける開発、QA、PM 間のコミュニケーションは、機械の 3 つの歯車のようなものです。 1 つのギアが故障すると、システム全体の速度が低下します。各当事者がr&otildeを理解すると、適切なコミュニケーション チャネルを使用し、オープンな心を維持することで、チームは時間内にスプリントを完了するだけでなく、より高品質の製品を作成することもできます。"]},{id:203,title:"CI/CD パイプライン - 最新プログラミングの「高速道路」",date:"2025å¹´10月30日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/203/%E1%BA%A2NH_B%C3%8CA__WEB__29_.png",excerpt:"CI/CD は、継続的インテグレーションと継続的デリバリー/デプロイメントの略です。これは、パーソナル コンピューターからコードを迅速、安全、確実に実稼働環境に直接送信するのに役立つ「高速道路」とみなされます。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"CI/CD は、継続的インテグレーションと継続的デリバリー/デプロイメントの略です。これは、パーソナル コンピューターからコードを迅速、安全、確実に実稼働環境に直接送信するのに役立つ「高速道路」とみなされます。",content:["CI/CD は、継続的インテグレーションと継続的デリバリー/デプロイメントの略です。これは、パーソナル コンピューターからコードを迅速、安全、確実に実稼働環境に直接送信するのに役立つ「高速道路」とみなされます。","簡単な理解:","- CI: コードを継続的にマージし、自動的にテストしてビルドし、すべての変更がスムーズに実行されることを確認します。","- CD: コードを迅速にデプロイし、場合によっては自動デプロイ - コードのすべてのプッシュが本番環境に直接実行されることを意味します。","CI/CD パイプラインは DevOps または SRE アプローチを使用して維持されることが多く、これには多くの利点があります。","- 製品のリリース速度を向上させます。","- 自動化されたテストプロセスによりバグを削減します。","- チームのコラボレーションが向上し、「全員のコードが実行される」ことがなくなりました。","- システムの柔軟性と信頼性が向上します。","パイプラインの一般的なステージ: build &rarr;テスト&rarr;デプロイ、デプロイ。","しかし現実は、コードレビュー、環境変数管理、サービスの再起動、マルチレイヤーテストなどにより、さらに複雑になる可能性があります。","すべての開発者が知っておくべき有名な CI/CD ツール:","Jenkins、TeamCity、CircleCI、Bamboo、GitLab、Azure DevOps。","つまり、CI/CD パイプラインはプログラマがコードの作成に集中できるようにする「アシスタント」であり、システムは構築、テスト、デプロイを担当します。"]},{id:202,title:"「Hermosa’s Day」- 10月20日ベトナム女性の日を祝福",date:"2025å¹´10月20日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/202/%E1%BA%A2NH_B%C3%8CA__WEB__28_.png",excerpt:"10月20日のベトナム女性の日を祝し「Hermosa’s Day」を開催しました。花や音楽、たくさんの愛に包まれ、社内の女性社員たちが主役となる素晴らしい一日となりました。🌸",gradient:"from-pink-200 via-rose-200 to-red-200",summary:"ベトナム女性の日を祝う社内イベント「Hermosa’s Day」の様子。女性社員一人ひとりにプレゼントが贈られ、温かい雰囲気に包まれました。",content:["🌸 Hermosa’s Day - 幸せのソースコードが輝く日 🌸","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/827/content_4.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/832/content_9.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/834/content_11.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/828/content_6.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/848/content_25.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/846/content_23.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/849/content_26.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/845/content_22.png]","React Plusの10月20日(ベトナム女性の日)は、花やプレゼント、音楽、そして笑顔に溢れ、社内を明るく照らす「Hermosa(スペイン語で美しい女性)」たちへの感謝に満ちた素晴らしい一日として締めくくられました。","この日は特別なプログラムが用意され、女性社員一人ひとりに心のこもった贈り物とともに、温かい祝福の言葉が届けられました。","React Plusの美しい女性たちが、これからも常に自信と喜びに満ち、「幸せのコード」を書き続けていくことを願っています!"]},{id:201,title:"テスターが知っておくべき 7 つの完璧なツールのリスト",date:"2025å¹´10月10日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/201/%E1%BA%A2NH_B%C3%8CA__WEB__27_.png",excerpt:"あなたはテスターですが、バグを見つけるたびに、干し草の山から針を見つけたような気分になりますか?バグを迅速に、簡潔に、正確に捕捉するには、時間を節約し、パフォーマンスを向上させる優れた「武器」が必要です。この記事では、すべてのテストが優れたバグキャッチとなり、開発者がそれらを尊重できるようにするために、テスターが知っておくべき 7 つの完璧なツールを「見ていきます」。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"あなたはテスターですが、バグを見つけるたびに、干し草の山から針を見つけたような気分になりますか?バグを迅速に、簡潔に、正確に捕捉するには、時間を節約し、パフォーマンスを向上させる優れた「武器」が必要です。この記事では、すべてのテストが優れたバグキャッチとなり、開発者がそれらを尊重できるようにするために、テスターが知っておくべき 7 つの完璧なツールを「見ていきます」。",content:["1. Postman","Postman は、テスターが HTTP リクエスト (GET、POST、PUT、DELETE) を送信し、レスポンスを確認し、自動テストを作成するのに役立つ強力な API テスト ツールです。 Postman を使用すると、テスターは Fiverr (求人検索) や E ラーニング (コース リストの取得) などのプロジェクトのバックエンド ロジックを簡単にテストできます。","アドバンテージ:","- 使いやすさ: フレンドリーなインターフェイス。数回クリックするだけで API リクエストを送信できます。たとえば、Jira でステータス コード 200 の API ログインを確認できます。","- 自動化サポート: Fiverr に間違ったデータを入力したときの 400 エラーのチェックなど、API を自動的にテストするテスト スクリプトを作成します。","- CI/CD 統合: Newman と組ã
9451¿åˆã‚ã›ã¦ã€GitHub Actions パイプラインで自動テストを実行し、E ラーニング プロジェクトをデプロイする際の時間を節約します。","2. Selenium","Selenium は、Chrome や Firefox などのブラウザでのインターフェイス (UI) テストの自動化を可能にする、主要な自動テスト ツールです。 Selenium を使用して、Airbnb での予約フローを確認したり、オンライン シネマにログインしたりできます。","アドバンテージ:","- 柔軟な多言語: Python、Java、C# をサポートし、テスターがテスト スクリプトを簡単に作成できるようにします。たとえば、オンライン シネマの座席を選択するフローを自動化します。","- 複数のブラウザのサポート: Chrome、Firefox、Safari でインターフェイスをテストし、Airbnb などのアプリがスムーズに動作することを確認します。","- 強力な統合: TestNG または Jenkins と組み合わせて、並列テストを実行し、CI/CD パイプラインで自動化します (例: E ラーニングでの登録フローのテスト)。","3. Cypress","Cypress は自動テストの「新星」であり、Jira (カンバン ボード) や E ラーニングでの ReactJS などの最新の Web インターフェイスのテストに特化しています (ビデオ講義を参照)。デバッグが簡単で学習も早い Cypress は、新しいテスターに​​とって「真の愛」です。","アドバンテージ:","- 非常に簡単なデバッグ: Jira Kanban ボードでのタスクのドラッグ アンド ドロップのエラーなどのエラーをすぐに「キャッチ」するためのスナップショットとビデオを提供します。","- 動的 Web 管理に特化: E ラーニングでのコース検索フローの確認など、ReactJS アプリケーションに最適です。","- CI/CD を「すぐに再生」: GitHub Actions に接続すると、コードをコミットするたびにタスク管理インターフェイスが自動的にチェックされ、非常に便利です。","4. JIRA","JIRA は、テスターがエラーを報告し、タスクを管理し、スクラム/アジャイル スタイルでチームで作業するのを支援する「強力なアシスタント」です。 Online Cinema でインターフェイス エラーを報告しますか、それとも Jira でテスト タスクを管理しますか?ジラ「仲良くしてね!」","アドバンテージ:","- 効果的なエラーレポート: エラーの説明を説明します。 E ラーニングのエラー メッセージのような写真や再現手順は、開発者にすぐに修正するよう「うなずく」ことを明らかにします。","- 「クールな」スクラム/アジャイル: カンバン ボード、スプリントを管理し、プロのように Fiverr でテストの進行状況を追跡するのに役立ちます。","- 一流の統合: TestRail、Confluence、Jenkins と組み合わせて、テスターがエラーを管理し、Airbnb でスムーズにテストできるようにします。","5. TestRail","TestRail は、テスターが詳細なテスト ケース (説明、手順、期待される結果) を作成し、それらをテスト スイートに編成し、テスト実行を実行するのに役立つツールです。たとえば、間違った電子メールを入力したときのエラー メッセージをチェックする、アカウント登録フローのテスト ケースを作成します。 TestRail は、支払いフローにおけるテスト ケースの成功率などの結果を報告する合否グラフも作成します。 JIRA と統合すると、テスト ケースをバグに関連付けてシームレスに管理できます。","アドバンテージ:","- テスト ケースをきちんと配置する: テスト ステップを結合します。間違いを見逃すことを恐れずに、明らかに。","- 美しいレãƒ
9451ãƒ¼ãƒˆ: 合否グラフは、チーム全体にテスト結果を示すのに役立ちます。","- JIRA 接続は非常に便利です。テスト ケースをバグとリンクし、エラー管理は遊ぶのと同じくらい簡単です。","6. JMeter","JMeter は、Web サイトと API の速度と負荷容量を測定するパフォーマンス テストの「神」です。 1,000 人が「着陸」したときに検索 API または Web サイトをテストしたいですか? JMeter がすべてを処理します。このオープンソース ツールは、テスト計画、スレッド グループ、サンプラーを作成して、応答時間とスループットを測定するのに役立ちます。たとえば、JMeter を使用して 500 人の同時ユーザーで検索 API をテストし、応答時間が 2 秒を超えているかどうかを検出します。","アドバンテージ:","- 標準速度テスト: API または Web サイトの低速領域を迅速に検出します。","- 無料ですが優れています: HTTP、HTTPS をサポートしており、お金をかけずにパフォーマンスをテストできます。","- 一流の接続性: Grafana と Jenkins をペアリングして結果を確認し、自動テストを実行します。","7. BrowserStack","BrowserStack は、数千のブラウザとデバイス (Chrome、Safari、iPhone、Android) でテストできるツールです。実際のデバイスを購入せずに iPhone またはタブレットで Web インターフェイスをテストしたい場合は、BrowserStack で問題なく処理できます。","アドバンテージ:","- すべてのデバイスでテスト可能: 実際のデバイスを購入せずに、iPhone と Android でインターフェイスをテストできます。","- 非常に便利な自動化: Selenium と Cypress を組み合わせて、複数のデバイスのインターフェイスを同時にテストします。","- エラーを簡単に見つける: スクリーンショットとビデオは、タブレットのボタンの位置がずれているなどのエラーを迅速に検出するのに役立ちます。","コレクションソース"]},{id:187,title:"Gemini CLI – AI を端末に直接統合する、プログラマー向けのスマートなコマンド ライン",date:"2025å¹´10月7日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/187/%E1%BA%A2NH_B%C3%8CA__WEB__14_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/187/gemini-screenshot.png",excerpt:"Gemini CLI は、Google の Gemini Pro 2.5 AI を統合したコマンド ライン ツールで、プログラマーが作業環境を離れずにターミナル内でコードの作成、エラーの修正、テストの作成、コミットの要約を行うのに役立ちます。 Gemini CLI はインストールが簡単で、複数のプログラミング言語をサポートし、既存のツールと互換性があるため、高いパフォーマンスと最新のエクスペリエンスを提供します。拡張性があり、無料で使用できるため、これはすべての開発者にとって優れたアシスタントです。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"Gemini CLI は、Google の Gemini Pro 2.5 AI を統合したコマンド ライン ツールで、プログラマーが作業環境を離れずにターミナル内でコードの作成、エラーの修正、テストの作成、コミットの要約を行うのに役立ちます。 Gemini CLI はインストールが簡単で、複数のプログラミング言語をサポートし、既存のツールと互換性があるため、高いパフォーマンスと最新のエクスペリエンスを提供します。拡張性があり、無料で使用できるため、これはすべての開発者にとって優れたアシスタントです。",content:["[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/781/content_514410271_122112129626922146_5964125522377641096_n.jpg]","従来のコマンド ライン ツールとは異なり、Google の Gemini CLI は、Gemini Pro 2.5 AI モデルをターミナルに直接統合できる機能のおかげで傑出しており、開発者に最新のスマートで時間を節約できるプログラミング エクスペリエンスを提供します。","Gemini CLI を使用すると、コードの生成、バグの修正、テストの作成、リポジトリ内の変更の要約、さらには PDF ファイルからの新しいアプリケーションの作成を、すべてわずか数個のコマンドで行うことができます。ブラウザーや IDE タブに切り替える必要はなく、最適なパフォーマンスでターミナルで直接作業できます。","インストールは簡単かつ迅速です","- npx @google/gemini-cli","または、グローバルにイãƒ
9451³ã‚¹ãƒˆãƒ¼ãƒ«ã—ます。","- npm install -g @google/gemini-cli","次に、次のコマンドを実行するだけです。","- ジェミニ","Google アカウントでサインインすれば準備完了です。","いくつかの使用例","- Goで回文文字列をチェックする関数を書く","- 昨日の Git のコミットの概要","- 教育における AI トレンドに関するレポートを作成する","- 説明またはブループリントから React コードを生成する","Gemini CLI を試す理由","- 端末を離れることなく強力な AI を使用できます","- ドキュメントの読み取り、デバッグ、またはドキュメントの作成にかかる時間を節約します","- 多くの人気のあるプログラミング言語をサポート: Python、JavaScript、Go、C++、Rust","- 無料のオープンソース (Apache 2.0 ライセンス)、リクエスト数は 60/分に制限されています","優れた統合機能","Gemini CLI は、Google 検索への接続、AI 画像とビデオの作成、チャットボットの構築をサポートしており、MCP オープン プロトコルと互換性があるため、既存の開発システムへの統合やビジネス ニーズに応じた機能の拡張が可能です。","つまり、Gemini CLI は見逃せないツールです。コマンド ラインで AI と直接対話できる機能により、ワークフローを大幅にスピードアップし、製品の品質を向上させ、貴重な時間を節約できます。","出典: C++ チーム"]},{id:200,title:"伊藤忠商事の皆様が来社 - 戦略的パートナーシップの深化に向けて",date:"2025å¹´10月2日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/200/formex_Welcome_Board_ITOCHU__1_.png",excerpt:"日本を代表する総合商社である伊藤忠商事の皆様がReact Plus本社を訪問されました。相互理解を深め、今後の戦略的パートナーシップに向けた新たな扉を開く有意義な意見交換が行われました。🤝",gradient:"from-blue-200 via-cyan-200 to-teal-200",summary:"伊藤忠商事代表団のオフィス訪問レポート。React Plusの技術力と開発体制を紹介し、今後のパートナーシップの可能性について協議しました。",content:["🤝 React Plus & ITOCHU - 関係を強化し、新たな戦略的パートナーシップの機会を開拓","9月24日、React Plusは、日本の大手総合商社であり多岐にわたる産業分野でグローバルに事業を展開するITOCHU Corporation(伊藤忠商事)の皆様を本社オフィスにお迎えする名誉に浴しました。","訪問中、経営陣は当社のビジョン、中核となる技術力、および国内外のパートナー向けに提供しているソリューションについて紹介しました。伊藤忠商事の代表団からは、React Plusの技術チームの専門性と質の高さについて高く評価していただきました。","この重要な出会いは、両社の相互理解を深めるだけでなく、今後の長期的な強固な協力関係を築くための第一歩となります。"]},{id:199,title:"React Plus、2025年度の定期健康診断を実施",date:"2025å¹´9月23日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/199/%E1%BA%A2NH_B%C3%8CA__WEB__25_.png",excerpt:"全社員の健康をサポートするため、React Plusは2025年度の定期健康診断を実施しました。社員の健康こそが企業の最大の財産です。🏥",gradient:"from-green-200 via-emerald-200 to-teal-200",summary:"社員の健康促進と福利厚生の一環として実施した年次健康診断の報告。",content:["🏥 React Plus、2025年度の定期健康診断を実施","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/806/content_2.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/807/content_3.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/808/content_4.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/817/content_13.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/819/content_15.png]","2025å¹´9月20日、React Plusは本社オフィスにて、全社員を対象とした2025年度の定期健康診断を実施しました。","皆様の積極的な参加と協力により、健康診断は迅速かつ効率的に、スムーズに進行しました。定期的な健康チェックは、潜在的な健康リスクを早期に発見・予防するだけでなく、社員一人ひとりが自らの健康状態を正しく把握する絶好の機会となります。","React Plusは常に、社員の心身の健康こそが持続的な発展の鍵であると考え、今後も充実した福利厚生を提供していきます。"]},{id:198,title:"「Free Code Day」開催 - プログラミングの枠を超えたクリエイティビティ",date:"2025å¹´9月15日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/198/%E1%BA%A2NH_B%C3%8CA__WEB__24_.png",excerpt:"プログラミングの枠を超えたクリエイティビティを発揮!「国際プログラマーデー2025」を記念して、社内イベント「Free Code Day」を開催しました。💻",gradient:"from-purple-200 via-fuchsia-200 to-pink-200",summary:"「国際プログラマーデー」を祝うユニークな社内イベント「Free Code Day」。プログラマーたちがコード作成以外の創造性を発揮しました。",content:["💻 コードがなくてもカッコいい!- Free Code Dayでプログラミングの知性が輝く","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/789/content_1.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/788/content_2.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/801/content_15.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/795/content_7.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/794/content_8.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/796/content_9.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/792/content_5.png]","「国際プログラマーデー」は、テクノロジーの世界を創り出すコードを称える日であり、同時にITプロフェッショナルが一時キーボードから離れ、自分たちならではの「遊び」を楽しむ時間でもあります。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/798/content_12.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/790/content_3.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/797/content_10.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/799/content_11.png]","今年のイベント「Free Code Day」では、論理的思考と創造力を問う様々なチームビルディングゲームやチャレンジが行われました。プログラマーたちは、コードブロックだけでなく、パズルや戦略ゲームにおいてもその卓越した問題解決能力を存分に発揮しました。","私たちはこれからも、創造的で楽しい職場環境を提供し続けます!"]},{id:197,title:"2025å¹´ 国際プログラマーデーを祝して",date:"2025å¹´9月13日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/197/%E1%BA%A2NH_B%C3%8CA__WEB__24_.png",excerpt:"1年の第256日目、それはプログラマーにとって特別な意味を持つ日です。React Plusは、全ての開発者たちへ「国際プログラマーデー(9月13日)」の祝福を送ります。🎉",gradient:"from-cyan-200 via-blue-200 to-indigo-200",summary:"9月13日の「国際プログラマーデー」を祝し、IT業界に貢献するプログラマーたちへ敬意と感謝のメッセージ。",content:["🎉 2025å¹´ 国際プログラマーデー(9月13日)をお祝い申し上げます","「国際プログラマーデー」は毎年、1年の第256日目(平年は9月13日、閏年は9月12日)に祝われます。多くの人にとって256は単なる数字でã
9451™ãŒã€ãƒ—ログラマーにとっては特別な数字です。これは8ビット(1バイト)が表現できる最大値だからです。","システムやアプリケーションの裏側で、論理と創造性を武器に世界を変え続ける技術者の皆様へ。React Plusは、皆様の途切れることのない情熱とインスピレーション、そして日々の素晴らしいコードの記述を心から応援しています!"]},{id:170,title:"DeepSeek が訪問者数で ChatGPT を上回ったことが話題を呼んだ",date:"2025å¹´9月4日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/170/%E1%BA%A2NH_B%C3%8CA__WEB__47_.png",excerpt:"中国の DeepSeek AI が市場シェアで世界第 3 位に浮上するにつれ、ChatGPT の王座は脅かされています。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"中国の DeepSeek AI が市場シェアで世界第 3 位に浮上するにつれ、ChatGPT の王座は脅かされています。",content:["GizChina によると、揺るぎないように見えるChatGPTの優位性は、予期せぬ強力な課題に直面しているという。中国発の新興企業 DeepSeek は、2025 å¹´ 2 月に月間 Web サイト訪問数で「巨大な」OpenAI を正式に上回り、テクノロジー業界に波紋を巻き起こしたばかりです。この目覚ましい成果により、DeepSeek は世界の AI (人工知能) ツール ランキングで 3 位になっただけでなく、競争がますます激化していることを示しています。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/749/image.png]","DeepSeek は 2 月の訪問数で ChatGPT を上回りました","写真:ロイター","DeepSeek は ChatGPT を見事に上回りました","AI 分析プラットフォーム aitools.xyz によると、DeepSeek は 2025 å¹´ 2 月に 5 億 2,500 万の訪問を記録し、ChatGPT の 5 億をわずかに上回りました。この目覚ましい躍進は、DeepSeek の「電光石火」の開発スピードの証です。中国の AI プラットフォームは、その優れた機能とパフォーマンスのおかげで注目を集めただけでなく、継続的に記録を打ち立ててきました。","2025 å¹´ 1 月末、DeepSeek アプリは中国と米国の App Store で最もダウンロードされた無料アプリとなり、特に米国のチャートで ChatGPT を上回りました。","QuestMobile のデータによると、DeepSeek は 1 月 28 日にデイリー アクティブ ユーザー数で ChatGPT を上回り、わずか数日後 (2 月 1 日) には 3,000 万ユーザーに達し、テクノロジー史上でこのマイルストーンに到達した最速のアプリケーションとなったことが示されています。","ChatGPT のアクセス市場シェア 43.16% にはまだかなり遠いものの、世界市場シェアの 6.58% という DeepSeek の急速な支配 (Canva の 8.27% に次ぐ第 3 位) は、その好結果を示しています。ユーザーがますますオープンになり、OpenAI のエコシステムを超えた代替 AI ソリューションを積極的に探していることは明らかです。","DeepSeek の台頭は、AI の活躍の場が急速に変化していることを裏付けています。 DeepSeek がこの並外れた成長の勢いを維持し、ChatGPT の価値ある長期的な競争相手になることができるかどうかはまだわかりません。","しかし、この最初の勝利は世界的な AI 競争を加熱させるのに十分であり、最終的な勝者はイノベーションとユーザーの信頼によって決まります。新しいプラットフォームが OpenAI のような大手企業と公平に競争できるという事実は、より多様で活気のある AI の未来を約束します。"]},{id:196,title:"ベトナム独立80周年、国慶節をお祝い申し上げます",date:"2025å¹´9月2日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/196/%E1%BA%A2NH_B%C3%8CA__WEB__23_.png",excerpt:"9月2日、ベトナム社会主義共和国の独立80周年、国慶節を迎えました。React Plusは、国の誇りに満ちたこの特別な日を皆様と共にお祝いいたします。🇻🇳",gradient:"from-red-200 via-rose-200 to-red-200",summary:"ベトナム国慶節80周年を記念する祝辞およびお知らせ。",content:["🇻🇳 ベトナム独立80周年、国慶節をお祝い申し上げます","80年前の今日、歴史あるバーディン広場にて、ホー・チ・ミン主席が厳粛に独立宣言を読み上げ、ベトナム民主共和国(現在のベトナム社会主義共和国)が誕生しました。その神聖な瞬間から、ベトナムは独立と自由の新時代へと足を踏み出しました。","建国ã
9451‹ã‚‰80年、平和と自由の価値に感謝しつつ、React Plusは社員、パートナー、お客様に最高レベルの貢献を約束します。皆様、素晴らしい国慶節の休日をお過ごしください!"]},{id:195,title:"プロジェクト管理におけるスクラム",date:"2025å¹´8月29日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/195/%E1%BA%A2NH_B%C3%8CA__WEB__22_.png",excerpt:"スクラムは、継続的に価値を生み出し、製品を改善するために短いスプリント (2 ~ 4 週間) で動作するアジャイル フレームワークです。スクラムはコマンドコントロールモデルに基づいていないため、自律性、透明性、検査と適応を促進し、集中、勇気、コミットメント、オープンさ、敬意という 5 つの核となる価値観を遵守します。 r&oチルダ付き(PO、スクラム マスター、開発チーム) およびプロダクト バックログ、スプリント目標、インクリメントなどの成果物システムを使用すると、スクラムはチームの開発のスピードアップ、リスクの軽減、品質の向上に役立ちます。これは、柔軟で変化に迅速に適応する必要がある IT プロジェクトや分野にとって理想的な選択肢です。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"スクラムは、継続的に価値を生み出し、製品を改善するために短いスプリント (2 ~ 4 週間) で動作するアジャイル フレームワークです。スクラムはコマンドコントロールモデルに基づいていないため、自律性、透明性、検査と適応を促進し、集中、勇気、コミットメント、オープンさ、敬意という 5 つの核となる価値観を遵守します。 r&oチルダ付き(PO、スクラム マスター、開発チーム) およびプロダクト バックログ、スプリント目標、インクリメントなどの成果物システムを使用すると、スクラムはチームの開発のスピードアップ、リスクの軽減、品質の向上に役立ちます。これは、柔軟で変化に迅速に適応する必要がある IT プロジェクトや分野にとって理想的な選択肢です。",content:["スクラムは、アジャイル手法に属する作業組織フレームワーク (フレームワーク) であり、短期間の反復 (スプリント) で動作して継続的に価値を創造し、製品を改善します。各スプリントは 2 ~ 4 週間続き、チームが柔軟に開発し、変化に迅速に適応できるようにします。","スクラムはコマンドコントロール管理モデルに従って動作しませんが、チーム内の自律性とコラボレーションを促進します。 「スクラム」という名前は、チーム全体が緊密に連携してボールを前に進めるラグビーからインスピレーションを得たもので、スクラム開発チームが製品の目標に向かって一緒に進むのと似ています。","スクラムとアジャイルの違いは何ですか?","スクラムは、アジャイルの価値と原則を実装するための具体的な方法です。アジャイルは経営哲学であり、スクラムは具体的な実践フレームワークです。すべてのアジャイルがスクラムであるわけではありませんが、スクラムはアジャイルに準拠しています。","スクラムはどのようなプロジェクトに適していますか?","スクラムはもともとソフトウェア開発のために設計されましたが、現在ではマーケティング、製品研究、教育、コンテンツ作成などの柔軟性の高いプロジェクトにその適用を拡大しています...特にまだ開発されていないプロジェクトで効果的です。出力要件を明確にしますが、実際のフィードバックに継続的に適応する必要があります。","1. スクラムの 3 本柱","- 透明性: すべてのプロセス、タスク、目標は透明でなければなりません。メンバー全員に明らかです。","- 検査: 進捗状況と品質を継続的にチェックし、逸脱を早期に検出します。","- 適応: 目標が確実に維持されるように、矛盾が検出された場合はすぐに調整します。","2. スクラムの 5 つの核となる価値観","- 焦点: スプリントの目標を優先し、作業の分割を避けます。","- 勇気: 大胆に実験し、変化ã
9451•せ、課題に立ち向かう。","- コミットメント: 共通の目標に対する個人および集団のコミットメント。","- オープン性: 進捗状況、問題、フィードバックに関する透明性。","- 尊重:各メンバーの貢献と能力を尊重します。","4. スクラムチームの役割","- プロダクトオーナー (PO): 製品バックログを管理し、製品価値を最適化します。","- スクラム マスター: スクラム プロセスを保護し、障害を取り除き、チームを指導します。","- 開発チーム: スプリント中の作業の実行を担当する部門横断的なグループ。","5. スクラムの成果物 (成果物)","- 製品の目標: 製品が目指す長期的な目標。","- 製品バックログ: 開発が必要な機能、ニーズ、項目の優先順位付きリスト。","- スプリント目標: 各スプリントの具体的な目標。チームの集中力を確保します。","- スプリント バックログ: スプリントおよび実装計画用に選択されたプロダクト バックログ項目のセット。","- インクリメント: 各スプリントの後に作成される使用可能な価値の部分。","- 完了の定義 (DoD): 項目を評価する基準は完了です。","- バーンダウン チャート: 時間の経過に伴う残りのワークロードを示すチャート。進捗状況を追跡するために使用されます。","5. 結論: 情報技術プロジェクトにおけるスクラム","スクラムは、迅速な対応、柔軟性、高度な変更が必要な IT プロジェクトに最適です。短期間の繰り返しのおかげで、r&otildeは、スクラムは、明確さ、透明性のあるプロセス、継続的改善の精神により、ソフトウェア開発チームの速度向上、リスクの軽減、製品品質の向上に役立ちます。","スクラムを正しく導入すると、作業パフォーマンスが向上するだけでなく、チームワーク、結束力、イニシアチブも促進されます。これは、現代のテクノロジー プロジェクトの持続可能な成功の重要な要素です。"]},{id:194,title:"アジャイル環境でのタスク管理 - 柔軟に働き、効果的に制御",date:"2025å¹´8月22日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/194/%E1%BA%A2NH_B%C3%8CA__WEB__21_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/194/scrum_sprint-1.jpg",excerpt:`アジャイルは単なるソフトウェア開発プロセスではなく、考え方でもあります。その考え方では、タスク管理は進捗状況を追跡するだけでなく、透明性を高め、調整を促進し、チーム内の各個人のイニシアチブを促進することも目的としています。 
9452
9453では、アジャイル環境でタスクを効果的に管理するにはどうすればよいでしょうか?この記事で詳しく見ていきましょう!`,gradient:"from-blue-200 via-purple-200 to-pink-200",summary:`アジャイルは単なるソフトウェア開発プロセスではなく、考え方でもあります。その考え方では、タスク管理は進捗状況を追跡するだけでなく、透明性を高め、調整を促進し、チーム内の各個人のイニシアチブを促進することも目的としています。 
9454
9455では、アジャイル環境でタスクを効果的に管理するにはどうすればよいでしょうか?この記事で詳しく見ていきましょう!`,content:["アジャイルとタスク – 単に小さな部分に分割して終わりではありません","アジャイル環境では、作業は「ユーザーストーリー」に分割され、さらにタスクに分割されます。ただし、タスクは単なる小さなものではなく、スプリントで完了できる具体的で測定可能なアクションです。","アジャイルで優れたタスクを実行するには、次のものが必要です。","- ロチルダ出力について明確にする","- 1~2日で完了可能","- 個人またはプログラマーのペアに割り当て可能","- スプリントの目標に合わせる","1. バックログから開始 – タスクが「ç”
9455Ÿã¾ã‚Œã‚‹ã€å ´æ‰€","製品バックログ","製品のすべての要件、機能、改善点を収集します。","プロダクトオーナー (PO) によって管理され、継続的に更新および改良されます。","スプリントバックログ","スプリント中に実行するために製品バックログから選択されたユーザー ストーリーのリストです。","スプリント計画セッション中に、チームが協力してユーザー ストーリーを特定のタスクに分割します。","ヒント","タスクはアクション + 目標の形式で記述する必要があります。","例: 「ユーザー登録 API を作成する」、「validateForm 関数の単体テストを作成する」","2. 優先順位を付けて見積もる - 適切なところを見てください。仕事の負担","アジャイルでは、時間と能力は常に有限です。したがって、優先順位付けと見積もりは 2 つの重要なスキルです。","タスクに優先順位を付ける:","- ユーザーにもたらされる価値とタスク間の依存関係のレベルに基づいて優先順位を付けます。","- 分類には MoSCoW (Must、Should、Could、Won't) モデルまたはアイゼンハワー マトリックスを使用します。","タスクの見積もり:","- ストーリー ポイント、T シャツのサイズ (S、M、L、XL)、または理想的な時間テクニックを使用します。","- 複雑さ、リスク、完了までに必要な時間に基づきます。","ヒント:","- チーム内で合意に達するために、ポーカーや見積もりの​​ワークショップを計画する練習をします。","- あまり分ごとに進めないようにして、相対的な推定に重点を置きます。","3. スプリントに従って作業を整理します - ペースを保ち、コントロールを失わないようにします","スプリント計画","- ユーザー ストーリーを選択し、それをタスクに分割することでスプリントを開始します。","- 各タスクには担当者が必要です。","デイリースタンドアップ","- タスクの進捗状況、問題、その日の計画を更新します。","- 「報告」のためではなく、メンバー間の連携を最適化するためです。","スプリントレビューと振り返り","- スプリント レビュー: 作業結果を評価します (どのタスクが完了しましたか?どのタスクが未完了ですか?その理由は?)。","- 振り返り: 失敗から学び、作業プロセスを改善します。","ヒント:","- 誤解を避けるために、タスクを完了の定義 (DoD) に添付します。タスクは、品質条件を満たした場合にのみ「完了」します。","- Trello、Jira、ClickUp... は、各スプリント中のタスクのステータスを視覚化するのに役立つツールです。","4. 進捗状況を透明にする - チームがお互いを「読み合う」のに役立ちます","- 効果的なタスク管理とは、「忘れ物を減らす」だけでなく、次のことも意味します。","- チーム全体が誰が何をしているのかを把握できるようにする","- どのタスクが滞っているかブロックされているかを特定する","- スプリントを通じてチームの速度を追跡する","ヒント:","- カンバンボードを使用する (To Do – 進行中 – レビュー – 完了)","- WIP (進行中の作業制限) を設定して、同時に多くのタスクを引き受けないようにする","5.「ぶら下がっている」「行き詰まっている」「難しい」タスクの処理","すべてのタスクが「順風満帆」というわけではありません。注意すべきいくつかのケース:","- 情報が不足しているためタスクが停止しました &rarr;マーク・ロティルダ「ブロックされている」場合は、すぐにサポートまたは注文書に電話してください。","- タスクが大きすぎるか、曖昧です &rar;小さな部分に分割し、r&otildeを作ります。リクエストし、チームでレビューします。","- 多くの人が関与するタスク &rar;サブタスクに分割します。主な責任者を明確にする。","ヒント:","タスクを「進行中」状態で長時間放置しないでください。2 日以上経過している場合は、積極的に確認する必要があります。","結論: タスクは単なる仕事ではなく、チーム全体の鼓動です","アジャイルでは、タスクは独立して存在しません。各タスクはプロジェクトの「ハートビート」の小さな拍子です。効果的なタスク管理は、個人のスキル、適切なツール、柔軟なチーム文化の組み合わせによって決まります。","各タスクを r&otilde と書くと、明確さ、合理的な見積もり、適切な人材の割り当て、綿密なフォローがあれば、チームはもはや「プロジェクトの真っ只中を泳いでいる」とは感じなくなり、製品の進捗と品質を真にç®
9455¡ç†ã§ãã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚"]},{id:193,title:"見積作業 - DEV と PM の「戦い」",date:"2025å¹´8月14日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/193/%E1%BA%A2NH_B%C3%8CA__WEB__20_.png",excerpt:"見積もりは、不確実性と絶え間ない変化のため、IT プロジェクト管理において重要ではありますが、困難な部分です。精度を高めるには、見積りに時間をかけて、タスクを小さな部分に分割し、評価のレベルを分類するなどのプロセスを適用する必要があります。明確にし、より多くの情報が利用可能になったときに再見積もりします。同時に、実装者が小さなタスクや予期せぬリスクを考慮して直接見積もりを出せるように、性急な見積もりを避ける必要があります。標準プロセスは、エラーを減らし、プロジェクトをより適切に管理し、DEV と PM 間の協力効率を高めるのに役立ちます。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"見積もりは、不確実性と絶え間ない変化のため、IT プロジェクト管理において重要ではありますが、困難な部分です。精度を高めるには、見積りに時間をかけて、タスクを小さな部分に分割し、評価のレベルを分類するなどのプロセスを適用する必要があります。明確にし、より多くの情報が利用可能になったときに再見積もりします。同時に、実装者が小さなタスクや予期せぬリスクを考慮して直接見積もりを出せるように、性急な見積もりを避ける必要があります。標準プロセスは、エラーを減らし、プロジェクトをより適切に管理し、DEV と PM 間の協力効率を高めるのに役立ちます。",content:["ワークロードの見積もり (見積もり) は、開発者とプロジェクト マネージャーの間で常に議論の的となるトピックです。これはプロジェクト管理の重要な部分ですが、同時に最も簡単なステップの 1 つです...","推定 – 未来を予測する試み?","議論の余地のない事実: 正確な推定は非常に困難です。なぜなら:","- 見積もりが必要なタスクのほとんどは、これまでに実行されたことのない新しいタスクです。","- 入力情報は不完全であることが多く、多くの要素が正確ではありません。クリア。","- 実装中に要件が変更される場合があります。","- これは暗闇の中でダーツを投げるようなもので、ターゲットに当たる確率は非常に低いです。","「X 機能を完了するのにかかる時間を見積もった後、その時間を 3 倍にしてください。」","楽しいことですが、上記の発言は業界の人々に共通する苦しみを部分的に反映しています。","見積もりには近道はありません","何度も締め切りに間に合わなかった私は、良い見積もりはヒントからではなく、綿密なプロセスから生まれることに気づきました。クリア。以下は、推定の精度を向上させるために私が適用する 4 つのステップです。","ステップ 1. 見積もりに時間を割り当てる","正確なチームの見積もりが必要な場合は、次のことから始めないでください。","「これらのタスクを X 日までに完了する必要があります。」","締め切りに直面すると、開発者は現実的な評価を下す代わりに、「どうすれば上司を喜ばせることができるかを考える」傾向があります。","👉 チーム全体で時間をかけて調査、議論し、リスクを特定します。見積もりは期限を決定する前に行うべきであり、その逆ではありません。","ステップ 2. 作業を小さな部分に分割する","具体的に何をするのかが分からなければ、いつそれが完了するのかも分かりません。大きなタスクを小さなタスクに分割します。完了するまでに約 8 ~ 10 時間かかるタスクが理想的です。","分解すると次のような効果があります。","- 業務内容を可視化しやすい。","- 潜在的な問題を特定します。","- 推定は、全体を推測するよりも部分的に行う方が正確です。","「具体的に何をするのかが分からなければ、いつそれが完了するのかも分かりません。」","— スタック オーバーフロー CEO、ジョエル スポルスキー","ステップ 3. r&otilde に従ってタスクを分類します。クリア","タスクを細分化した後、分類してみましょう。","- 既知のタスク: r&otilde;入力、出力、およびその方法 &rarr;正確な見積もり。","- 部分的に既知のタスク: 部分的に既知 &rarr;もっと学ぶ必要があります。","- 不明なタスク: r&otilde; ではありませんアプローチ&rarr;見積もる前に研究開発が必要です。","👉 目標は、できるだけ多くのタスクを既知のグループに移動することでã
9455™ã€‚","ステップ4. 再見積もり","より具体的な情報が得られたら、もう一度すべてを見積もります。","これは次の点に役立ちます。","- 推定時間を現実に近づけて更新します。","- 前のステップでは見つからなかったリスクを検出します。","- 複雑な特徴を切り取るか調整するかを決定します。","「不確実性の円錐」を参照すると、開発段階に近づくほど不確実性のレベルが低くなり、見積もりがより正確になることがわかります。","お見積り時の注意点","1.「のみ」という単語を含む文章に注意してください","- 「ほんの小さな仕事です」","- 「このバグの修正には 5 分しかかかりません。」","- 「このタスクは 15 分以内に完了するはずです」","実際、これらの「唯一のタスク」が最大の遅延を引き起こす原因となることがよくあります。急いで見積もりを出すのではなく、時間をかけて慎重に検討してください。","2. 誰が行うか - その人が推定する","タスクを直接実行する人は、複雑さについて最も現実的な見方をすることになります。他の人(上級者や PM など)からの見積もりを割り当てると、簡単に間違いが発生する可能性があります。","3.「奇妙な」タスクを無視しないでください","- バグをチェックする","- コードをレビューする","- アプリを構築する","- 展開する","- テストを書く","これらの小さなタスクが積み重なると、かなりの時間を費やす可能性があるため、全体の見積もりで見落とすべきではありません。","4. 予期せぬリスクを考慮する","次のような場合もあります。","- メンバーが予期せぬ休暇を取る","- 工具に欠陥がある","- バグは予期せず発生します","- 変化が必要","👉 過去の経験に基づいて、推定結果に適切なバッファを追加します。","結論する","正確な見積もりはほぼ不可能です。しかし、だからといって諦めるわけではありません。プロセスに従って見積もりを実践すると、エラーを最小限に抑えるだけでなく、次のような効果も得られます。","- プロジェクト管理を強化する","- チームの作業効率を向上させる","- DEV と PM の両方が同じ声で話せるようにする","現実的な見積もりが得られ、プロジェクトが常に予定通りに進み、顧客が常に満足してくれることを願っています。"]},{id:192,title:"IT ワーカーのための時間管理テクニック",date:"2025å¹´8月8日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/192/%E1%BA%A2NH_B%C3%8CA__WEB__19_.png",excerpt:"時間を効果的に管理するために、IT ワーカーは、ポモドーロ法、アイゼンハワー マトリックス、タイム ブロッキング法、パレートの法則などの多くのテクニックを適用できます。さらに、目標の定義、計画、仕事の優先順位付け、先延ばしの回避、サポートツールの活用も非常に重要です。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"時間を効果的に管理するために、IT ワーカーは、ポモドーロ法、アイゼンハワー マトリックス、タイム ブロッキング法、パレートの法則などの多くのテクニックを適用できます。さらに、目標の定義、計画、仕事の優先順位付け、先延ばしの回避、サポートツールの活用も非常に重要です。",content:["常に締め切りに追われ、バグは無断で発生し、会議は「キノコのように成長」する IT 業界では、時間管理スキルはもはや選択肢ではなく、生き残るための条件です。時間の管理方法を知ることは、仕事を効果的に管理するのに役立つだけでなく、生産性を向上させ、目まぐるしいプロジェクトの中で注意力を​​維持するための足掛かりにもなります。","この記事では、世界中の IT 担当者によって効果的に適用されている、人気のある直感的な時間管理テクニックをまとめています。","1. 時間管理の 4 つの黄金律","時間管理の研究を専門とする専門家のブラッド・イオン氏によると、ほとã
9455‚“どのテクニックは 4 つの基本原則を中心に展開されています。","- 時間を計画する: ルールを構築する明確で具体的な仕事のリスト。","- 時間を守る: 適切なタイミングで「ノー」と言う方法を知り、境界線を明確に設定します。","- 時間を最適化する: 重要なタスクに優先順位を付け、分散を避けます。","- r&otilde;を理解する時間: 作業プロセスを記録し、改善のために継続的に評価します。","2. アイゼンハワー マトリックス – 「緊急」が「重要」を上回らないようにする","「私には 2 種類の問題があります。緊急と重要です。緊急であることは重要ではありませんし、重要であることは決して緊急ではありません。」","– ドワイト・D・アイゼンハワー","その考えから、アイゼンハワー マトリックスが誕生し、研究を 4 つのグループに分けました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/782/image.png]","このマトリックスは、忙しい IT 環境で特に役立ち、「偽りの忙しさ」の罠を回避し、価値の創造に集中するのに役立ちます。","3. Mind Map – SÆ¡ đồ tư duy hóa công việc","マインド マップは、自分の考えや感情を確認するのに役立つ視覚的なツールです。大きな目標を具体的でわかりやすい手順に分割した作業構造。","実際の応用:","- 新しいテクノロジーを学ぶ計画を立てる","- 複雑なバックログを分析する","- 今後のスプリントに向けたソリューションのブレインストーミング","マインドマップは、思考を助けるだけではありません。作業を明確にするだけでなく、プロセスのボトルネックを特定するのにも役立ちます。","4. パレートの法則 (80/20) – やることを減らして、より効果的にする","パレートによれば:","- 20% の努力が 80% の結果を生み出す","- 残りの 20% の作業に 80% の労力がかかります","IT 担当者の場合は、次の方法でこの原則を適用できます。","- プロジェクトの「クリティカル パス」の処理を優先します。","- とりとめのないエラーではなく、影響の大きいエラーの修正に重点を置く","- 実行してください後で手間を省くために関係者にリクエストを行う","📌 注: パレートは、小さなことを無視することを奨励するものではありません。仕事がスムーズに進むよう柔軟に対応してください。","5. Getting Things Done (GTD) – 物事を頭から追い出す","GTD メソッドの著者である David Allen はかつてこう言いました。","「あなたの脳は考えるためのものであり、記憶するためのものではありません。」","GTD の 5 ステップのプロセス:","- すべてとアイデアを記録する","- Do r&otilde;: アクションはどこにあり、メモはどこにありますか","- リストとスケジュールに整理する","- 定期的に見直す","- 優先順位付けされた各タスクを実行する","👉 GTD は、「マルチタスク」を頻繁に行い、些細な思考回路を数多く持つプログラマーに特に適しています。","6. ポモドーロ – セッションでの集中作業","ポモドーロ メソッドでは、作業時間を 25 分間の集中セッションに分割し、5 分間の短い休憩を挟みます。 4 セッションごとに 15 ~ 30 分の休憩を取ります。","開発者とのアプリケーション:","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/784/image.png]","👉 ポモドーロは集中力の維持に役立ち、リモート作業や騒がしい環境での作業時に特に効果的です。","7. カンバン + タイムトラッキング – 時間の「透明性」","時間追跡をかんばんに統合すると、次のことが可能になります。","- 各タスクの時間を記録する","- 各ステージの実際の進行状況を確認する","- プロセス内のボトルネックを検出する","このモデルで答えられる質問は次のとおりです。","- タスクAにはどれくらい時間がかかりますか?","- どのタスクが頻繁にハングアップしますか?","- 誰が過負荷になっていますか?もっと仕事を得ることができますか?","🔧 推奨ツール: Jira、Trello + Clockify、Linear、ClickUp","結論する","時間は複製できない唯一の資源です。コードを作成している場合でも、プル リクエストをレビューしている場合でも、スプリントを計画している場合でも、時間を整理、分析、最適化する必要があるデータの流れと考えてください。","いくつかの適切なテクニックを自分で選択し、粘り強く適用し、現実に応じて改良してください。結局のところ、適切な時間管理はタスクを完了するのに役立つだけでなく、頭を鋭く保ち、仕事を持続可能にし、キャリアを繁栄させることができるからです。"]},{id:191,title:"Magentic UI – 新しい AI インターフェイスが Web プログラミングの世界を巻き起こしています",date:"2025å¹´7月28日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/191/%E1%BA%A2NH_B%C3%8CA__WEB__18_.png",excerpt:"Magentic UI は Microsoft の新しい AI インターフェイスであり、パフォーマンスを最適化し、遅延を削減し、ユーザー エクスペリエンスをパーソナライズする機能により、Web 開発者の間で注目を集めています。これは、操作の自動化、UI 応答の高速化、ネイãƒ
9455†ã‚£ãƒ– アプリケーションのようなスムーズなエクスペリエンスを提供するスマート プロトタイプです。 Magentic UI は、大規模プロジェクト、ローコード/ノーコードのトレンドに特に適しており、Flask、Django、Node.js などのプラットフォームに簡単に統合できます。これは UI フレームワークであるだけでなく、AI 時代の Web インタラクションにおける新しいステップでもあります。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"Magentic UI は Microsoft の新しい AI インターフェイスであり、パフォーマンスを最適化し、遅延を削減し、ユーザー エクスペリエンスをパーソナライズする機能により、Web 開発者の間で注目を集めています。これは、操作の自動化、UI 応答の高速化、ネイティブ アプリケーションのようなスムーズなエクスペリエンスを提供するスマート プロトタイプです。 Magentic UI は、大規模プロジェクト、ローコード/ノーコードのトレンドに特に適しており、Flask、Django、Node.js などのプラットフォームに簡単に統合できます。これは UI フレームワークであるだけでなく、AI 時代の Web インタラクションにおける新しいステップでもあります。",content:["こう思ったことはありませんか?","バックエンドが非常に優れているにもかかわらず、Web アプリケーションの動作が遅いのはなぜですか?","それは本当です。今日は、この問題の解決に役立つ Microsoft の新しい秘密、Magentic UI を共有します。","AI の力を利用して Web インターフェースの構築方法を再定義するプロトタイプ - より使いやすく、より速く、よりスマートに!","Magentic UIとは何ですか?","これは Microsoft の新しい Web エージェントで、インテリジェントなユーザー向けインターフェイスとして導入され、AI の力によってタスク、応答、対話がスムーズに処理されます。","なぜ注目に値するのでしょうか?","Magentic UI について初めて知ったとき、次のことに本当に驚きました。","- UIの応答速度が向上しました。明らか","- ネイティブアプリのようなスムーズなユーザーエクスペリエンス","- 繰り返される操作は自動化または AI によってインテリジェントに提案されます","大規模なプロジェクト、特に大量のデータと複雑な UI を扱うプロジェクトの場合、Magentic UI を統合することはエンジンをアップグレードするようなもので、すべてがより最適化され、よりスムーズになり、より美しくなります。","Magentic UI のハイライト","- パフォーマンスを最適化する","- AI を活用したインターフェイスにより、待ち時間が短縮され、クライアント側の処理が高速化されます。","- フレンドリーなインターフェース - 使いやすい","- 長い「ユーザーマニュアル」は必要ありません。新しいユーザーもすぐに理解できます。","人工知能がインタラクションをサポート","- アクションを自動的に提案し、コンテキストに応じてユーザーに応答し、エクスペリエンスをパーソナライズします。","- ローコード/ノーコードのトレンドと一致","- Magentic UI とローコード プラットフォームを組み合わせると、ビジネスにとって非常に強力になります。","Magic UI をプロジェクトに適用するための手順","次のことを試すことができます。","- AI の提案を統合したシンプルな UI プロトタイプを作成して、応答性をテストします。","- Magentic UI を Flask、Django、または Node.js アプリのクライアント側インタラクション レイヤーとして使用します。","- Magentic UI とシステムの内部チャットボットまたはアシスタントを組み合わせてみてください。","注: これはプロトタイプであるため、最初にデモ モジュールでテストし、後ã
9455§ã‚¹ã‚±ãƒ¼ãƒ«ã™ã‚‹ã“とができます。","結論する","Magentic UI は単なる UI フレームワークではなく、AI 時代における Web との対話方法です。","アプリケーションのパフォーマンスを向上させ、応答時間を短縮し、UX をカスタマイズしたい場合は、Magentic UI をお見逃しなく。","出典: 8 Sync Dev"]},{id:189,title:"PromptPerfect – AI プロンプト最適化アシスタントにより、より質の高い結果を生み出すことができます。",date:"2025å¹´7月23日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/189/%E1%BA%A2NH_B%C3%8CA__WEB__16_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/189/Propmt-perfect--scaled.jpg",excerpt:"PromptPerfect は、ChatGPT、DALL&middot;E、Claude などのツールを使用するときに、プロンプトを最適化してより高品質の結果を作成するのに役立つ AI アシスタントです。試行錯誤に時間を無駄にすることなく、ユーザーは元のプロンプトを入力して目標を選択するだけで、PromptPerfect が各 AI モデルに合わせてコンテンツを自動的に改善します。このツールは多言語、多目的に対応しており、コンテンツ制作者からプログラマーまであらゆる人の作業効率の向上に役立ちます。これは、AI の力をより効率的かつインテリジェントに活用するための理想的なソリューションです。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"PromptPerfect は、ChatGPT、DALL&middot;E、Claude などのツールを使用するときに、プロンプトを最適化してより高品質の結果を作成するのに役立つ AI アシスタントです。試行錯誤に時間を無駄にすることなく、ユーザーは元のプロンプトを入力して目標を選択するだけで、PromptPerfect が各 AI モデルに合わせてコンテンツを自動的に改善します。このツールは多言語、多目的に対応しており、コンテンツ制作者からプログラマーまであらゆる人の作業効率の向上に役立ちます。これは、AI の力をより効率的かつインテリジェントに活用するための理想的なソリューションです。",content:["ChatGPT、Claude、Gemini、DALL&middot;E などの AI ツールを使用するとき、誰もが 1 つのことに気づきます。それは、出力の良し悪しは主にプロンプ​​トに依存するということです。プロンプトを書くのは簡単そうに見えますが、かなりの時間がかかります。AI が意味を理解できるように各単語を調整しながら、何度も試行する必要があります。だからこそ、PromptPerfect が誕生しました。これは、プロンプトをより効果的、正確に、より創造的に作成できるようにする AI アシスタントです。","PromptPerfect は単なるキーワード提案ツールではありません。これは、言語から画像、対話から詳細なコンテンツの作成に至るまで、さまざまな AI モデルをサポートする包括的なプロンプト最適化プラットフォームです。","Bạn cần gì?","AI を使用していますが、次の理由で疲れを感じています。","- プロンプトを書き込みますしかし、AIは依然として間違った答えを出します","- 目的の出力を得るためにテキストの編集に何時間も費やす","- 新しいプロンプトを作成するたびに、よりスマートで論理的な表現方法を考える必要があります。","- さまざまなモデルを使用しているが、適切なプロンプトの書き方がわからない","- もっとクリエイティブになりたいが、実験に時間を無駄にしたくない","PromptPerfect はどのように役立ちますか?","PromptPerfect は、ワークフローに統合できるオンライン ツールで、コンテンツ クリエーター、プログラマー、マーケティング担当者、教師、研究者、さらには AI の初心者に特に適しています。 PromptPerfect でできることは次のとおりです。","- 自動プロンプトを最適化する: 元のプロンプトを入力し、目標 (生産性の向上、創造性の向上、精度の向上など) を選択すると、より適切に書き換えられたプロンプトが返されます。","- AI モデルに応じてカスタマイズ可能: GPT、Claude、Gemini、
9455Mistral、LLaMA のいずれを使用する場合でも、PromptPerfect はシステムごとに個別に最適化できます。","- 多言語サポート: 英語が苦手な場合でも、PromptPerfect を使用すると、選択した言語で効果的なプロンプトを作成できます。","- 生産性の向上: 試行錯誤の時間を短縮し、執筆、コーディング、Q&A、調査、創造性など、あらゆる目標に向けた質の高いプロンプトを迅速に取得できるようにします。","つまり、AI の力をよりインテリジェントに利用したい場合、PromptPerfect は貴重なツールです。","出典: 収集"]},{id:190,title:"サービス品質が飛躍的に向上 - React Plus、再定義フェーズにおける大幅な飛躍",date:"2025å¹´7月21日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/190/%E1%BA%A2NH_B%C3%8CA__WEB__17_.png",excerpt:"React Plusは「品質・技術力・顧客満足度」を軸とした再定義フェーズにおいて、サービス品質の大幅な向上を実現し、特に日本のFintech分野で強固な信頼を築いています。🚀",gradient:"from-sky-200 via-blue-200 to-indigo-200",summary:"再定義フェーズにおけるReact Plusの成果報告。特に高い厳密性が求められる日本のFintech市場での成功について強調。",content:["🚀 サービス品質が飛躍的に向上 - React Plus、再定義フェーズにおける大幅な飛躍","日本のパートナー企業の皆様との歩みの中で、React Plusは、厳格な基準と高い精度が要求される日本のFintech(金融テクノロジー)市場において、信頼されるAIテクノロジーパートナーとしての確固たる地位を築きつつあります。","戦略的な再ポジショニングフェーズを通じて、当社は技術者の深い専門知識だけでなく、厳格な品質管理プロセス(QA)、多層的なチェック体制、セキュリティおよびシステムコンプライアンス(ISO 27001)を導入し、納品物の完全性を確保しています。","私たちはこれからも「Your Quality, Our Priority」の精神のもと、サービスの価値を高め続けます。"]},{id:188,title:"Lovable – ミニマルで使いやすいインターフェイスを作成し、Figma から Web サイトをすばやく作成します",date:"2025å¹´7月18日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/188/%E1%BA%A2NH_B%C3%8CA__WEB__15_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/188/social.png",excerpt:"Lovable は、コードを記述することなく、わずか数分で Figma デザインを HTML、CSS、React、または Vue Web インターフェイスに変換する AI プラットフォームです。ミニマルで使いやすいインターフェイスを備えた Lovable は、デザイナーと開発者の両方に適しており、デザインとプログラミングのプロセスを短縮するのに役立ちます。ユーザーは Figma リンクを貼り付けるだけで、ツールが元のデザインに近いコードを自動的に生成します。 Lovable は、オンライン パブリッシングとワークフローへの統合もサポートしており、チームの生産性を向上させます。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"Lovable は、コードを記述することなく、わずか数分で Figma デザインを HTML、CSS、React、または Vue Web インターフェイスに変換する AI プラットフォームです。ミニマルで使いやすいインターフェイスを備えた Lovable は、デザイナーと開発者の両方に適しており、デザインとプログラミングのプロセスを短縮するのに役立ちます。ユーザーは Figma リンクを貼り付けるだけで、ツールが元のデザインに近いコードを自動的に生成します。 Lovable は、オンライン パブリッシングとワークフローへの統合もサポートしており、チームの生産性を向上させます。",content:["他の多くの AI プラットフォームとは異なり、AI Lovable はそのクリーンでミニマルでフレンドリーなインターフェイスのおかげで傑出しており、すべてのユーザーに使い慣れた使いやすいエクスペリエンスを提供します。","Lovable を使用すると、Figma デザインをわずか数分で完全な Web インターフェイスに変えることができます。コードを書く必要も、各ピクセルを位置合わせする必要もありません。Figma リンクを貼り付けるだけで、Lovable がすぐに使用できる HTML、CSS、または React に自動的に変換します。これは、デザイナー、開発者、そして手間をかけずに美しく高速な Web サイトを作成したい人にとって理想的なツールです。","パブリック Figma リンクを取得して貼り付けるだけです。","「https://www.figma.com/file/xyz...」","Lovable は、レイアウト、色、フォント、コンポーネントを自動的に理解し、HTML、CSS、Tailwind、React、または Vue を選択して使用して完全な Web インターフェイスを出力します。","このツールは、デザイナーと開発者のプレッシャーを軽減するのに役立ちます","あなたはコーディング方法を知らなくても独自のランディング ページを構築したいと考えているデザイナーですか?あなたは開発者ですが、UI を細部まで構築するのに時間を無駄にしたくないですか? Lovable.dev は次のことに役立ちます。","- 数回クリックするだけで Figma 図面を HTML/CSS/React コードに変換します","- マージン/パディングを測定する必要がなく、手動で「カット」する必要もありません","- 変換後のインターフェースは元のデザインに近く、さらに編集することができます","設計およびプログラミング チームの作業速度の向上に役立ちます","デザイナー間の長いプロセスの代わりに &rarr;開発&rarr; QA&rarr; UI をカスタマイズするには、次のことができます。","- いつも通りFigmaでデザイン","- リンクを Lovable.dev に貼り付けます","- イãƒ
9455³ã‚¿ãƒ¼ãƒ•ェースをコードに変換して取得する","- プロジェクトに貼り付けるか、VS Code、StackBlitz などのコード エディターで編集します。","さらに、すぐに公開または共有できます","Lovable は、Figma リンクを送信するのと同じように、構築されたインターフェイスをオンラインで公開して他のユーザーと共有することをサポートしていますが、実際の Web バージョンです。さらに、CI/CD システムに統合したり、ビジネスのワークフローに統合したりして、設計と展開の間の変換効率を高めることができます。","Tóm lại, Lovable là một nền tảng AI mạnh mẽ giúp bạn chuyển thiết kế từ Figma thành mã code giao diện web một cách nhanh chóng và dễ dàng."]},{id:186,title:"React Plus 2025年度 上期戦略アップデート - AIと共に歩む「再定義と変革」",date:"2025å¹´7月2日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/186/%E1%BA%A2NH_B%C3%8CA__WEB__13_.png",excerpt:"「React Plus 2025 Mid-Year Strategy Update – 再定義&AIと共に歩む変革」を開催。年央の業績を総括し、AIを原動力とする新たなフェーズの戦略を策定しました。📊",gradient:"from-indigo-200 via-purple-200 to-fuchsia-200",summary:"Semi Sum Up(年央総括会議)の開催報告。「AIと共に歩む再定義と変革」をテーマに上半期の業績と下半期の行動計画を議論しました。",content:["📊 [RECAP] React Plus 2025年度 上期戦略アップデート - AIと共に歩む「再定義と変革」","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/772/content_1.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/774/content_3.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/776/content_5.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/775/content_4.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/779/content_7.png]","6月28日〜29日の2日間、React Plusは「React Plus 2025 Mid-Year Strategy Update – 再定義&AIと共に歩む変革」をテーマに、Semi Sum Up 2025を大成功裏に開催しました。","このイベントには、取締役会(BOD)、各事業部のマネージャー陣、および主要メンバーが集結しました。2日間にわたる集中的なセッションを通じて、各部門の代表者が上半期の成果と課題を報告し、下半期の目標として、組織体制の強化、最新テクノロジー(AI)の適用、そして品質管理プロセスの最適化に向けた実行計画が合意されました。","「品質は妥協しない」という強い決意とともに、React Plusは次なる成功の頂点を目指して前進を続けます。"]},{id:185,title:"E コマースにおけるパーソナライゼーションのトレンド – Next.js が理想的な選択であるのはなぜですか?",date:"2025å¹´6月25日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/185/%E1%BA%A2NH_B%C3%8CA__WEB__12_.png",excerpt:"パーソナライゼーションの時代において、消費者は自分の個性を表現するユニークな製品をますます求めており、電子商取引 Web サイトにはより柔軟で最適化されたものが求められています。 Next.js は、SEO 最適化機能、高速な読み込み速度、スムーズなエクスペリエンス、簡単な API 統合により、理想的なソリューションとして際立っており、効果的な手作りおよびカスタマイズされた製品 Web サイトの構築に役立ちます。柔軟なスケーラビリティを備えた Next.js は、小規模プロジェクトに適しているだけでなく、完全な e コマース システムに開発できるほど強力です。これは、現代のパーソナライズされたブランディングにとって戦略的な
9455選択です。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"パーソナライゼーションの時代において、消費者は自分の個性を表現するユニークな製品をますます求めており、電子商取引 Web サイトにはより柔軟で最適化されたものが求められています。 Next.js は、SEO 最適化機能、高速な読み込み速度、スムーズなエクスペリエンス、簡単な API 統合により、理想的なソリューションとして際立っており、効果的な手作りおよびカスタマイズされた製品 Web サイトの構築に役立ちます。柔軟なスケーラビリティを備えた Next.js は、小規模プロジェクトに適しているだけでなく、完全な e コマース システムに開発できるほど強力です。これは、現代のパーソナライズされたブランディングにとって戦略的な選択です。",content:['Trong thời đại người tiêu dùng ngày càng muốn thể hiện cá tính qua từng món đồ mình sở hữu, cá nhân hóa đã trở thành một xu hướng chá»§ đạo trong thương mại điện tá»­. Không còn những sản phẩm đại trà – người dùng hiện đại tìmhkiếm sá»± độc quyền, một món đồ "không ai giống ai".',"パーソナライズされた Web サイトを構築する際の課題","- 効果的なパーソナライゼーションをサポートしたい Web サイトには、次のようなニーズがあります。","- ユーザーは好みに応じて色、チャーム、彫刻などを選択できます。","- 柔軟な製品バリエーションを表示","- 特定の製品バージョンごとに SEO を最適化する","- 読み込み速度が速く、顧客を維持するためのスムーズな対応","従来のプラットフォームの多くは、これらの要件に苦労しています。ここで Next.js の優れた威力が発揮されます。","Next.js が手作りおよびパーソナライズされた Web サイトに最適な選択肢であるのはなぜですか?","1. 優れたSEO最適化","- サーバーサイド レンダリング (SSR) と静的サイト生成 (SSG) のサポートにより、Google は動的商品ページを簡単にクロールしてインデックスに登録できます。","- メタタイトル、ディスクリプション、OpenGraph、Twitterカードなどの適切な管理。","- フレンドリーな URL を作成し、r&otilde を分離します。各製品バージョン: /vong-tay-da-ngu-sac、/vong-tay-hoi-tho-bien、...","2. スムーズなユーザーエクスペリエンス","- Next/image の統合により、多くの場合、画像が自動的に最適化され、迅速に読み込まれるようになります。","- プリフェッチのサポート - ほぼ即時のページ切り替え。","- カスタム商品ページ (複数の写真、複数の選択肢) の作成に最適です。","3. APIと拡張可能なシステムの簡単な統合","- 統合された注文フォーム: チャーム、ストラップの色を選択し、刻印を入力し、リクエストを送信します。","- REST API または GraphQL バックエンドへの素早い接続。","- 次のようなサービスを使用して簡単に導入できます。","- Cloudinary: デザイン画像を保存","- ストライプ: 支払い","- Zalo OA、Facebook メッセンジャー: 顧客相談","4. 小規模プロジェクトにも大規模プロジェクトにも柔軟に対応","- Bắt đầu từ trang landing đơn giản &rarr; mở rộng thành hệ thống eCommerce hoàn chỉnh.","- CMS (Contentful、Sanity、Strapi) を統合して、SEO ブログのコンテンツを管理します。","- 複雑なバックエンドを必要とせずに、注目のキーワード フレーズに基づいて最適化されたランディング ページを簡単に作成できます。","Next.js を選択する理由","- 各製品の SEO に最適化されたインターフェイス (next/head、schema.org...)","- next/image + Cloudinary &rarr; を使用した画像非常に軽くて美しい","- ブログがSEO化されている","- Vercel によるデプロイ: 高速ビルド、スムーズな CI/CD、自動プレビュー","結論する","パーソナライゼーションは単なる創造的な選択ではなく、現代の電子商取引における効果的なビジネス戦略です。工芸品、ファッション、ジュエリー、またはカスタム製品をブランド化する場合:","スピード、ユーザー エクスペリエンス、SEO、統合がすべて 1 つの強力なフレームワークに組み込まれています。","出典: カンフーテック"]},{id:184,title:"プログラマー向けのアプリケーションのアイデアに関する参照ソース トップ 10",date:"2025å¹´6月20日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/184/%E1%BA%A2NH_B%C3%8CA__WEB__11_.png",excerpt:"プログラマーにとって、パーソナル テクノロジー製品の開発は常に魅力的な目標ですが、アイデアは必ずしも簡単に思いつくわけではありません。この記事では、Product Hunt、GitHub、Google Trends などの国際的なプラットフォームから Facebook、VOZ などの国内コミュニティまで、プログラマーがインスピレーションを見つけたり、実際のニーズを発見したりするのに役立つ 10 の参考ソースを紹介します。さらに、生活環境や生活習慣を観察することで、さまざまな応用アイデアが得られます。これらの情報源は、傾向を提供するだけでなく、解決する必要がある問題を特定するのにも役立ちます。これにより、プログラマーはユーザーのニーズに近い実用的な製品を構築できます。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"プログラマーにとって、パーソナル テクノロジー製品の開発は常に魅力的な目標ですが、アイデアは必ずしも簡単に思いつくわけではありません。この記事では、Product Hunt、GitHub、Google Trends などの国際的なプラットフォームから Facebook、VOZ などの国内コミュニティまで、プログラマーがインスピレーションを見つけたり、実際のニーズを発見したりするのに役立つ 10 の参考ソースを紹介します。さらに、生活環境や生活習慣を観察することで、さまざまな応用アイデアが得られます。これらの情報源は、傾向を提供するだけでなく、解決する必要がある問題を特定するのにも役立ちます。これにより、プログラマーはユーザーのニーズに近い実用的な製品を構築できます。",content:["多くのプログラマーにとって、個人用のテクノロジー製品の開発は常に刺激的な目標です。ただし、アイデアは必ずしも簡単に思いつくわけではありません。アイデアの生成と選択のプロセスをサポートするために、世界のテクノロジー コミュニティからの有益な情報と実用的なトレンドを提供する 10 の一般的な参考情報源を以下に示します。","1. Product Hunt","🔗 https://www.producthunt.com","Product Hunt は、世界中のスタートアップや開発者から信頼されている新製品発表プラットフォームです。ここは、テクノロジーのトレンドを調査し、ユーザーの問題を特定し、他の製品が現実の問題をどのように解決するかを学ぶのに理想的な場所です。","ここに登場したいくつかの優れた製品:","Notion: ベータ版 (2015 å¹´) から、世界的に人気のある情報管理ツールになりました。","カーソル: 2024 年に「プロダクト オブ ザ イヤー」のタイトルを獲得しました。","2. Reddit","🔗 r/起業家","🔗 r/スタートアップ","🔗r/フリーランス","スタートアップとフリーランスに特化したサブレディットは、アイデアを共有し、フィードバックを収集し、プログラマーやユーザーが興味を持つ現実の問題を観察する場所です。","3. Indie Hackers","🔗 https://www.indiehackers.com","独立したプログラマーが実際のプロジェクト、収益、製品開発戦略を共有するコミュニティ プラットフォーム。これは、ニッチ市場向けの製品を構築しようとしている個人または小規模チームにとって理想的なリソースです。","4. GitHub のトレンドと GitHub の問題","🔗 https://github.com/trending","GitHub Trending は、コミュニティで関心を集めているオープンソース プロジェクトを追跡するのに役立ちます。さらに、リポジトリの「問題」セクションには未解決の問題が含まれることが多く、これは新しいツールや改良版を開発する機会となる可能性があります。","5. Google Trends","🔗 https://trends.google.com","Google トレンドは、よく検索されたキーワードやトピックを見つけるのに役立ちます。これらの傾å
9455‘に基づいて、プログラマーは市場のニーズに合ったアプリケーションを開発できます。","6. TikTokとYouTube","2 つのプラットフォームはバイラル コンテンツの分野をリードしています。ビデオのトレンドやユーザーからのフィードバック、特にコメントセクションを観察すると、エンターテイメント、実用性、または生活上の問題を解決するためのアプリケーションを開発するためのアイデアが生まれる可能性があります。","7. Stack Overflow","🔗 https://stackoverflow.com","プログラミングの質問と回答機能に加えて、Stack Overflow は r&otilde; をデモンストレーションする場所でもあります。コミュニティが直面する共通の問題。一般的なエラーのコンパイルは、改善されたサポート ツールやライブラリを構築するための基礎となります。","8. Facebook、VOZ、Discordコミュニティ","国
9455内のテクノロジーグループやフォーラムは、プログラマー、学生、フリーランサー、スタートアップ間の活発な交流の場です。この場所は現実的な視点を提供し、ベトナム人ユーザーの満たされていないニーズを反映することができます。","9. App StoreとGoogle Play","世界の 2 つの最大のアプリケーション ストアは、アプリ開発のトレンドについて学び、否定的なユーザーのコメントを読んで弱点を特定し、より良いバージョンを開発する場所です。さらに、ここは競合の少ないニッチなアプリのアイデアを見つける場所でもあります。","10. 生活環境や作業環境から観察する","多くの有用なアイデアは、時間管理、デスク予約、手動レポート、タスクのリマインダーなど、生活の中で繰り返されるプロセスから生まれます。これらのタスクをデジタル化すると、時間が節約されるだけでなく、実用的な製品開発の機会が広がります。","上記のリストがあなたの戦略を立てるのに役立つことを願っています。独自のテクノロジー製品を構築する過程がより明確になります。"]},{id:182,title:"ソフトウェアテストにおける一般的な API プロトコルの概要",date:"2025年6月5日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/182/%E1%BA%A2NH_B%C3%8CA__WEB__7_.png",excerpt:"API はシステム間の重要な架け橋であり、各 API プロトコルにはソフトウェア テスト プロセスに影響を与える独自の特性があります。 4 つの一般的なプロトコルには、REST (使いやすく、一般的)、SOAP (高セキュリティ、XML を使用)、GraphQL (柔軟なクエリ、データ最適化)、および gRPC (高パフォーマンス、分散システムで使用) が含まれます。 r&otilde;を理解するそれぞれのタイプは、テスターが正確なテスト ケースを設計し、システムの有効性をより適切に評価するのに役立ちます。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"API はシステム間の重要な架け橋であり、各 API プロトコルにはソフトウェア テスト プロセスに影響を与える独自の特性があります。 4 つの一般的なプロトコルには、REST (使いやすく、一般的)、SOAP (高セキュリティ、XML を使用)、GraphQL (柔軟なクエリ、データ最適化)、および gRPC (高パフォーマンス、分散システムで使用) が含まれます。 r&otilde;を理解するそれぞれのタイプは、テスターが正確なテスト ケースを設計し、システムの有効性をより適切に評価するのに役立ちます。",content:["API (アプリケーション プログラミング インターフェイス) は、アプリケーションとシステムが相互にデータを交換するのに役立つ重要なブリッジです。ただし、API の種類ごとに異なるプロトコルが使用され、開発およびテストの方法に大きな影響を与えます。 REST、SOAP、GraphQL、gRPC という 4 つの一般的な API プロトコルについて学習して、重要な点を理解しましょう。もっと!。","休息 - 代表的な状態の移行","- 特徴: HTTP ベースのプロトコル。多くの場合、データ転送形式として JSON または XML が使用されます。","- 利点: 人気があり、導入が簡単で、さまざまな HTTP メソッド (GET、POST、PUT、DELETE) をサポートしています。","- 実用的な例: GET メソッドを使用して URL 経由で製品リスト情報を取得します (詳細については、Swagger: https://testek.vn/lab/api/v0/prod-man/swagger-ui.html#/)","- テストに関する注意: REST には特定のプロトコルが指定されていないため、一貫性を確保するには REST の原則に従う必要があります。","SOAP – 単純なオブジェクト アクセス プロトコル","- 特徴: 通信形式として XML を使用し、HTTP または SMTP 上で動作します。","- 利点: ビジネス環境に適した強力な WS-Security セキュリティ標準をサポートします。","- 実用的な例: SOAP XML メッセージを介して銀行口座残高を確認するリクエストを送信します。","- テストに関するメモ: SOAP は REST よりも複雑な場合があるため、SOAP を使用するには XML およびネットワーク プロトコルに関する深い知識が必要です。","GRAPHQL – API のクエリ言語","- 特徴: クライアントは必要なデータのみをリクエストできるため、不要なデータ負荷が軽減されます。","- 利点: 帯域幅、データクエリの柔軟性を最適化します。","- 実用的な例: 情報 { user { name, email } } を使用してユーザーをクエリすると、これら 2 つのフィールドのみが取得されます。","- テストに関するメモ: GraphQL には、GraphQL とサポート ツールの知識が必要です。","GRPC – Google リモート プロシージャ コール","- 特徴: プロトコル バッファー (protobuf) を使用してデータをシリアル化し、HTTP/2 で実行します。","- 利点: 高性能で、マイクロサービスや分散システムに適しています。","- 実用的な例: gRPC エンドポイント経由で関数 GetUserInfo(user_id=1) を呼び出し、ユーザー情報を取得します。","- テストに関する注意: gRPC には、プロトコル バッファーとサポート ツールに関する知識が必要です。","品質管理とテスターの視点","API テストでは、r&otilde を理解する必要があります。各プロトコルの特性は、テスターがテスト ケースをより正確かつ効果的に設計するのに役立ちます。注意すべき重要な点:","API テストは、単なる出力のテストではなく、システムの相互運用性と信頼性の包括的な評価です。"]},{id:181,title:"6月1日 国際こどもの日 - React Plusファミリーに笑顔を",date:"2025年6月1日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/181/%E1%BA%A2NH_B%C3%8CA__WEB__6_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/181/8.png",excerpt:"6月1日の「国際こどもの日」を祝し、React Plusファミリーの子供たちへプレゼントを贈呈!子供たちの無邪気な笑顔が、私たちに最大の活力を与えてくれます。🎁",gradient:"from-yellow-200 via-lime-200 to-green-200",summary:"「国際こどもの日」を祝う社内イベント。社員の子供たち向けのギフトとアクティビティが用意されました。",content:["[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/766/content_5.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/764/content_4.png]","🎁 6月1日 国際こどもの日 - React Plusファミリーに笑顔を","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/768/content_9.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/767/content_7.png]","鮮やかな鳳凰木の並木に蝉の声が響き渡り、急な夏の雨が通り過ぎる頃、6月が優しくドアをノックし、その始まりを告げています。そして6月1日は、世界中のすべての子供たちに喜びと思い出を届ける「国際こどもの日」です。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/765/content_1.png]","この特別な日に際し、React Plusは社員の子供たちのために色とりどりのプレゼントと楽しいアクティビティを用意しました。子供たちの無邪気な笑顔と楽しそうな声は、日々プロジェクトに向き合う私たちにとって何よりの癒しとエネルギーになります!"]},{id:180,title:"Solid とは何か、および Solid を適用して優れたプログラマーになる方法",date:"2025年5月28日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/180/%E1%BA%A2NH_B%C3%8CA__WEB.png",excerpt:"SOLID は、Robert C. Martin によって提案された 5 つのオブジェクト指向設計原則のセットで、プログラマーがオブジェクト指向の設計原則を作成するのに役立ちます。明確で、保守と拡張が簡単です。これらには、単一責任原則 (SRP)、変更なしの拡張 (OCP)、継承の置換 (LSP)、インターフェイス分離 (ISP)、および依存関係の反転 (DIP) が含まれます。それぞれの原則は、柔軟性があり、理解しやすく、必要に応じて簡単に変更できるモジュールを作成することを目的としています。 SOLID を適用すると、ソフトウェア開発におけるコードの品質とチームワークの
9455効率が向上します。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"SOLID は、Robert C. Martin によって提案された 5 つのオブジェクト指向設計原則のセットで、プログラマーがオブジェクト指向の設計原則を作成するのに役立ちます。明確で、保守と拡張が簡単です。これらには、単一責任原則 (SRP)、変更なしの拡張 (OCP)、継承の置換 (LSP)、インターフェイス分離 (ISP)、および依存関係の反転 (DIP) が含まれます。それぞれの原則は、柔軟性があり、理解しやすく、必要に応じて簡単に変更できるモジュールを作成することを目的としています。 SOLID を適用すると、ソフトウェア開発におけるコードの品質とチームワークの効率が向上します。",content:["SOLID là viết tắt cá»§a 5 chữ cái đầu trong 5 nguyên tắc thiết kế hướng đối tượng. Giúp cho lập trình viên viết ra những đoạn code dễ đọc, dễ hiểu, dễ maintain. Nó được đưa ra bÆ¡i Robert C Martin và Michael Feathers. 5 nguyên tắc đó bao gồm:","&ブル;単一責任原則 (SRP)","&ブル;オープン/クローズ原則 (OCP)","&ブル;リスコフ置換原理 (LSP)","&ブル;インターフェース分離原則 (ISP)","&ブル;依存関係逆転原理 (DIP)","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/763/content_images.png]","単一責任原則 (SRP)","&ブル;簡単に言えば、単一責任原則 (SRP): 各コンポーネントは実行および実行のみを行う必要があります。","仕事の 1 つの部分だけに責任を負います。","&ブル;たとえば、MVC モデルの場合、SERVICE、REPOSITORY、","コントローラー。その場合、各コンポーネントはサービスなどの特定のタスクのみを実行する必要があります。","はデータ処理に関連しており、リポジトリはデータベースの操作を支援し、コントローラはデータベースの操作を支援します。","リクエストの処理とクライアントからサーバーへの転送を支援します...","オープン/クローズ原則 (OCP)","&ブル;拡張のためにオープン、変更のためにクローズ","&ブル;既存のクラスは変更できませんが、継承によって拡張できます。","&ブル;この原則によれば、プログラムに機能を追加したいときは常に、次のように書く必要があります。","新しいクラスは (古いクラスを継承または所有することによって) 古いクラスを拡張しますが、変更しないでください。","古いクラスを変更します。これにより多くのクラスが作成されることになりますが、","古いクラスを再テストする必要がありますが、","新しい機能。","&ブル;通常、機能を拡張するにはさらに多くのコードを記述する必要があるため、機能を設計するには","モジュールは簡単に拡張できますが、必要なコード変更は制限されます。解決","影響を与えないようにしながら、変更しやすい部分と変更しにくい部分を分離するという決定です。","残りに影響を与えます。","リスコフ置換原理","&ブル;サブクラス オブジェクト (インスタンス) は親クラス オブジェクトを置き換えることができます","エラーは発生しません。","&ブル;この原則の重要性は非常に重要です。違反した場合の結果を見れば明らかです。基本クラス B に属する関数 f があるとします。 B に基づいて作成されたクラス D があり、B の場合と同じ方法で D のオブジェクトに対して関数 f を呼び出すと、f は正しく動作しません。すると、D は LSP に違反します。ロチルダ明らかに、D は f の存在下で脆弱になります。","&ブル; f の作成者は、f が D のオブジェクトから呼び出されたときに適切に動作できるように、D でテストできるようにいくつかの詳細を追加しようとします。 f は B から生成されたすべてのクラスに対して完全に閉じられていないため、このアプローチは OCP に違反します。これは明らかに、経験の浅いプログラマ (さらに悪いことに、性急なプログラマ) が LSP との競合を解決しようとした結果です。","界面分離原理","&ブル; 1 つの大きなインターフェイスを使用する代わりに、多くの特定の目的を持つ多数の小さなインターフェイスに分割する必要があります。","できる。","&ブル;この原則は非常に理解しやすいです。約 100 個のメソッドがある大規模なインターフェイスがあると想像してください。これらの実装インターフェイス クラスはインターフェイスのすべてのメソッドを実装する必要があるため、å
9455®Ÿè£…は非常に困難になります。クラスでは 100 個のメソッドすべてを使用する必要はないため、冗長性が生じる可能性もあります。関連するメソッドを含めてインターフェイスを多数の小さなインターフェイスに分割すると、実装と管理が容易になります。","依存関係逆転の原理","1. 高レベルのモジュールは低レベルのモジュールに依存すべきではありません。どちらも抽象化に依存する必要があります。","2. インターフェイス (抽象化) は詳細に依存するのではなく、その逆に依存する必要があります (クラスは実装ではなくインターフェイス (抽象化) を通じて相互に通信します。)","&ブル;この原則は次のように理解できます。プログラム内のコンポーネントは抽象化にのみ依存する必要があります。抽象コンポーネントは具体コンポーネントに依存すべきではありませんが、その逆も同様です。","&ブル;抽象的なもの(抽象化)は、変化が少なく変動するものであり、具体的なものの最も一般的な特徴を集めたものです。具体的なものは、どれだけ異なっていても、抽象が定めた一般的な規則に従います。抽象化に依存すると、プログラムが柔軟になり、継続的な変化にうまく適応できるようになります。","3. まとめ","SOLID はソフトウェア設計における 5 つの基本原則です。これは、関数、メソッド、クラスをより正確に整理するのに役立ちます。コンポーネントとモジュールを接続する方法。","ロチルダ明確でわかりやすい","プログラミングにはチームワークが不可欠です。 SOLID を作品に適用すると、より理解しやすく、より優れた機能が作成されます。あなたと同僚がお互いのコードを読んで理解するのに役立ちます。","変更が簡単","SOLID は、モジュールとクラスの作成に役立ちます。明確で一貫性があり、独立性が高い。そのため、お客様から変更や拡張のご要望があった場合でも、あまり手間をかけずに変更させていただきます。","再利用","SOLID を使用すると、プログラマはソフトウェアの書き方についてより深く考えることができるため、記述されたコードは一貫性があり、理解しやすく、使いやすいものになります。"]},{id:179,title:"UDP のセキュリティ脆弱性について知っておくべきことと、それを防ぐ方法",date:"2025å¹´5月20日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/179/%E1%BA%A2NH_B%C3%8CA__WEB__4_.png",excerpt:"UDP は、VoIP、ストリーミング、ゲームにおいて高速で人気のあるプロトコルですが、接続制御メカニズムがないため簡単に悪用されます。典型的な攻撃形式には、UDP フラッディング、リフレクション、MITM、ポート スキャンなどがあり、システムに過負荷をかけたり、ユーザーを欺いたりする可能性があります。これを防ぐために、企業はファイアウォール、IDS/IPS、DNSSEC、DTLS 暗号化、および Cloudflare や AWS Shield などの DDoS 対策ソリューションを使用する必要があります。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"UDP は、VoIP、ストリーミング、ゲームにおいて高速で人気のあるプロトコルですが、接続制御メカニズムがないため簡単に悪用されます。典型的な攻撃形式には、UDP フラッディング、リフレクション、MITM、ポート スキャンなどがあり、システムに過負荷をかけたり、ユーザーを欺いたりする可能性があります。これを防ぐために、企業はファイアウォール、IDS/IPS、DNSSEC、DTLS 暗号化、および Cloudflare や AWS Shield などの DDoS 対策ソリューションを使用する必要があります。",content:["[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/761/content_images.png]","UDP は、VoIP、ストリーミング、ゲームにおいてé«
9455˜é€Ÿã§äººæ°—のあるプロトコルですが、接続制御がないため攻撃に対して脆弱です。私は実際の経験から主な脆弱性とそれを保護する方法を分析します。","UDP フラッディング: ハッカーは、オンライン ゲームをターゲットとした DDoS のように、一連の UDP パケットを送信してサーバーに過負荷をかけます。","UDP の反射と増幅: DNS/NTP からの小さなリクエストが増幅され、ターゲットの帯域幅がフラッディングされます。例: Memcached DDoS 1.7 Tbps (2018)。","UDP 上の MITM: 整合性チェックがなく、ユーザーを悪意のある Web サイトに誘導する DNS スプーフィングなどのパケットをブロック/変更するのが簡単です。","UDP ポート スキャン: nmap を使用して開いているポートをスキャンし、銀行をターゲットとする脆弱なサービスを見つけます。","予防方法:","ファイアウォール/IPS: 異常な UDP パケットをブロックし、IDS/IPS を使用してフラッディング/増幅を検出します。","DNS/UDP サービスを保護する: DNSSEC をオンにして、スプーフィング、NTP/SSDP のレート制限、エニーキャスト分散攻撃の使用を防止します。","ポート制限: ファイアウォール/セキュリティ グループを使用して冗長 UDP ポートをオフにし、nmap で定期的に確認します。","認証/暗号化: DTLS UDP 暗号化を反 MITM IPSec と組み合わせて使用​​します。","CDN/アンチDDoS: Cloudflare/AWS Shieldを介したルーティングにより、UDPベースのDDoSをオフロードします。","UDP は便利ですが、リスクが高くなります。企業には、保護のためにファイアウォール、監視、DNSSEC や DTLS などのツールが必要です。"]},{id:177,title:"マイクロソフトはエコシステム全体を錆びさせている",date:"2025å¹´5月12日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/177/3.png",excerpt:"Microsoft は、セキュリティを強化し、メモリ エラーを回避し、パフォーマンスを最適化するために、Windows、Office、Azure の重要なコンポーネントを書き換えるために Rust を積極的に適用しています。多くの課題にもかかわらず、彼らは依然として Rust を取り巻くエコシステムに多額の投資を行っており、この言語が将来的に普及する可能性を示しています。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"Microsoft は、セキュリティを強化し、メモリ エラーを回避し、パフォーマンスを最適化するために、Windows、Office、Azure の重要なコンポーネントを書き換えるために Rust を積極的に適用しています。多くの課題にもかかわらず、彼らは依然として Rust を取り巻くエコシステムに多額の投資を行っており、この言語が将来的に普及する可能性を示しています。",content:["[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/759/content_492419302_4132585810359851_3837809100435478112_n__1_.jpg]","Rust Nation UK では、Microsoft Azure の CTO が、Rust 言語を積極的に適用して Windows、Office、Azure の主要コンポーネントを書き換えていると共有しました。","その理由は、セキュリティを向上させ、メモリ関連のエラーを回避し、最低レベルでパフォーマンスを最適化するためです。","さらに、Microsoft は、次のようなソース コード変換をサポートする AI ツールも開発しています。","- 安全な C から Rust へのコンバーター","- Python から Rust への翻訳ツール","彼らは Rust を使用するだけでなく、Rust を中心にエコシステム全体を構築します。","もちろん、Rust の導入には多くの課題も伴います。","一部の社内開発チームは、Rust は習得が簡単ではなく、慣れるまでに時間がかかることを共有しています。ただし、そのトレードオフとして、ソース コードはより安全で、エラーが少なく、大規模システムでの制御が容易になります。","Microsoft が Rust に真剣に取り組んでいるという事実は、Rust が開発者間だけでなく、エンタープライズ、オペレーティング システム、クラウド レベルでも将来的にさらに人気が高まることを示しているかもしれません。"]},{id:176,title:"JMeter を使用して Web サイトのパフォーマンスをテストする",date:"2025å¹´5月5日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/176/4.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/176/header_jmeter.jpg",excerpt:"JMeter は、Apache によって開発されたオープン ソース ツールで、Web および Java アプリケーションのパフォーマンスと負荷のテストに特化しています。 JMeter は多数のユーザーをシミュレートする機能を備えており、システムの負荷容量、安定性、応答速度の評価に役立ちます。負荷、ストレス、耐久性、スパイク テストなどの種類のテストは、導入前の早期に弱点を検出するのに役立ちます。 JMeter を使用したパフォーマンス テストは、優れたユーザー エクスペリエンスを保証するだけでなく、コストとトラブルシューティングの時間を節約するのにも役立ちます。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"JMeter は、Apache によって開発されたオープン ソース ツールで、Web および Java アプリケーションのパフォーマンスと負荷のテストに特化しています。 JMeter は多数のユーザーをシミュレートする機能を備えており、システムの負荷容量、安定性、応答速度の評価に役立ちます。負荷、ストレス、耐久性、スパイク テストなどの種類のテストは、導入前の早期に弱点を検出するのに役立ちます。 JMeter を使用したパフォーマンス テストは、優れたユーザー エクスペリエンスを保証するだけでなく、コストとトラブルシューティングの時間を節約するのにも役立ちます。",content:["JMeter パフォーマンス テストは、Web および Java ベースのアプリケーションのパフォーマンスの測定とテストの専門家になるのに役立つエキサイティングな旅です。 JMeter は、Apache によって開発された強力なオープン ソース ツールであり、世界中でアプリケーションのパフォーマンスおよび負荷テストの標準ツールとなっています。","JMeter は、Apache によって開発されたオープン ソース ツールで、主に Web アプリケーションのパフォーマンスと負荷のテストに使用されます。 JMeter を使用すると、多数のユーザーをシミュレートして、さまざまなシナリオでシステムの負荷容量、応答速度、安定性をテストできます。","JMeter を使用したパフォーマンス テストには、次の種類のテストの実行が含まれます。","1. 負荷テスト:","ユーザー数の増加に備えてシステムの機能を判断します。","2. ストレステスト:","最大負荷制限を超えたときにシステムがどのように動作するかをテストして、ブレークポイントまたはリカバリを決定します。","3. 耐久性テスト:","Kiểm tra hệ thống trong thời gian dài để xác định các vấn đề như rò rỉ bộ nhớ hoặc các lỗi khác có thể xảy ra khi hệ thống hoạt động liên tục.","4. スパイクテスト:","Kiểm tra hệ thống với các tải đột ngột tăng cao để xem hệ thống có thể xá»­ lý các biến động lớn và đột ngột như thế nào.","Tầm quan trọng cá»§a kiểm thá»­ hiệu năng JMeter","1. 優れたユーザー エクスペリエンスを確保します。","アプリケーションのパフォーマンスはユーザー エクスペリエンスに直接影響します。アプリが遅い、または不安定であるとユーザーはイライラし、顧客離れにつながる可能性があります。","2. 導入前に問題を検出して修正します。","パフォーマンス テストは、アプリケーションが広く展開される前に、システム内の潜在的な問題を検出するのに役立ちます。これにより、導入後に問題のトラブルシューティングを行う場合に比べて、コストと時間を節約できます。"]},{id:175,title:"Archon の紹介 - 自動化された AI エージェント ビルダー",date:"2025å¹´4月25日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/175/6.png",excerpt:"Archon V4 は、使いやすい Streamlit インターフェイスとスケーラブルなアーキテクチャを備えた、効率的かつ直感的な AI エージェントの構築を可能にする強力なプラットフォームです。このツールは、Pydantic AI、LangGraph などの最新のフレームワークを統合し、LLM を使用してエージェント開発プロセスを自動化します。 Archon は、他のエージェントを作成および管理する「エージェント」として機能することで、AI エージェントの設計、カスタマイズ、展開における一般的な問題を解決します。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"Archon V4 は、使いやすい Streamlit インターフェイスとスケーラブルなアーキテクチャを備えた、効率的かつ直感的な AI エージェントの構築を可能にする強力なプラットフォームです。このツールは、Pydantic AI、LangGraph などの最新のフレームワークを統合し、LLM を使用してエージェント開発プロセスを自動化します。 Archon は、他のエージェントを作成および管理する「エージェント」として機能することで、AI エージェントの設計、カスタマイズ、展開における一般的な問題を解決します。",content:["Archon V4 は、開発者にとって強力なツールであるだけでなく、エージェント システムの進化を説明する教育フレームワークでもあります。現在のバージョンでは、Archon は包括的な Streamlit インターフェイスを提供し、AI エージェントの構築プロセスを簡単に管理および操作できるようにします。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/757/content_489790775_122218749218061265_1833532383637266404_n.jpg]","アルコンのビジョン:","Archon は、現代の AI 開発における 3 つの核となる原則を説明しています。","- エージェント的推論: 計画、反復フィードバック、自己評価により、受動的な応答システムの制限が克服されます。","- ドメイン ナレッジの統合: Pydantic AI や LangGraph などのフレームワークを自動化されたワークフローにシームレスに埋め込みます。","- スケーラブルなアーキテクチャ: モジュール設計により、保守性、コストの最適化、倫理的な AI 原則がサポートされます。","問題と解決策の概要","AI が爆発的に普及する時代では、効果的な AI エージェントの構築と管理が非常に重要になります。ただし、このプロセスは多くの場合複雑で、深い知識が必要であり、多くの時間がかかります。","問題:","- AI エージェントの構築の複雑さ: 多くのフレームワーク、ツール、プロセスを習得する必要があります。","- カスタマイズと最適化の難しさ: それぞれの特定の問題に合わせてエージェントを調整するのは困難です。","- 自動化ツールの欠如: エージェントの構築プロセスは依然として手動であり、時間がかかり、エラーが発生しやすくなります。","解決策 - Archon V4:","Archon V4 は、AI エージェントの構築プロセスを自動化するプラットフォームを提供することで、上記の問題を解決するために生まれました。 Archon は「エージェント作成者」として機能し、AI を使用して他の AI エージェントを作成します。","Archon V4 を使用する利点:","- AI エージェント開発のスピードアップ: 時間と労力を大幅に節約します。","- プロセスの簡素化: 誰にとっても使いやすい直感的なインターフェイス。","- 柔軟でカスタマイズ可能: さまざまなフレームワークと構成をサポートします。","- 高度なテクノロジーへのアクセス: エージェント構築に最新の AI 技術を適用します。","Khái niệm và Thuật ngữ","r&otildeを理解するにはArchon V4 についてさらに詳しく説明するには、いくつかの重要な概念と用語を理解する必要があります。","- AI エージェント: 環境を認識し、意思決定を行い、特定の目標を達成するために行動を起こすことができるソフトウェア エンティティ。","- Agenteer: 他の AI エージェント (Archon など) を構築および管理できる AI エージェントの新しい用語。","- Pydantic AI: Pydantic と LangChain に基づく AI エージェントの構築を簡素化する Python フレームワーク。","LangGraph: AI エージェントの複雑なワークフローを作成できるもう 1 つの Python フレームワーク。特にマルチエージェント システムに役立ちます。","- MCP (Model Context Protocol): AI エージェントを Windsurf、Cursor、Cline、Roo Code などの IDE (統合開発環境) と統合できるようにするプロトコル。","- ベクトル データベース (Supabase): RAG (検索拡張生成) に使用される、埋め込みベクトルを保存およびクエリするための特殊なデータベース。","- RAG (検索拡張生成): データベースからの情報検索と大規模言語モデル (LLM) を組み合わせて、正確で有益な応答を生成する手法。","- LLM (Large Language Model): OpenAI モデル (GPT-3、GPT-4)、Anthropic モデル (Claude)、OpenRouter、または Ollama を通じてローカルで実行されるオープン ソース LLM モデルなどの大規模言語モデル。","- Streamlit: 機械学習およびデータ サイエンス アプリケーション用のインタラクティブな Web インターフェイスを構築するための Python フレームワーク。","セットアッププロセス","インストールが成功したら、Streamlit インターフェースの「Intro」タブの指示に従ってセットアップ・プロセスを実行する必要があります。このプロセスには次の手順が含まれます。","- 環境: API キーを構成し、LLM モデルをインストールします。環境変数は workbench/env_vars.json に保存さã
9455‚Œã¾ã™ã€‚","- 重要: バージョン V4 では、環境変数システムが改善され、r&otilde が分割されています。 LLM および埋め込みプロバイダーの場合はクリアです。 UI で環境変数をリセットする必要があります。新しいシステムにより、プロバイダーの切り替えやプロファイルの管理が簡単になります。","- データベース: Supabase ベクトル データベースをセットアップします。","- ドキュメント: Pydantic AI ドキュメントをクロールしてインデックスを作成します。","エージェント サービス: エージェント サービスを開始して AI エージェントを作成します。","- チャット: Archon と対話して AI エージェントを構築します。","- MCP (オプション): AI IDE との統合を構成します。","Streamlit インターフェイスは、手順を段階的にガイドします。明確で直感的。セットアップ プロセスには多くの手順がありますが、非常に短時間で完了します。","システムアーキテクチャ","アーキテクチャの説明:","- Streamlit UI: ユーザーが Archon と対話し、設定を管理し、進行状況を監視し、エージェントとチャットするためのメイン Web インターフェイス。","- グラフ サービス: FastAPI サービスは、エージェント構築プロセス、LLM との対話、ベクトル データベースなど、Archon の主要なロジックを処理します。","- MCP サーバー (オプション): サーバーは MCP プロトコルを実装し、Archon と AI IDE の統合を可能にします。","- Docker コンテナ: Archon デプロイメントに分離された一貫した環境を提供します。コンテナは 2 つあります。","- メイン Archon コンテナ: Streamlit UI とグラフ サービスが含まれます。","- MCP コンテナ: MCP サーバーが含まれます。","- ローカル Python インストール: システムに直接デプロイする方法。完全にインストールされた Python 環境と依存関係が必要です。","- Supabase Vector Database: Pydantic AI ドキュメントの埋め込みベクトルを保存し、RAG に提供します。","- LLM プロバイダー: OpenAI、Anthropic、OpenRouter、または Ollama の大規模な言語モデルを使用して、推論およびコード生成タスクを実行します。","- AI IDE: (MCP 経由) IDE と統合して、シームレスな AI 開発エクスペリエンスを提供します。","この技術文書が、高度な AI エージェント構築ツールである Archon のアーキテクチャと実装の包括的な概要を提供していただければ幸いです。","出典: 8 Sync Dev"]},{id:169,title:"React Plus 献血プログラム開催のお知らせ - 分かち合いの旅、希望の光を灯す",date:"2025å¹´3月28日",category:"ボランティア",type_post:"charity_story",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/169/%E1%BA%A2NH_B%C3%8CA__WEB__7_.png",excerpt:"「一滴の血が命を救う」という信念のもと、React Plusは恒例のボランティア献血プログラムを開催いたします。一人ひとりの思いやりをつなぎ、社会に希望と温かい価値を届ける取り組みです。",gradient:"from-rose-200 via-red-200 to-pink-200",summary:"React Plusは社会貢献活動(CSR)の一環として、年次ボランティア献血プログラムを実施いたします。社員一人ひとりの善意を結集し、医療を必要とする方々へ命の希望を届けるとともに、より良い社会の実現に貢献してまいります。",content:["【CSR活動】React Plus 献血プログラム - 分かち合いの旅、希望の光を灯す","「一滴の血が与えられれば、ひとつの命がつながる」――この言葉は、単なるスローガンにとどまらず、React Plusが創業以来大切に育んできた社会貢献(CSR)の指針そのものです。","4月を迎えるにあたり、当社では毎年恒例となっているボランティア献血プログラムを今年も実施いたします。","献血は、尊い人道支援であると同時に、人と人との心をつなぎ、温かい善意を分かち合う大切な機会です。私たちが提供する一滴の血液は、患者様の尊い命を支えるだけでなく、未来への
9455希望を灯し、地域社会に温もりを広げる力となります。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/748/content_%C4%90%C4%83ng_k%C3%BD_tham_gia_hi%E1%BA%BFn_m%C3%A1u.png]","React Plusでは、一人ひとりの小さな行動が社会に大きな前向きな変化をもたらすと信じています。本プログラムは、相互扶助の精神を体現する場であるとともに、チーム全体の絆を深め、社会へ確かな価値を還元するための重要な取り組みです。","私たちはこれからも、人道支援と共生の精神を大切にし、希望に満ちた社会づくりに向けた活動を継続してまいります。"]},{id:168,title:"2024年に最も「秘密」が暴露される業界4選』:セキュリティ体制の弱体化への警告",date:"2025å¹´3月23日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/168/%E1%BA%A2NH_B%C3%8CA__WEB__46_.png",excerpt:"2024 年には、257 万件の秘密が GitHub 上で公開され、深刻なセキュリティの脆弱性が明らかになりましたが、プログラマーの 99% は依然として是正策を持っていませんでした。最も大きな影響を受けた業界は次のとおりです。IT およびソフトウェア (47.3%)。「迅速に実行し、後で修正する」という文化が原因です。教育 (20.4%)、専門のセキュリティ チームが不足しているため。メディアとエンターテイメント (7.7%)、API キー管理が緩いため。そしてブロックチェーン (3.2%) では、秘密キーを失うと資産が永久に失われることになります。懸念されるのはセキュリティホールだけではなく、主観性です。問題は「いつ攻撃されるか?」ではない。しかし、「行動を起こす前に攻撃されるのを待つべきでしょうか?」",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"2024 年には、257 万件の秘密が GitHub 上で公開され、深刻なセキュリティの脆弱性が明らかになりましたが、プログラマーの 99% は依然として是正策を持っていませんでした。最も大きな影響を受けた業界は次のとおりです。IT およびソフトウェア (47.3%)。「迅速に実行し、後で修正する」という文化が原因です。教育 (20.4%)、専門のセキュリティ チームが不足しているため。メディアとエンターテイメント (7.7%)、API キー管理が緩いため。そしてブロックチェーン (3.2%) では、秘密キーを失うと資産が永久に失われることになります。懸念されるのはセキュリティホールだけではなく、主観性です。問題は「いつ攻撃されるか?」ではない。しかし、「行動を起こす前に攻撃されるのを待つべきでしょうか?」",content:["2024 年だけでも、GitHub 上で 257 万件の秘密が公開されています。この数字の多さは、今日の企業セキュリティの緩いレベルを反映しているだけでなく、データ セキュリティの重要性を私たちは本当に真剣に認識しているのでしょうか?という大きな疑問も引き起こしています。","憂慮すべき事実があります。警告にもかかわらず、プログラマーの 99% が依然として是正措置を講じていないということです。では、原因は何でしょうか?それはセキュリティの知識の欠如、怠惰、それとも単に「まだ棺を見ていない」ためでしょうか?","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/747/content_484093775_949391770714031_6358406957124882023_n.jpg]","分析をさらに詳しく進めると、以下の 4 つの業界が主観性のために最も大きな代償を払っていることがわかります。","1. ITサービスおよびソフトウェア開発 (47.3%)","最高の技術的専門知識を持つ業界として、ソフトウェア会社はデータ保護において先頭に立たã
9455ªã‘ればなりません。しかし、矛盾が生じます。彼らは秘密が最も暴露されるグループであり、全事件の 47.3% を占めています。これは単なる数字ではなく、十分に真剣ではないセキュリティの考え方全体を反映しています。","主な理由の 1 つは、この業界の「迅速に実行し、後で修正する」文化です。プロジェクトの納期が厳しく、顧客が常に機能の変更を要求している場合、セキュリティは優先順位リストの最後に押しやられることがよくあります。","開発者は迅速な API 接続を必要とするため、認証情報をソース コードにハードコードします。システムをテストする必要があったため、データを GitHub にプッシュしましたが、API キーを削除するのを忘れていました。この間違いは個人のプログラマだけでなく、企業の運営方法からも生じています。セキュリティは開発プロセスの必須の部分ではなく、単に「あれば便利」なものです。","2. 教育 (20.4%)","教育業界はセキュリティの議論であまり言及されませんが、実際には、大学、トレーニング センター、オンライン学習プラットフォームはすべて、学生情報、支払い履歴、学習データ、さらには内部研究文書など、大量の個人データを保持しています。デジタル化のレベルが高まるにつれて、API キーとトークンの公開は、システム侵入、データの盗難、組織の評判に深刻な影響を与えるリスクを意味します。","この問題の最大の原因の 1 つは、人員とセキュリティ手順の不足です。テクノロジー企業とは異なり、ほとんどの教育機関には専任のセキュリティ チームがありません。学生管理システムは多くの場合、サードパーティによって開発されたり、厳格なセキュリティ監視を受けずに内部の IT チームによって構築されたりします。 API キーは多くの場合、ソース コードにハードコーディングされているか、保護されていない状態でグループ間で公開されています。","問題は、学生データが漏洩した場合、誰が責任を負うのかということです。多くの場合、システム管理者でさえ自分のデータがずっと前に盗まれた可能性があることに気づいていないため、誰も責任を負いません。","3. メディアとエンターテイメント (7.7%)","デジタル プラットフォームの台頭により、メディア企業やエンターテイメント企業は、広告パートナー、コンテンツ配信システム、ソーシャル メディア プラットフォームと接続するために API への依存度を高めています。しかしそれは、たった 1 つの API キーを公開するだけで、ハッカーが数百万のフォロワーを持つファンページの管理を乗っ取ってから、数億ドンの予算で違法な広告を掲載するまで、システム全体を制御できることも意味します。","この業界の最大の問題の 1 つは、API キーの管理プロセスが十分に厳格ではないことです。多くの企業は依然として認証情報を暗号化せずに構成ファイルに保存しているか、さまざまなサービスに同じ API キーを使用しています。この情報が GitHub で漏洩または盗まれると、ハッカーはそれを使用して一連の関連システムを悪用する可能性があります。","問題は、機密漏洩が発生すると、企業が損失を被るだけでなく、顧客からの信頼も失うことだ。何百万人ものユーザーがいるエンターテイメント プラットフォームがハッカーによって制御されている場合、一夜にしてそのブランド価値を失う可能性があります。これらの損失は簡単には回復できず、ほとã
9455‚“どの企業は手遅れになって初めてそれに気づきます。","4. ブロックチェーン (3.2%)","他の業界とは異なり、ブロックチェーンには非常に危険な特性があります。情報が一度公開されると、失われた資産を回復する方法はありません。ハッカーが暗号通貨ウォレットの秘密キーを入手すると、すべての資産を別のアドレスに転送でき、資金は永久に失われます。返金を提供する銀行はなく、アクセスを回復するためのサポートシステムもありません。","では、なぜ未だに多くのブロックチェーンプロジェクトが秘密を明らかにしているのでしょうか?その理由の 1 つは、このエコシステムがまだ新しすぎて、適切なセキュリティ標準が欠如しているという事実にあります。クリア。多くの暗号通貨スタートアップはセキュリティに十分な投資をせずにソフトウェアを開発しており、プログラマーは秘密鍵をパソコンに保存したり、GitHub に直接プッシュして削除するのを忘れたりしています。スマート コントラクト コードの小さなエラーがハッカーによって悪用され、システム内の資産が流出する可能性があります。","ブロックチェーン開発のスピードの速さにより、たった 1 行のコードの誤りにより、プロジェクトはわずか一晩で数百万ドルを失う可能性があります。しかし、悲しいことに、多くの企業がまだこの教訓を学んでいないということです。","5. 私のビジネスはいつ攻撃されるのでしょうか?","ほとんどの企業や組織は、コストを支払って初めてセキュリティの重要性を認識します。しかし、一度秘密が明らかになると修復の可能性はほとんどなく、データが盗まれ、アカウントが乗っ取られ、システムが危険にさらされてしまいます。これは大きな疑問を引き起こします:なぜ予防可能な問題が再発し続けるのでしょうか?","原因は主観的な心理にあるのか?それとも運用上の考え方に問題があるのでしょうか?それとも従来のセキュリティ対策への依存が原因でしょうか?","この話には 1 つの共通点があります。ハッカーはデータを盗むのに優れている必要はありません。必要なのは、間違いを犯すことだけです。そして最も危険なのは秘密が暴露されることではなく、事件が起きたときに沈黙することだ。警告を受けてもなお行動を起こさない場合、問題はもはやハッカーにあるのではなく、セキュリティに対する私たちの見方にあります。","したがって、問題は「私のビジネスはいつ攻撃されるのか?」ということではありません。しかし、「攻撃されるまで行動するのを待ったほうがいいでしょうか?」","出典: WhiteHub セキュリティ コミュニティ"]},{id:167,title:"Python コードをレベルアップする",date:"2025å¹´3月17日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/167/%E1%BA%A2NH_B%C3%8CA__WEB__44_.png",excerpt:"Python はそのシンプルさと強力さで際立っており、プログラマーがソース コードを効果的に作成するのに役立ちます。デコレーター、コンテキスト マネージャー、メタクラスなどの高度な機能は、複雑なプロジェクトのコードの最適化と管理に役立ちます。デコレータは関数の動作を拡張し、コンテキスト マネージャはリソースを自動的に管理し、メタクラスはクラスの作成方法を制御します。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"Python はそのシンプルさと強力さで際立っており、プログラマーがソース コードを効果的に作成するのに役立ちます。デコレーター、コンテキスト マネージャー、メタクラスなどの高度な機能は、複雑なプロジェクトのコードの最適化とç®
9455¡ç†ã«å½¹ç«‹ã¡ã¾ã™ã€‚デコレータは関数の動作を拡張し、コンテキスト マネージャはリソースを自動的に管理し、メタクラスはクラスの作成方法を制御します。",content:["1. Python の高度な機能の概要","Python はそのシンプルさと読みやすさで有名ですが、同時にプログラマーが複雑で効率的なコードを作成できるようにする多くの強力な機能も提供します。デコレータ、コンテキスト マネージャ、メタクラスなどの高度な機能は毎日使用されるわけではありませんが、大規模で複雑なプロジェクトやソース コードの最適化が必要な場合には非常に価値があります。","- デコレーター: 元のコードを直接変更せずに、関数またはクラスの動作を動的に変更または拡張するのに役立ちます。ロギング、アクセス制御、パフォーマンス測定、その他多くのタスクに一般的に使用されます。","- コンテキスト マネージャー: リソースのセットアップと解放を自動的かつ安全に管理し、エラーが発生した場合でもリソースが適切に解放されるようにします。典型的な例は、ファイルの操作、データベースへの接続、ロックの管理などです。","- メタクラス: 「クラスのクラス」 - クラスの作成プロセスを制御し、クラスの定義と動作のカスタマイズを可能にします。メタクラスは強力ですが複雑でもあり、フレームワーク、ORM (オブジェクト リレーショナル マッピング)、または複雑なメタデータ システムの構築によく使用されます。","2. デコレータ - 関数の動作を動的に変更する","2.1 デコレータの概念","Python のデコレーターは、別の関数を引数として受け取り、その関数に機能を追加して、変更された関数を返す特別な関数です。デコレータは、関数定義の上に配置された @decorator_name 構文を使用してデコレータを適用します。","2.2 サンプルコードと実践例","例: パラメータ付きのデコレータ","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/746/content_481779448_122214059390061265_2264508157222288233_n.jpg]","説明する:","retry(max_retries) はデコレータ ファクトリであり、実際のデコレータ (デコレータ関数) を返します。","@retry(max_retries=3) は、パラメータ max_retries = 3 のデコレータを適用します。","unreliable_function sẽ được thá»­ lại tối đa 3 lần nếu có lỗi.","2.3 Lợi ích và lưu ý khi sá»­ dụng Decorators","利点:","- コードの再利用: デコレータ ロジックはさまざまな関数に適用できます。","- コードの重複を減らす: 一般的なタスク (ロギング、認証など) のために反復的なコードを記述することを避けます。","- コードは読みやすく保守しやすい: 横断的な関心事を関数のメイン ロジックから分離します。","- 機能を簡単に拡張: デコレータを追加または削除することで、機能を簡単に追加または削除できます。","注記:","- r&otilde;を理解する予期しないエラーを回避するためにデコレータがどのように機能するか。","- デコレータを過剰に使用したり、不適切に使用したりすると、コードのデバッグがより困難になる可能性があります。","- デコレーターの名前は r&otilde; にする必要があります。その機能を明確に説明します。","3. コンテキスト マネージャー - リソースを安全かつ効果的に管理します","3.1 コンテキストマネージャーの概念","Python のコンテキスト マネージャーは、コード ブロック (ステートメント付き) の開始と終了で実行されるアクションを定義できるプロトコルです。コンテキスト マネージャーは、リソース (ファイル、ネットワーク接続、ロックなど) が正しく確立され、解放されることを保証します。これは、エラーを処理する場合に特に重要です。","3.2 サンプルコードと実践例","例 1: ファイルを操作するためのコンテキスト マネージャー","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/745/content_480501274_122214059420061265_7544969630331331842_n.jpg]","説明する:",'open("my_file.txt", "r") はコンテキスト マネージャー (ファイル オブジェクト) を返します。',"with ... as file: with ブロックはこのコンテキスト マネージャーを使用します。","with ブロックが開å
9455§‹ã•れると、コンテキスト マネージャー (file) の __enter__ メソッドが呼び出されます (file の場合、ファイルを開きます)。","with ブロックが終了すると (正常かエラーかに関係なく)、コンテキスト マネージャーの __exit__ メソッドが呼び出されます (ファイルの場合は、ファイルが閉じられます)。","例 2: 独自のコンテキスト マネージャーを作成する","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/744/content_480494457_122214059474061265_180575169274630318_n.jpg]","説明する:","ThreadLock クラスは、__enter__ と __exit__ を定義しているため、コンテキスト マネージャーです。","__enter__ は with ブロックの先頭で呼び出され、セットアップ (この場合はロックの取得) を実行し、値 (ロック オブジェクト) を返すことができます。","__exit__ は with ブロックの最後で呼び出され、リソースを解放します (ロックの解放)。 exc_type、exc_val、exc_tb には、with ブロックでエラーが発生した場合のエラー情報が含まれます。","3.3 コンテキストマネージャーを使用する場合の利点と注意事項","利点:","- リソース管理を確実にする: リソース (ファイル、接続、ロックなど) を自動的にセットアップおよび解放します。","- コードr&otilde;明確で読みやすい: with ステートメントを使用すると、リソース管理の観点からコードが理解しやすくなります。","- 安全なエラー処理: with ブロックでエラーが発生した場合でも、リソースが確実に解放されます。","- リソース管理ロジックの再利用: Context Manager はさまざまな場所で再利用できます。","注記:","Thiết kế __enter__ và __exit__ cẩn thận để đảm bảo tài nguyên được quản lý đúng cách.","r&otilde;を理解する__exit__ がエラーを処理する方法 (パラメーター exc_type、exc_val、exc_tb)。","4. メタクラス - 「クラスのクラス」およびクラス作成プロセスのカスタマイズ","4.1 メタクラスの概念","メタクラスは Python の高度な概念であり、「クラスのクラス」と呼ばれることがよくあります。クラスがオブジェクト (インスタンス) の作成方法を定義するのに対し、メタクラスはクラスの作成方法を定義します。メタクラスを使用すると、クラスの作成プロセスに介入して深くカスタマイズし、プロパティ、メソッド、さらには継承時のクラスの動作を制御できます。","4.2 サンプルコードと実践例","例: クラス属性を自動的に追加する単純なメタクラス","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/742/content_484415280_122214059522061265_4825465154754004330_n.jpg]","説明する:","AutoAttributeMeta は、type (デフォルトのメタクラス) を継承するメタクラスです。","__new__(mcs, name,bases, attrs) は、クラスの作成前に呼び出される、メタクラスの特別なメソッドです。","mcs: はメタクラスそのもの (AutoAttributeMeta) です。","name: 作成されたクラス (MyClass) の名前。","ベース: 継承された親クラスのタプル。","attrs: クラスで定義された属性とメソッドを含む辞書。","__new__ では、「created_at」属性を attrs ディクショナリに追加し、次に super().__new__ を呼び出して実際にクラスを作成します。","class MyClass(metaclass=AutoAttributeMeta): AutoAttributeMeta をメタクラスとして使用して MyClass を宣言します。","例 2: 命名規則 (命名規則) を強制するメタクラス","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/743/content_483922399_122214059588061265_1450099743983318264_n.jpg]","説明する:","NamingConventionMeta メタクラスは、クラスのプロパティを検査します。","プロパティが validate_ で始まるが関数/メソッドではない場合、TypeError が発生します。","このメタクラスは、検証メソッドの命名規則を強制します。","4.3 メタクラスを使用する場合の利点と注意事項","利点:","- クラス生成の制御: クラス定義にロジックや制約を追加して、クラスの作成方法をカスタマイズします。","- ルールと規約を強制する: クラスのコーディング規約、デザイン パターン、またはフレームワーク固有のルールを強制します。","- 動的クラスの作成: メタデータまたは構成に基づいて動的クラスを作成します。","- フレームワークと ORM の構築: メタクラスは、ORM、依存関係注入フレームワークなどの複雑なシステムの基盤です。","注記:","- 複雑でわかりにくい: メタクラスは、Python の最も複雑な機能の 1 つです。","- 乱用は有害になる可能性があります。メタクラスは絶対に必要な場合にのみ使用する必要があります。コードの理解と保守が困難になる可能性があるため、乱用は避けてください。","- デバッグが難しい: メタクラスに関連するエラーはデバッグが難しい場合があります。","- 高度な抽象化: メタクラスは高度な抽象化レベルで動作するため、Python クラスの動作メカニズムを深く理解する必要があります。","5. ベストプラクティスと重要な注意事項","高度な機能を使用する場合:","- デコレーター: 補助機能 (ロギング、キャッシュ、認可など) を複数の関数に一貫して追加する必要がある場合に使用します。","- コンテキスト マネージャー: ライフサイクルを賢く管理する必要があるリソースを操作する場合に使用します。クリアかつ安全 (ファイル、接続、ロック)。","- メタクラス: フレームワーク、ORM、複雑なメタデータ システムを構築する場合、または階層化プロセスを深いレベルで制御する必要がある場合に使用します。","- コードr&otilde;明確で完全なコメント: 高度な機能を使用する場合でも、変数、関数、クラスの説明、コメントに r&otilde; という名前を付けることで、コードを常に読みやすい状態に保ちます。明確な目的と用途。","- 徹底的にテストする: 高度な機能は複雑になる場合があるため、特にメタクラスを使用する場合は、コードが期待どおりに動作することを確認する単体テストを作成します。","- 複雑さを考慮する: 高度な機能が実際に問題を効果的に解決し、長期的にはコードの保守性が向上する場合には、高度な機能を使用します。 「見た目」のためだけに使用したり、より簡単な解決策がある場合には使用しないでください。","- 学んで実践する: これらの機能をマスターするには、ドキュメントを読み、例を確認し、小規模なプロジェクトでこれらの機能を使用してコーディングを練習して慣れてください。","6. 参考文献と学習リソース","- Python ドキュメント - デコレーター: https://docs.python.org/3/glossary.html#term-decorator","- Python ドキュメント - コンテキスト マネージャー: https://docs.python.org/3/library/contextlib.html","- Python ドキュメント - メタクラス: https://docs.python.org/3/reference/datamodel.html...","- Real Python による「Python のメタクラス入門」: https://realpython.com/python-metaclasses/","- 「Python コンテキスト マネージャーについて」Martin Heinz 著: https://marthinz.dev/blog/53","出典: 8 Sync Dev"]},{id:165,title:"QA プロセスの効率化に役立つ 10 の AI テスト ツール",date:"2025å¹´3月7日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/165/%E1%BA%A2NH_B%C3%8CA__WEB__4_.png",excerpt:"AI テスト ツールは、機能テスト、回帰テスト、パフォーマンス テスト、ユーザビリティ テストなど、さまざまなニーズに合わせてテストの自動化と効率を向上させることを目的としており、アジャイル チームとビジネス要件の両方に対å¿
9455œã—ます。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"AI テスト ツールは、機能テスト、回帰テスト、パフォーマンス テスト、ユーザビリティ テストなど、さまざまなニーズに合わせてテストの自動化と効率を向上させることを目的としており、アジャイル チームとビジネス要件の両方に対応します。",content:["1. Testim","Testim は、生成 AI と機械学習を使用してテストの作成とメンテナンスを加速する、AI を活用したテスト自動化ツールです。このツールは、特にアジャイル環境における Web およびモバイル アプリケーションに最適です。主な機能には、柔軟なテスト環境、クロスブラウザ Web テスト、モバイル テスト、CI/CD 統合、コードなしの Salesforce テストなどがあります。このツールはデスクトップとモバイルのブラウザをサポートしています。","2. Applitools","Applitools はビジュアル AI テストを専門とし、特に電子商取引プラットフォームや金融サービスなどのアプリケーションにおいて、デバイス間での UI の一貫性を確保します。主な機能には、エンタープライズ グレードの AI、コードレスまたは AI 生成のテスト ケース生成、任意のインターフェイス (アプリ、コンポーネント、PDF) のテスト、Storybook リグレッション用の UI コンポーネント テストなどがあります。","3. Functionize","Functionize は、QA ライフサイクル全体を自動化する AI を活用したテスト プラットフォームです。生成 AI と機械学習を使用してテストを作成、実行、維持し、変更に適応し、手動更新を削減します。主な機能には、Architect (AI 主導のテストを作成および維持するための Chrome プラグイン)、TestAGENTS (ユーザー ジャーニーからテストを生成し、根本原因分析を提供する AI システム)、統合された視覚的検証、ブラウザーのバリエーションへの適応、テスト作成のための自然言語処理が含まれます。","4. Mabl","Mabl は、開発チーム全体、特にアジャイル Web アプリケーション開発全体のアクセシビリティをサポートするように設計された AI を活用したテスト自動化ツールです。このツールは、機械学習を使用して変更を検出し、幅広いテストをカバーします。主な機能には、ローコード/JavaScript UI テストの作成 (SVG、2FA、電子メール、PDF を含む)、モバイル UI テスト (ローコード/Appium)、API テストの統合 (コード エディタ/Postman インポート)、Web アクセシビリティのテストとデバッグ、既存のテストと SLA を使用した効果的なブラウザ/API 負荷テストが含まれます。","5. Test.ai","Test.ai は、モバイルおよび Web アプリケーションの自動機能テストと回帰テストのための AI を活用したテスト ソリューションを提供します。機械学習を使用してテストを作成および維持するため、手動の労力が軽減され、精度が向上するため、頻繁に更新されるアプリケーションに適しています。主な機能には、AI 主導の機能テストと回帰テスト、アジャイル ワークフローのローコード自動化、統合されたアクセシビリティ テスト、頻繁なリリースのための統合ブラウザと API テスト プラットフォーム、チーム コラボレーションのための既存のツールとの統合が含まれます。","6. Sauce labs","Sauce Labs は、最適化されたテストの実行とメンテナンスのための AI 機能を備えた包括的なテスト自動化プラットフォームです。クロスブラウザー、モバイル、負荷テストなど、さまざまなテストのニーズをサポートしており、大規模なエンタープライズ アプリケーションに最適です。主な機能には、テストの作成と実行を合理化するための AI 主導の SaaS テスト、早期フィードバックによる API 品質保証、設計準拠のためのビジュアル テスト、問題を迅速に解決するためのエラー レポート/デバッグ ツールが含まれます。","7. Tricentis Tosca",'Trice
9455ntis Tosca sử dụng AI và máy học để tự động hóa kiểm thử trên web, thiết bị di động và API, chủ yếu trong môi trường doanh nghiệp. Các tính năng chính bao gồm Tosca Copilot (trợ lý AI tạo ra để tự động hóa và tối ưu hóa kiểm thử), tự động hóa các tác vụ lặp đi lặp lại, Vision AI (để kiểm thử ứng dụng phức tạp), tạo testcase từ mô hình thiết kế và quyết định phát hành "go/no-go" dựa trên dữ liệu dựa trên các ưu tiên và rủi ro kinh doanh.',"8. TestCraft","TestCraft は、ローコードの AI を活用したテスト自動化プラットフォームで、Web アプリケーションをテストするプログラミング スキルが限られているチームに最適です。 AI がテスト スクリプトを自動的に更新し、メンテナンスを軽減します。主な機能には、複数のフレームワークと言語にわたる自動テスト生成、AI 主導のテスト スクリプト生成、統合されたアクセシビリティの問題の特定と推奨、AI テストのアイデアを自動テストに変換することによるテスト プロセスの合理化が含まれます。","9. Keysight Eggplant Test","Keysight Eggplant Testは、複数のプラットフォームやデバイスにわたる複雑なアプリケーションの包括的な機能、パフォーマンス、ユーザビリティをテストするためのAI主導のツールです。このツールの AI は、アプリケーションの変更に応じてテストを適応させます。主な機能には、CI/CD 統合 (Jenkins、Azure DevOps、GitHub Actions)、さまざまな環境 (ブラウザー、オペレーティング システム、デバイス) のサポート、シンプルなデプロイメント ツールのセットアップ、自動回帰テスト、特に応答性の高い UI や複雑なエコシステムの精度と拡張性を最適化する AI を活用したインテリジェントなテスト自動化が含まれます。","10. Perfecto","Perfecto は、複数のデバイスやブラウザーでモバイルおよび Web アプリケーションをテストするための AI を活用したプラットフォームで、エンドツーエンドの機能、パフォーマンス、およびビジュアル テスト機能を提供します。主な機能には、オープンソース ツール (JMeter、Selenium など) を使用した拡張パフォーマンス テスト、Android エミュレータと iOS エミュレータの統合、仮想デバイスと物理デバイスのハイブリッド テスト、UX 負荷テスト (最大 200 万の仮想ユーザー)、強力なアサーションとパフォーマンス/機能の統合による開発から運用までの API テスト/モニタリングが含まれます。"]},{id:162,title:"AI はエネルギーを大量に消費しますが、DeepSeek はそれを変えることができます",date:"2025年2月10日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/162/%E1%BA%A2NH_B%C3%8CA__WEB__39_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/162/deepseek.png",excerpt:`DeepSeek は、自社の AI モデルは競合他社よりも消費電力が少なく、AI データセンターの負担軽減に貢献すると主張しています。 DeepSeek の効率的なトレーニング方法では、GPU の使用時間が減り、コストが大幅に削減されるため、「エネルギーを貪る者」にならずに AI は進化できるのかという重要な疑問が生じています。
9456
9457DeepSeek のアプローチが本当にリソースを最適化すれば、AI インフラストラクチャにとってより持続可能な道が開かれる可能性があります。ただし、このモデルの環境への影響はまだ不明です。クリア。一方で、エネルギー消費の削減は、AI 業界の二酸化炭素排出量の制限に役立つ可能性があります。一方で、ジェボンズのパラドックスによれば、テクノロジーがより効率的かつ安価になるにつれて、需要が増加し、データセンターが拡張され、以前よりもさらに多くのエネルギーを消費する可能性があります。
9458
9459DeepSeek は本当に AI による環境への影響を軽減するターニングポイントとなるのでしょうか、それとも増え続けるエネルギー消費の輪の中の単なる一つのつながりなのでしょうか?答えを検証するにはまだ時間がかかります。`,gradient:"from-blue-200 via-purple-200 to-pink-200",summary:`DeepSeek は、自社の AI モデルは競合他社よりも消費電力が少なく、AI データセンターの負担軽減に貢献するとä¸
9459»å¼µã—ています。 DeepSeek の効率的なトレーニング方法では、GPU の使用時間が減り、コストが大幅に削減されるため、「エネルギーを貪る者」にならずに AI は進化できるのかという重要な疑問が生じています。
9460
9461DeepSeek のアプローチが本当にリソースを最適化すれば、AI インフラストラクチャにとってより持続可能な道が開かれる可能性があります。ただし、このモデルの環境への影響はまだ不明です。クリア。一方で、エネルギー消費の削減は、AI 業界の二酸化炭素排出量の制限に役立つ可能性があります。一方で、ジェボンズのパラドックスによれば、テクノロジーがより効率的かつ安価になるにつれて、需要が増加し、データセンターが拡張され、以前よりもさらに多くのエネルギーを消費する可能性があります。
9462
9463DeepSeek は本当に AI による環境への影響を軽減するターニングポイントとなるのでしょうか、それとも増え続けるエネルギー消費の輪の中の単なる一つのつながりなのでしょうか?答えを検証するにはまだ時間がかかります。`,content:["AI は「エネルギーを貪る者」ですが、DeepSeek はそれを変えることができます","DeepSeek は、自社の AI モデルが使用する計算能力が Meta の Llama 3.1 などの競合他社よりもはるかに少ないコンピューティング能力を備えていると主張しており、環境に重大な影響を与えています。これにより、エネルギーを大量に消費する AI データセンターの負担とその汚染が軽減される可能性があるが、特に他社のデータセンター拡張計画を考慮すると、DeepSeek のアプローチが AI の環境への影響に真の変革をもたらすかどうかを判断するのはまだ時期尚早である。","「この問題には選択肢があります。」","専門家らによると、DeepSeek の効率的な AI トレーニング方法は、Meta の Llama 3.1 などのモデルよりも GPU 使用時間が少なく、コストが大幅に低いため、AI が「エネルギーを貪る者」である必要がないことを証明しています。同社の V3 モデルと R1 モデル、特に後者のアプリストアでの急速な成功は業界を震撼させ、Nvidia の株価にさえ影響を与えました。 DeepSeek の「バックエンドロスレス」戦略は、モデル部分を選択的にトレーニングし、トレーニングと推論の両方でエネルギーを節約します (キーと値のキャッシュなどの技術を通じて)。彼らのモデル (トレーニング データを除く) のオープンソースの性質により、コラボレーションと透明性が促進され、AI 開発の民主化が可能になる可能性があります。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/734/content_deepseek-990x600-1737788002-17-5119-6399-1737788112.png]","考慮すべき両刃の剣がある","大規模なリソースを必要としない高度な AI を実証できる DeepSeek の可能性は、より持続可能なインフラ計画につながり、大規模な AI ラボによるより効率的なアルゴリズムの開発を促す可能性があります。 Rystad Energy のような一部の企業は、DeepSeek のエネルギー主張に依然として懐疑的ですが、その想定される効率により、データセンターのエネルギー消費が大幅に削減され、再生可能エネルギー源が他の分野に解放される可能性があります。しかし、ジェボンズのパラドックスは、効率の向上は AI の使用の増加にもつながり、環境上の利点を相殺する可能性があることを示唆しています。","Ngay cả khi có khả năng giảm năng lượng AI, vẫn có lo ngại rằng chi phí thấp hơn có thể khuyến khích mở rộng quy mô lớn các trung tâm dữ liệu, có khả năng phủ nhận các lợi ích về hiệu quả. DeepSeek を使用して、どのような機能を実行できるかを確認してください: Trung Quốc phụ Hoa 
9463Kỳ tiếp tục sử dụng nhiên liệu hóa thạch, bao gồm cả khí đốt, để cung cấp năng lượng cho trung tâm よりも早く、あなたのことを考えてください。データセンターも大量の水を消費します。 Trong khi các trung tâm dữ liệu truyền thống trước đây đã kiểm soát được nhu cầu điện mặc du khối lượng công việc ngày càng tăng、thì những tiến bộ của AI đã thúc đẩy mức tiêu thụ năng lượng tăng đột biến.将来のエネルギー使用を予測することは依然として困難です。"]},{id:157,title:"A.I ビジネス活動 Nvidia のブームが米国と中国の緊張と衝突",date:"2024年12月26日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/157/%E1%BA%A2NH_B%C3%8CA__WEB__37_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/157/Product-photo20240515141945.jpg",excerpt:"Nvidia は各国と協力して AI を開発しようとしていますが、米国の新たな AI チップ輸出規制によって制限されるリスクに直面しており、予想される 100 億ドル以上の世界収益に影響を与えます。バイデン政権は同盟国を優先し敵対者を制限する管理枠組みを提案しており、エヌビディアの拡大計画は潜在的に困難なものとなっている。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"Nvidia は各国と協力して AI を開発しようとしていますが、米国の新たな AI チップ輸出規制によって制限されるリスクに直面しており、予想される 100 億ドル以上の世界収益に影響を与えます。バイデン政権は同盟国を優先し敵対者を制限する管理枠組みを提案しており、エヌビディアの拡大計画は潜在的に困難なものとなっている。",content:["NvidiaはAI開発で各国との提携を検討しているが、米国のAIチップ輸出規制により、特にブータンのような国ではこうした取り組みが妨げられる可能性がある。同社は今年の海外売上高が100億ドル以上に達すると予想しているが、バイデン政権はその成長を制限する可能性のある規制を推進している。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/708/content_105d2162705t6762l9-1733781271548.gif]","8月初旬、ブータンの国王、ジグメ・ケサル・ナムゲル・ワンチュクはシリコンバレーのNVIDIA本社を訪問し、NVIDIAの最高グローバルビジネス責任者であるジェイ・プリ氏から、NVIDIAのデータセンターとチップへの投資とブータンの水力発電資源を組み合わせてAIを開発する取り組みについて話を聞いた。これは、Nvidia が AI の推進を目的として、過去 2 年間にわたって国家指導者らと行った多くの議論のうちの 1 つです。大規模な。しかし、米国政府は、A.I. の販売が増加することを懸念しています。 Nvidiaの世界的な存在感はライバルに力を与える可能性があり、バイデン政権はAIを管理する規制の強化を検討している。チップの販売。例外として。","提案された枠組みでは、米国の同盟国がAIを購入できるようになる。チップには制限がないが、競合他社は完全に排除され、他国には米国との戦略的関係に基づいて割り当てが割り当てられる。これはエヌビディアの世界展開計画を脅かす可能性があり、最高経営責任者(CEO)のジェンスン・ファン氏は同社が米国以外の国から100億ドル以上の収益を生み出すと予想している。しかし、サウジアラビア、マレーシア、ブータンなどの国はAIの影響を受ける可能性がある。競争。米国と欧州の承認済みクラウド サービス プロバイダーと連携する必要があるため、米国と中国の間で連携する必要があります。 Nvidia はこれらの規制を緩和するようロビー活動を行っていますが、もう手遅れかもしれません。"]},{id:155,title:"データに焦点を当てる: 2024 年のマイルストーンと 2025 年のトレンドに関するフィンテック リーダー",date:"2024年12月13日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/155/%E1%BA%A2NH_B%C3%8CA__WEB__30_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/155/shutterstock_1407910778.jpg",excerpt:"Fintech Times は、金融テクノロジーの未来を形作る上でデータが果たす極めて重要な役割について考察しています。企業が不確実な時代を乗り切るために取り組む中で、コラボレーション、データ機能、データ インフラストラクチャの最新化が鍵となります。データ サイロを打破し、AI と予測分析を活用し、外部データ ソースを使用することは、イノベーションを推進し、意思決定を改善し、競争上の
9463優位性を獲得するために重要です。金融業界では、業務の最適化、顧客エクスペリエンスの向上、変化するデジタル環境におけるリスクの軽減を目的として、これらの戦略の採用が増えています。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"Fintech Times は、金融テクノロジーの未来を形作る上でデータが果たす極めて重要な役割について考察しています。企業が不確実な時代を乗り切るために取り組む中で、コラボレーション、データ機能、データ インフラストラクチャの最新化が鍵となります。データ サイロを打破し、AI と予測分析を活用し、外部データ ソースを使用することは、イノベーションを推進し、意思決定を改善し、競争上の優位性を獲得するために重要です。金融業界では、業務の最適化、顧客エクスペリエンスの向上、変化するデジタル環境におけるリスクの軽減を目的として、これらの戦略の採用が増えています。",content:["データに焦点を当てる: 2024 年のマイルストーンと 2025 年のトレンドに関するフィンテック リーダー","Fintech Times は、金融テクノロジーにおける過去 1 年を振り返り、来年を展望しています。彼らは、業界の重要な要素であるデータに焦点を当てています。データは、不正行為の防止からより適切な意思決定に至るまで、イノベーションを推進します。 2024 年にはデータの新しい使用方法が見られましたが、将来的にはシステムの更新と新しい規制への適応が必要になります。","コラボレーションと財務戦略","Pleo の最高財務責任者である Soren West-Lonning 氏は、不確実な時代を乗り切るにはコラボレーションとデータ機能の重要性を強調しました。財務チームは財務計画とリスク計画を優先し、部門間で連携し、AI ツールを活用してプロセスを最適化する必要があります。さらに、企業は競争力を維持するために、強力なデータとビジネス洞察力を備えた人材の採用とスキルアップに重点を置く必要があります。","データサイロを打破する","Workday の金融サービス業界ストラテジストである Viren Patel 氏は、俊敏性と効率性を向上させるために、金融サービス業界のデータサイロを打破することの重要性を強調しています。同氏は、AI と予測分析がワークフローの高速化、貴重な洞察の発見、市場の変化への迅速な対応に役立つと主張しています。金融業界は新しいテクノロジーの導入に遅れをとっていますが、AI のメリットが増大しているため、2025 年までに急速な導入が進むと考えられます。","データを活用して不正行為と戦う","Feedzai の製品戦略担当上級副社長である Andy Renshaw 氏は、データサイロを破壊するだけでなく、ロックされていないデータを効果的に活用することの重要性を強調しています。同氏は、フィンテックにおける外部データ ソースの重要性が高まっていることを強調し、組織が従来のトランザクション データを超えた洞察を提供する新しく強力なデータ ソースを求めており、2025 年のさらなる進歩を予測しました。","データインフラストラクチャを最新化する","SBS のデータ戦略責任者である Dana Lunberry 氏は、データを効果的に活用するためにデータ インフラストラクチャを最新化する必要性を強調しました。銀行はこれまで、システムやプロセスが古いためにデータの活用に苦労していました。しかし、AI 主導のツールを含む最近の技術の進歩により、金融機関はデータの力を活用できるようになりました。最新のデータ インフラストラクチャに投資することで、銀行は顧客エクスペリエンスを向上させ、リスク管理を最適化し、コンプライアンスを自動化し、データに基づいたプロアクティブな意思決定を行うことができます。この発展により、銀行はレガシーデータを革新的な製品やサービスに変換し、大きな競争上の
9463優位性を獲得できるようになります。"]},{id:153,title:"フィンテックはビジネスをどう変えるのか?",date:"2024年11月25日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/153/%E1%BA%A2NH_B%C3%8CA__WEB__11_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/153/fintech.jpg",excerpt:`金融テクノロジー (Fintech) は、テクノロジーを使用して従来のサービスを改善し、新しい金融商品を作成する、金融分野で進行中の革命です。
9464
9465フィンテックは、日常の支払いから投資まで、お金の管理方法を変えてきました。 Fintech のおかげで、金融取引はこれまで以上に高速、便利、簡単になりました。フィンテック企業は、ユーザーが個人およびビジネスの財務をより効果的に管理できるようにする新しいアプリケーション、プラットフォーム、サービスを開発しました。`,gradient:"from-blue-200 via-purple-200 to-pink-200",summary:`金融テクノロジー (Fintech) は、テクノロジーを使用して従来のサービスを改善し、新しい金融商品を作成する、金融分野で進行中の革命です。
9466
9467フィンテックは、日常の支払いから投資まで、お金の管理方法を変えてきました。 Fintech のおかげで、金融取引はこれまで以上に高速、便利、簡単になりました。フィンテック企業は、ユーザーが個人およびビジネスの財務をより効果的に管理できるようにする新しいアプリケーション、プラットフォーム、サービスを開発しました。`,content:["金融テクノロジー (フィンテック) は、金融機関の効率的な運営を支援する新しい革新的なテクノロジー ツールおよびプラットフォームです。 Fintech は、こ​​れらの組織がデータを活用し、プロセスを改善し、より良いサービスを提供するのに役立ちます。","金融テクノロジーとは何ですか?","金融テクノロジー (フィンテック) 企業は、クラウド テクノロジーとオンライン サービスに大きく依存しています。彼らは、支払い、貯蓄、投資などの従来の金融サービスを改善するテクノロジー ソリューションの提供に重点を置いています。 Fintech は、データとプロセスをより効率的に管理する必要性から生まれ、通常は支払いにモバイル デバイス (例: Square) を使用します。今日、フィンテックはチャットボットからプロセス自動化に至るまで、多くの分野で普及しています。","なぜ金融テクノロジー業界はこれほど急速に成長しているのでしょうか?","金融テクノロジー (フィンテック) 業界は力強い成長を遂げており、ユーザー数は 2024 年までに 35 億人を超えると予測されています。この成長は、いくつかの重要な要因によって推進されています。","- 時代遅れの古いシステム: 従来の銀行や金融機関は、テクノロジー システムが時代遅れであり、顧客や市場の増大するニーズに対応できないため、困難に直面しています。","- 競争の激化: 金融分野における新たな規制の出現と多額の投資資本により、この業界の「競争の場」は完全に変化しました。","- 要求の厳しい顧客: 顧客は、利便性、パーソナライゼーション、スピードを備えた Netflix のようなサービス エクスペリエンスをますます求めています。","こうした変化に適応するには、金融会社は次のことを行う必要があります。","- イノベーション: 新しいテクノロジーを適用して作業プロセスを改善し、業務効率を向上させます。","- 顧客中心: 顧客のニーズと期待を満たす優れた顧客エクスペリエンスを作成します。","- 効率の向上: コストを削減し、生産性を向上させ、運用を最適化します。","つまり、金融会社が今日の競争環境に適応し、成長する上でテクノロジーは重要な役割を果たしています。 AI、クラウド、ビッグデータã
9467ªã©ã®ãƒ†ã‚¯ãƒŽãƒ­ã‚¸ãƒ¼ã‚’活用することで、これらの企業は競争力を向上させ、持続可能な成長を維持することができます。","金融テクノロジーはビジネスをどのように変えるのでしょうか?","金融テクノロジー (フィンテック) 業界は、企業の財務管理方法に革命をもたらしています。フィンテックのおかげで、大企業でも中小企業でも、これまで大企業しか利用できなかった最新の複雑な金融ツールにアクセスできるようになりました。","具体的には、フィンテックは企業に次のようなメリットをもたらします。","強力な財務ツールへの素早いアクセス: 高速インターネット接続とクラウドなどのテクノロジーのおかげで、企業はプロフェッショナルな財務ソフトウェアを簡単に使用して財務、会計、その他の活動を管理できます。","比類のないビジネス インテリジェンス: Fintech は、リアルタイムのビジネス情報を表示する直観的なダッシュボードを企業に提供します。そのおかげで、企業は新しい機会を迅速に把握し、タイムリーなビジネス上の意思決定を行うことができます。","顧客のアクセシビリティと利便性: Fintech は、企業が顧客にオンラインで便利かつ迅速な金融サービスを提供するのに役立ちます。顧客はいつでもどこでもモバイルデバイスを通じて金融取引を行うことができます。","今日、フィンテックによって破壊されている業界は何ですか?","今日のフィンテック企業は、決済処理、資産管理、暗号通貨などの業界に革命をもたらしています。ここでは、企業がフィンテックをどのように利用してサービスを改良し強化し、顧客へのサービスを向上させているかを見ていきます。","1. フィンテックは支払い処理に革命をもたらしています。","決済処理業界は、取引の利便性と安全性に対する消費者の需要の高まりに応え、テクノロジーのおかげで大きな変化を遂げています。","2. フィンテックは代替融資を破壊しています。","Buy Now Pay Later (BNPL) のような代替融資サービスは、借り入れに革命をもたらしました。シンプルかつ迅速な手続きにより、消費者、特に若者にとってより柔軟な選択肢が広がります。 BNPL市場は力強く成長しており、2026年までに9,950億ドルに達すると予想されています。","3. 金融テクノロジーは投資分野でその地位を確立しています。","ロボアドバイザーとしても知られる自動投資サービスは、機械学習アルゴリズムと大量のデータを使用して、投資を簡単かつ費用対効果の高いものにし、コストのかかる人間のアドバイザーの要素を排除します。","4. フィンテックが暗号通貨を推進しています。","競合するフィンテック主導の暗号通貨取引所の多くは喜んでお金を受け取りますが、これらのサービスは最も古いサービスの 1 つです。それらはすべて、他のブローカーよりも優位に立つ機能を備えていますが、いくつかの違いもあります。","金融テクノロジーは金融サービス会社の運営方法にどのような変革をもたらしているのでしょうか?","フィンテックはまた、銀行から資産運用会社まで金融サービス会社の運営方法を変えています。最近の主な進展としては次の 4 つが挙げられます。","- Wealthtech: 金融機関が裕福な顧客の資産をより効果的に管理し、パーソナライズしてハイエンドのニーズを満たすのに役立つテクノロジー ツール。","- インシュアテック: AI とデータ分析を適用して、詐欺リスクを最小限に抑えながら、価格設定から保険金請求処理に至る保険プロセスを改善します。","- Regtech: テクノロジーを使用してコンプライアンス プロセスを自動化し、特にマネー ロンダリングやテロ資金供与との闘いにおいて、金融機関がより効果的に規制を遵守できるように支援します。","- Suptech: Regtech の拡張であり、規制当局による金融システムの監視を強化し、金融機関のコンプライアンスの負担を軽減し、システムの安定性を向上させます。","金融テクノロジーの未来","金融テクノロジー (Fintech) は金融業界を大きく変えています。 Fintech のおかげで、金融サービスを利用する際の顧客体験はより便利で簡単になります。それだけでなく、フィンテックは運営コストを削減し、イノベーションを促進し、特に発展途上国でのより幅広い利用者への金融サービスへのアクセスを拡大するのにも役立ちます。 M-Pesa のようなアプリは、正しいことを証明しています。 Fintech が各地域に柔軟で適切な金融ソリューションを作成できることを明確に示しています。さらに、フィンテックは、ユーザーフレンドリーなアプリケーションを通じてコミュニティの金融知識を向上させるという重要な役割も果たしています。 Fintechは必然のトレンドとなりつつあり、金融​​業界の発展に積極的に貢献していると言えます。"]}
9467,{id:152,title:"AI がビジネス戦略をより人間らしくする方法",date:"2024å¹´11月22日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/152/%E1%BA%A2NH_B%C3%8CA__WEB__9_.png",excerpt:"AI は、Forever Beta、Minimum Viable Idea (MVI)、Co-lab という 3 つの主要な戦略を通じて、企業がより人道的なビジネス戦略を構築するのに役立ちます。これらの戦略は、テクノロジー、人材、リーダーシップのビジョンを組み合わせて、革新し、価値を最適化し、長期的な成長を維持します。たとえば、Tesla はアップデートを通じて製品を継続的に改善し、Lemonade は AI を適用して保険業界を再定義し、Exscientia は AI と人間の専門知識を組み合わせて創薬を行っています。ただし、企業は真剣かつ的を絞った投資を行う必要があります。明らかに、実際の進歩を妨げる「一時的な」自動化への依存を避けるためです。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"AI は、Forever Beta、Minimum Viable Idea (MVI)、Co-lab という 3 つの主要な戦略を通じて、企業がより人道的なビジネス戦略を構築するのに役立ちます。これらの戦略は、テクノロジー、人材、リーダーシップのビジョンを組み合わせて、革新し、価値を最適化し、長期的な成長を維持します。たとえば、Tesla はアップデートを通じて製品を継続的に改善し、Lemonade は AI を適用して保険業界を再定義し、Exscientia は AI と人間の専門知識を組み合わせて創薬を行っています。ただし、企業は真剣かつ的を絞った投資を行う必要があります。明らかに、実際の進歩を妨げる「一時的な」自動化への依存を避けるためです。",content:["AI がビジネス戦略をより人間らしくする方法","今日の AI の力は、企業に戦略的イノベーションの機会をもたらし、古いモデルからの脱却を支援します。考えられる戦略は、Forever Beta、Minimum Viable Idea (MVI)、Co-lab の 3 つです。これらの戦略は異なりますが、次の 3 つの共通点があります。それは、テクノロジー、戦略、実行の強力な統合です。機械ではなく人間によって制御されます。そして、すべての企業はテクノロジー企業であるという認識。これらの戦略には、人材とテクノロジーの組み合わせを活用し、イノベーションを推進し、混乱を回避するというビジョンを持ったリーダーが必要です。","AI と、モバイル コンピューティングや IoT などのテクノロジーの台頭により、イノベーションの発生方法が変化し、小規模な企業でも小規模なデータや人間の経験に基づくガイダンスを通じて AI にアクセスできるようになりました。これにより、組織内のより多くの人々が個人の専門知識に基づいて AI を使用する機会が提供されます。ただし、これらのテクノロジーによる新しい戦略を実際に適用している企業はわずかです。","永久ベータ戦略","Forever Beta 戦略は、販売後も継続的に改善および開発される製品とサービスを提供することに重点を置き、顧客が時間の経過とともに価値の向上を実感できるように支援します。たとえば、テスラはソフトウェアを通じて自社の車両モデルを継続的に更新および改良し、自動運転機能、性能、安全機能の最新情報を提供しています。テスラはまた、クラウド/エッジ接続を使用してパフォーマンスを監視し、リモート修理を提供することで、車両の所有エクスペリエンスを常に向上させています。","同様に、Signify (旧 Philips Lighting) は、顧客のエネルギー節約を支援する柔軟な照明ソリューションを提供しています。たとえば、Signify はドバイの照明エネルギーの 68% 削減を支援しました。これらの企業は顧客との強力な関係を構築し、長期にわたって継続的な付加価値をæ
9467ä¾›ã™ã‚‹ã“とに取り組んでいます。","実行可能な最小限のアイデア","Minimum Viable Idea (MVI) 戦略は、スマート テクノロジーを使用して従来の業界を革新し、優れた顧客エクスペリエンスと迅速な拡張性を提供します。革新的な保険会社である Lemonade は、見積もりの​​取得と請求処理のプロセスを数秒で簡素化する AI 搭載アプリでこの戦略を適用しています。 Lemonade は、自らを「アプリベースの保険会社」ではなく「保険テクノロジー会社」だと考えています。","同社は AI、チャットボット、機械学習を使用して、保険請求の解決など、消費者が嫌がることが多い従来の保険プロセスを改善しています。 Maya チャットボットはフォームや待ち時間なしで請求を迅速に処理し、請求が受け入れられた場合は AI が自動的に支払います。レモネードの財務モデルは、利益を増やすために保険金請求の拒否を阻止することで、保険業界の利益相反に対処しています。彼らは保険料の一部のみを受け取り、毎年恒例の「Give Back Day」に未請求の金額を返還し、慈善団体に寄付します。 2020 年、レモネードは非営利団体に 110 万ドル以上を寄付しました。これにより、顧客は、1 ドルの請求も慈善活動の目標に影響を与えるため、不当な請求を拒否する動機が同社にはないと感じることができました。","一般実験室","人間による発見と自動化および機械学習を組み合わせた共同ラボ戦略は、科学および深い専門知識の分野にわたって優れた結果をもたらします。人間の知識と強力なテクノロジーを組み合わせることで、生産性が向上し、高い参入障壁が生まれます。","英国の新興企業Exscientiaは、AI創薬プラットフォームCentaur Chemistを開発した。 AI は深層学習アルゴリズムを使用して潜在的な薬剤候補を絞り込み、専門家が戦略を導き、システムが限られたデータから学習してより効果的な薬剤発見を支援します。 2020 年、Exscientia は臨床試験で AI 設計の薬物分子を作成した最初の製薬会社になりました。","この戦略の力を示すもう 1 つの例は、モデルナとファイザー/ビオンテックによる新型コロナウイルスワクチンの開発が記録的な速さで達成されたことです。","小さな一歩か、それとも大きな飛躍か?","Forever Beta、Minimum Viable Idea、Co-lab などの戦略は、人とテクノロジーの組み合わせに焦点を当てた、スマート テクノロジーにおける強力な変革を反映する大胆なビジネス戦略の一部です。しかし、これらの戦略では、先見の明のあるリーダーがこのつながりでの機会を活用し、企業が混乱を回避して未来を掴むのを支援する必要があります。自動化のみに重点を置く企業は苦境に陥るだろう。","経済学者のダロン・アセモグル氏とパスクアル・レストレポ氏の研究によると、雇用と賃金を脅かしているのは「一時的な」自動化テクノロジーであり、効果のない一時的な戦略と同様、生産性の向上がわずかであるためです。"]},{id:150,title:"IA(情報アーキテクチャ)なくしてAI(人工知能)はありません",date:"2024å¹´11月10日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/150/%E1%BA%A2NH_B%C3%8CA__WEB__8_.png",excerpt:`AI は大々的に宣伝されていますが、効果的に機能するには、高品質のデータと人間の監視が必要です。企業は AI とデジタル テクノロジーを活用して、顧客エクスペリエンスをパーソナライズし、エンゲージメントを高め、有用な情報を提供します。オントロジーは、AI がデータをより適切に理解して処理するのに役立つ知識「フレームワーク」として機能します。
9468
9469ただし、効果的な AI エコシステムを構築するには、クリーンなデータと適切ã
9469ªãƒªã‚½ãƒ¼ã‚¹ã¸ã®æŠ•資が必要です。クリア。 AI は強力ですが、人間を完全に置き換えることはできません。両方の組み合わせが成功の鍵です。 r&otilde; について詳しくは、次の記事で React Plus を試してください。このコンテンツの詳細については、こちらをご覧ください。`,gradient:"from-blue-200 via-purple-200 to-pink-200",summary:`AI は大々的に宣伝されていますが、効果的に機能するには、高品質のデータと人間の監視が必要です。企業は AI とデジタル テクノロジーを活用して、顧客エクスペリエンスをパーソナライズし、エンゲージメントを高め、有用な情報を提供します。オントロジーは、AI がデータをより適切に理解して処理するのに役立つ知識「フレームワーク」として機能します。
9470
9471ただし、効果的な AI エコシステムを構築するには、クリーンなデータと適切なリソースへの投資が必要です。クリア。 AI は強力ですが、人間を完全に置き換えることはできません。両方の組み合わせが成功の鍵です。 r&otilde; について詳しくは、次の記事で React Plus を試してください。このコンテンツの詳細については、こちらをご覧ください。`,content:["AI に関する広告の多くは、その機能を誇張しています。 AI は多くの素晴らしいことを実現できますが、効果的に動作するには高品質のデータと人間の監視が必要です。 AIはすべてを完全に自動化することはできず、トレーニング後に特定のタスクのみを実行できるようになります。","デジタルエンゲージメント:","企業はより良い顧客エクスペリエンスを生み出すためにデジタルテクノロジーをますます活用しています。彼らはこれを次のようにして行います。","- パーソナライゼーション: 顧客の好みや行動に基づいてコンテンツを顧客ごとにカスタマイズします。","- インタラクション: 顧客にオンライン アクティビティへの参加を奨励します。","- 有益な情報の提供:顧客のニーズに迅速かつ正確に対応します。","これを行うには、企業は顧客データを収集して分析する必要があります。そこから、パーソナライズされたエクスペリエンスを構築し、顧客の満足度を高め、ブランドへの忠誠心を高めることができます。","知識表現としてのオントロジー","オントロジーは、コンピューターが情報の意味を理解するのに役立つ知識の「フレームワーク」です。これは専門の辞書のようなもので、コンピューターが概念や概念間の関係を理解し​​、論理的な推論を行うのに役立ちます。","オントロジーの役割:","- パーソナライゼーション: マシンがユーザーの意図を理解し、適切な提案を行うのに役立ちます。","- 推論能力を高める: 機械が質問に対する答えを自分で見つけられるようにします。","- 共通言語を作成する: 異なるシステムが相互に通信できるようにします。","ただし、オントロジーの構築は非常に複雑です。ドメインの深い理解と、さまざまなデータ ソースを統合する能力が必要です。","シンプルさは複雑さを隠す","AI が効果的に機能するためには、企業は強力なエコシステムを構築する必要があります。 AI インターフェイスは直感的で使いやすいですが、その背後には、さまざまな基礎構造を必要とする複雑なシステムがあります。これらの構造はさまざまな目的に再利用できます。","完全な AI エコシステムには、製品アーキテクチャ、顧客データ、データ分析、エンゲージメント ツールが含まれます。 AI エコシステムの構築に投資することは、企業が市場で大きな競争上の
9471優位性を得るのに役立ちます。","クリーンなデータは承認の代償です","構造化データは AI の重要な基盤です。 AI はさまざまな種類のデータを処理できますが、明瞭性により、AI がデータの意味をより深く理解できるようになり、より正確な結果が得られます。","効果的な AI システムを構築するには、企業には別の「辞書」が必要です。この辞書には、ビジネス活動の分野における特定の概念、ルール、および関係が含まれています。","テキストなどの非構造化データであっても、定義する必要があります。クリア。これにより、機械学習が情報をより効果的に理解して処理することができます。","AI は強力なツールですが、人間を完全に置き換えることはできません。 AI は情報処理に非常に優れていますが、複雑な理解とコミュニケーション能力は依然として人間の強みです。最高の効率を達成するには、両方を組み合わせる必要があります。ただし、AI が効果的に機能するためには、適切なデータ構造を構築することが非常に重要であり、多くの労力が必要です。","結論する","AI には多くの可能性がありますが、その力を最大限に活用するには、企業は強固なデータ基盤の構築に投資する必要があります。 r&otildeデータ構造を持つことは、AIがr&otildeを理解するのに明らかに役立ちます。データについてさらに詳しく知ることで、より正確な意思決定が可能になり、人間の意思決定プロセスをより適切にサポートできるようになります。"]},{id:149,title:"金融テクノロジー (Fintech) - その利用と私たちの生活への影響",date:"2024年11月1日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/149/%E1%BA%A2NH_B%C3%8CA__WEB__7_.png",excerpt:`Fintech は金融業界に革命をもたらし、個人および企業の財務管理をより簡単かつ便利にしています。このテクノロジーには、モバイル決済、ピアツーピア融資、オンライン投資、デジタル保険が含まれます。 Fintech のおかげで、消費者はどこでも低コストで金融サービスにアクセスできるようになり、企業や銀行はプロセスを最適化し、市場を拡大し、リスク管理を向上させることができます。
9472
9473フィンテックは多くの公益事業を生み出し、将来的には多くの新たな投資機会を開くことを約束しています。 React Plus に参加して、以下の記事を通じてフィンテックの使用法と私たちの生活への影響を詳しく調べてください。`,gradient:"from-blue-200 via-purple-200 to-pink-200",summary:`Fintech は金融業界に革命をもたらし、個人および企業の財務管理をより簡単かつ便利にしています。このテクノロジーには、モバイル決済、ピアツーピア融資、オンライン投資、デジタル保険が含まれます。 Fintech のおかげで、消費者はどこでも低コストで金融サービスにアクセスできるようになり、企業や銀行はプロセスを最適化し、市場を拡大し、リスク管理を向上させることができます。
9474
9475フィンテックは多くの公益事業を生み出し、将来的には多くの新たな投資機会を開くことを約束しています。 React Plus に参加して、以下の記事を通じてフィンテックの使用法と私たちの生活への影響を詳しく調べてください。`,content:["金融テクノロジー (Fintech) - その用途と私たちの生活への影響","フィンテックは金融業界に革命をもたらしています。テクノロジーのおかげで、お金の管理はこれまで以上にシンプルかつ便利になりました。請求書の支払いなどの小さな取引から大きな投資決定まで、フィンテックは役立ちます","1. フィンテックについて学ぶ:","金融テクノロジー (フィンテック) は、金融サービスの提供と使用を改善および自動化する新しいテクノロジーを表すために使用されます。フィンテックは本質的に、企業、事業主、消費者が業務、プロセス、財務生活をより適切に管理できるようにするために使用されます。","2. フィンテック金融分野:","- モバイル決済: 電子ウォレット、QR コード、非接触型決済。","- ピアツーピア融資 (P2P): 個人間の直接融資プラットフォーム。","- オンライン投資:株式取引アプリケーション、投資コンサルティングロボット。","- 暗号通貨とブロックチェーン: ブロックチェーン技術と金融におけるその応用。","- イãƒ
9475³ã‚·ãƒ¥ã‚¢ãƒ†ãƒƒã‚¯ï¼šä¿é™ºãƒ†ã‚¯ãƒŽãƒ­ã‚¸ãƒ¼ã€‚","3. フィンテックの影響:","のために:","- 消費者:","- 便利でアクセスしやすい:","+ 電子ウォレット アプリケーション、銀行振込、QR コードによる高速かつ安全なオンライン支払い。","+ 支出追跡および財務計画アプリケーションによる効果的な個人財務管理。","+ 遠隔地であっても、基本的な金融サービス (ローン、保険) へのアクセスが容易になります。","- 製品とサービスの多様化:","+ P2P 融資、個人投資、オンライン保険など、多くの新しい金融商品が登場します。","- コストの削減:","+ オンライン取引は多くの場合、従来の取引より手数料が低くなります。","+ 顧客エクスペリエンスの向上:","+ フレンドリーなインターフェイス、年中無休のカスタマー サービス、パーソナライズされたエクスペリエンス。","- 企業間 (B2B):","- サプライチェーンの最適化:","+ 迅速かつ透明性の高い B2B 支払いにより、リスクを最小限に抑えます。","+ キャッシュフローを効果的に管理し、管理コストを削減します。","- 市場の拡大:","+ e コマース プラットフォームを通じて、より簡単に新規顧客にリーチできます。","- リスク管理の改善:","+ データ分析ツールは、企業がリスクをより適切に評価および管理するのに役立ちます。","- 銀行:","- 熾烈な競争:","+ フィンテックは大きな競争圧力を生み出し、銀行に製品やサービスの革新を強います。","- 協力の機会:","+ 銀行はフィンテック企業と協力して新商品を開発し、若い顧客にリーチできます。","- デジタル変換:","+ フィンテックは銀行のデジタル変革を促進し、顧客エクスペリエンスを向上させます。","- B2B 銀行の顧客:","- 資本へのアクセスが容易になります:","+ 中小企業は、P2P 融資プラットフォームを通じて、より多様な資金源にアクセスできます。","- 財務コストの削減:","+ より競争力のあるローン金利、簡単な手続き。","- 中小企業向けの企業間消費者 (B2C)","- オンライン販売の強化:","+ オンライン決済ツールとデジタル マーケティングにより、企業はより広範囲の顧客にリーチできるようになります。","- 効果的な顧客管理:","+ CRM ツールは、企業が戦略を理解するのに役立ちます。顧客の行動についてさらに学び、それによって適切なビジネス戦略を考案します。","- 顧客のショッピング体験を向上:","+ 速くて便利な支払い、多くの支払い方法。","結論する","フィンテックは取引を簡素化するだけでなく、多くの新たな投資の機会をもたらします。継続的な開発により、Fintech はユーザーにさらなる利便性をもたらすことを約束します。これらの利点を最大限に活用するには、必要な知識を身につけ、新しい変化を受け入れる準備を整えてください。"]},{id:145,title:"React Plus で深くリラックスし、ストレスを軽減し、男性の健康を改善します。",date:"2024å¹´10月9日",category:"文化",type_post:"culture",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/145/%E1%BA%A2NH_B%C3%8CA__WEB__24_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/145/4.png",excerpt:"React Plus で深くリラックスし、ストレスを軽減し、男性の健康を改善します。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"React Plus で深くリラックスし、ストレスを軽減し、男性の健康を改善します。",content:["React Plus で深くリラックスし、ストレスを軽減し、男性の健康を改善します。","男性専用モード React Plus がさらに「アップグレード」されて帰ってきました!。 React Plus は、オフィスでの仕事では長時間座る必要があり、姿勢が制限され、首や肩の痛みにつながることが多いことを理解しています。これは健康に影響を与えるだけでなく、仕事のパフォーマンスも低下させます。そこで、React Plus は、人々をリラックスさせ、痛みを軽減し、エネルギーを取り戻すために、首、肩、うなじのマッサージ セッションを企画しました。このように、React Plus は各メンバーの健康への配慮と配慮を示しながら、チーム全体の作業パフォーマンスの向上にも貢献します。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/633/content_3.png]","本日、2024 å¹´ 10 月 8 日のプロの首、肩、うなじマッサージ セッションは、期待通り、素晴らしいリラクゼーション体験をお届けしました。 React Plus は、兄弟たちがマッサージセッション後のリラックスしたエネルギッシュなひとときを楽しんでいたのを見て、とてもうれしく思います。技術者チームの熟練したマッサージ技術が、çš
9475†æ§˜ã®ã‚¹ãƒˆãƒ¬ã‚¹ã‚’軽減し、今年の最後の四半期の課題に備えるのに役立つことを願っています。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/632/content_2.png]","すべての会員に総合的なヘルスケアを提供したいという願いのもと、React Plus は継続的に革新し、他の多くの有意義な活動を開発していきます。以下のプログラムを改善するために、皆様のご支援とご意見をお待ちしております。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/634/content_1.png]"]},{id:144,title:"ソフトウェア開発のキーテクノロジー入門(後編)",date:"2024å¹´10月2日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/144/1.png",excerpt:"前のセクションで AI と NLP について説明した後、今日の React Plus では、現代のソフトウェア開発の「柱」とみなされている 2 つのプログラミング言語、Python と Java について引き続き説明します。これら 2 つの言語はプログラミングの世界に大きな影響力を持っているだけでなく、テクノロジーの未来を形作る上でも重要な役割を果たしています。その見どころとトレンドを探ってみましょう!",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"前のセクションで AI と NLP について説明した後、今日の React Plus では、現代のソフトウェア開発の「柱」とみなされている 2 つのプログラミング言語、Python と Java について引き続き説明します。これら 2 つの言語はプログラミングの世界に大きな影響力を持っているだけでなく、テクノロジーの未来を形作る上でも重要な役割を果たしています。その見どころとトレンドを探ってみましょう!",content:["ソフトウェア開発の主要テクノロジーの紹介 (パート 2)","前のセクションで AI と NLP について説明した後、今日の React Plus では、現代のソフトウェア開発の「柱」とみなされている 2 つのプログラミング言語、Python と Java について引き続き説明します。これら 2 つの言語はプログラミングの世界に大きな影響力を持っているだけでなく、テクノロジーの未来を形作る上でも重要な役割を果たしています。その見どころとトレンドを探ってみましょう!","Python: 包括的でアクセスしやすいプログラミング言語","Python は、そのシンプルさ、学習の容易さ、幅広い応用性のおかげで、最も人気のあるプログラミング言語の 1 つになりました。 Web 開発からデータ サイエンス、機械学習に至るまで、Python はソフトウェア開発者にとって強力なツールです。","- 現在のトレンド:","- データ分析とデータ サイエンス: Python はこれらの分野の主要な言語であり、Pandas、NumPy、SciPy などの強力なライブラリを備えています。","- 機械学習と AI: TensorFlow、Keras、Scikit-learn などのライブラリのおかげで、Python は機械学習モデルの構築に推奨される言語です。","- Django および Flask を使用した Web 開発: Python は、Web アプリケーションの開発プロセスを簡素化する Django や Flask などの柔軟なフレームワークを提供します。","- 未来:","- AI および機械学習との統合の強化: 新しいライブラリやツールの継続的な開発により、Python は今後もこれらの分野の主要言語であり続けます。","- モノのインターネット (IoT) における Python: Python は徐々に IoT 分野に進出しており、接続されたアプリケーションの開発の簡素化に役立っています。","Java: ビジネス アプリケーション向けの強力なプログラミング言語","Java は、長く安定した開発の歴史を持ち、金融システムからモバイル アプリケーションに至るまで、多くのエンタープライズ アプリケーションで主要なプログラミング言語であり続けています。","- 現在のトレンド:","- Java を使用したマイクロサービス: Java はマイクロサービス アーキテクチャで広く使用されており、エンタープライズ アプリケーションの柔軟性と保守が容易になります。","- モバイル アプリケーション開発における Java: Java は、世界で最も人気のあるモバイル オペレーティング システムである Android アプリケーション開発の主要な言語です。","- ビッグ データ: Java は、Hadoop や Apache Spark などのビッグ データ処理プラットフォームに不可欠な部分です。","- 未来:","- Java とクラウド コンピューティング: Java は、クラウド アプリケーション、特にマイクロサービス ベースのサービスの構築と展開において引き続き強力に成長します。","- コミュニティとå
9475¤§ä¼æ¥­ã‹ã‚‰ã®å¼·åŠ›ãªã‚µãƒãƒ¼ãƒˆ: Oracle と大規模な開発者コミュニティからのサポートにより、Java は企業にとって安全で強力な選択肢であり続けるでしょう。","結論する","AI と NLP だけでなく、Python と Java も、ソフトウェア開発の未来を変え、形作る上で先頭に立っている。これらのテクノロジーはイノベーションを促進するだけでなく、新たな機会を切り開き、企業や開発者が絶え間なく変化するテクノロジー市場で競争力を維持するのに役立ちます。","これらの最先端のテクノロジーを扱うさらに多くの機会を探ることに興味がある場合は、React Plus の採用ページにアクセスして素晴らしい機会を見つけてください。"]},{id:143,title:"台風・豪雨被災地への緊急支援活動 - カオバン省の被災者の皆様へ心を寄せて",date:"2024å¹´9月17日",category:"ボランティア",type_post:"charity_story",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/143/%E1%BA%A2NH_B%C3%8CA__WEB__23_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/143/8.png",excerpt:"大型台風(台風Yagi)に伴う豪雨・洪水により甚大な被害を受けた地域を支援するため、React Plusは社員一同による寄付活動および飲料水、食料品、医薬品などの緊急救援物資の輸送支援を実施いたしました。",gradient:"from-blue-200 via-sky-200 to-cyan-200",summary:"大型台風(台風Yagi)に伴う豪雨・洪水により甚大な被害を受けた地域を支援するため、React Plusは社員一同による緊急募金を実施し、飲料水や食料、医薬品などの救援物資を最も被害の大きかったカオバン省へ迅速にお届けしました。",content:["【緊急人道支援】台風・豪雨被災地への救援活動 - 被災地の早期復旧を願って","大型台風(台風Yagi)の通過に伴う記録的な豪雨と洪水により、ベトナム北部各地で甚大な被害が発生しました。React Plusでは被災地の皆様の生活再建を支援するため、全社を挙げた緊急支援活動を立ち上げました。","社内での緊急募金呼びかけ後、集まった義援金をもとに、社員有志が直ちに支援物資の調達と梱包作業に取り掛かりました。飲料水、保存食、常備薬などの必需品を一つひとつ丁寧に詰め合わせ、被災地へ届ける準備を迅速に進めました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/630/content_6.png]","今回の支援先となったカオバン省(Cao Bằng)は、土砂崩れや浸水により深刻な打撃を受けた地域の一つです。被災された方々の生活環境を少しでも支えるため、生活に不可欠な物資を重点的に確保いたしました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/629/content_5.png]","支援物資を積載した車両は、道路の崩落や冠水が続く険しい道のりを越え、被災地域の方々のもとへ直接物資をお届けしました。一つひとつの支援物資には、単なる物的支援にとどまらず、被災地の皆様が一日も早く平穏な日常を取り戻せるようにという、社員全員の温かい祈りと励ましの想いが込められています。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/628/content_3.png]","React Plusは、「相互扶助(助け合い)」の精神を重んじ、困難な局面に立ち向かう地域社会の復興に微力ながら貢献してまいります。被災された皆様に心よりお見舞い申し上げますとともに、被災地の一刻も早い復興をお祈り申し上げます。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/626/content_4.png]"]},{id:140,title:"ソフトウェア開発のキーテクノロジー入門(前編)",date:"2024å¹´8月27日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/140/2.png",excerpt:"今日のデジタル時代では、人工知能 (AI)、自然言語処理 (NLP)、Python、Java などの最先端のテクノロジーが、ソフトウェアの開発と展開の方法を再構築しています。これらのテクノロジーはイノベーションを推進するだけでなく、金融から医療、メディアに至るまで、多くの分野に新たな機会をもたらします。この記事では、React Plus が AI と NLP について紹介し、その現在の傾向と将来の予測に焦点を当てます。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"今日のデジタル時代では、人工知能 (AI)、自然言語処理 (NLP)、Python、Java などの最先端のテクノロジーが、ソフトウェアの開発と展開の方法を再構築しています。これらのテクノロジーはイノベーションを推進するだけでなく、金融から医療、メディアに至るまで、多くの分野に新たな機会をもたらします。この記事では、React Plus が AI と NLP について紹介し、その現在の傾向と将来の予測に焦点を当てます。",content:["ソフトウェア開発の主要テクノロジーの紹介 (パート 1)","今日のデジタル時代では、人工知能 (AI)、自然言語処理 (NLP)、Python、Java などの最先端テクノロジーが、ソフトウェアの開発と展開の方法を再構築しています。これらのテクノロジーはイノベーションを推進するだけでなく、金融から医療、メディアに至るまで、多くの分野に新たな機会をもたらします。この記事では、React Plus が AI と NLP について紹介し、その現在の傾向と将来の予測に焦点を当てます。","AI(人工知能):卓越した能力と無限の可能性","AI は、過去 10 年間で最も先駆的なテクノロジーの 1 つです。これにより、画像や音声の認識から予測ã
9475‚„意思決定に至るまで、これまで人間のみが実行できたタスクを機械が実行できるようになります。","- 現在のトレンド:","Fintech における AI: AI は、取引の自動化から正確な財務予測を行うためのビッグデータ分析に至るまで、金融業界に革命をもたらしています。","ヘルスケアにおける AI: AI アプリケーションは、病気の早期発見、患者ケア プロセスの最適化、治療の個別化に役立ちます。","マーケティングにおける AI: AI は、顧客の行動を分析し、広告キャンペーンを最適化し、ユーザー エクスペリエンスを向上させるのに役立ちます。","- 未来:","- 汎用 AI (AGI): まだ研究段階にありますが、AGI は人間が直面する複雑な問題の自動化と解決において新時代を開くことを約束します。","- 倫理的な AI: AI が安全な範囲内で動作し、社会に利益をもたらすことを保証するために、倫理的な規制と基準が策定されます。","NLP (自然言語処理): 人間と機械の間の自然なコミュニケーション","NLP は、コンピューターが人間の自然な言語を理解し、対話できるようにすることに重点を置いた AI の一分野です。 Siri や Alexa のような仮想アシスタントから自動翻訳システムに至るまで、NLP は日常生活に欠かせないものになりつつあります。","- 現在のトレンド:","- インテリジェントなチャットボット: 企業は NLP を使用して、自然で正確な応答を提供する 24 時間年中無休のカスタマー サポート チャットボットを開発しています。","- 感情分析: NLP は記事や製品レビューの感情を分析するために使用され、企業が記事や製品レビューの感情を理解できるように支援します。顧客の認識について詳しく説明します。","- 自動翻訳: 最新の NLP システムは翻訳の精度と速度をますます向上させており、国家間の言語の橋渡しをしています。","- 未来:","- 多言語および異文化間の NLP: 複数の言語を処理し、異なる文化的背景を理解できる NLP モデルの開発は、世界的な適用可能性を拡大します。","- NLP には大規模なトレーニング データは必要ありません。研究は、より少ないデータから学習できる NLP モデルの開発に向けて進んでおり、大規模なデータセットへの依存を減らしています。","結論する","このパート 1 では、React Plus は AI と NLP という 2 つの主要なテクノロジーを紹介しました。 AI および NLP に関連する仕事に興味がある場合は、React Plus の採用ページにアクセスして、素晴らしい機会を探してください。"]},{id:139,title:"教育支援ボランティア2024「愛を届け、学びを支える」- ラオカイ省の子どもたちへ希望を届ける旅",date:"2024å¹´8月26日",category:"ボランティア",type_post:"charity_story",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/139/%E1%BA%A2NH_B%C3%8CA__WEB__20_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/139/%E1%BA%A2NH_B%C3%8CA__WEB__20_.png",excerpt:"React Plusは2024å¹´8月、教育支援ボランティア「愛を届け、学びを支える」を実施し、ラオカイ省バオタン県の小中学校へノートや学用品を届けました。子どもたちの笑顔と学びへの夢を支える現地レポートです。",gradient:"from-teal-200 via-emerald-200 to-green-200",summary:"2024å¹´8月、React Plusのボランティアチームはラオカイ省バオタン県フーニュアン村を訪問し、山間部の困難な環境にある子どもたちへ5,300冊のノートや学用品、奨学支援を寄贈する教育支援プログラムを実施しました。",content:["【活動レポート】React Plus 教育支援ボランティア2024「愛を届け、学びを支える」","2024å¹´8月25日、ハノイから約5時間、260kmにおよぶ険しい山道を進み、React Plusのボランティアチームはラオカイ省バオタン県フーニュアン村(Phú Nhuận, Bảo Thắng, Lào Cai)に到着しました。","今回の訪問先は、同村の「第3小学校」および「第1中学校」です。校舎などの整備は進みつつあるものの、生徒の多くは少数民族の困窮世帯出身であり、日々の学用品やノートを揃えることすら容易ではない厳しい環境に置かれています。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/612/content_3.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/609/content_10.png]","雄大な自然が広がる一方で、現地には質素な暮らしと生活インフラの不足が今なお残っています。実際にその現場を目の当たりにすることで、私たちが享受している恵まれた環境への感謝を再認識するとともに、企業としての社会的責任の重要性を深く実感しました。","チーム一同で物資の搬入や配布作業を行い、子どもたちや保護者の皆様に直接プレゼントをお渡ししました。子どもたちの輝く瞳と満面の笑み、そして保護者の皆様の温かい感謝の言葉が、私たちの活動の最大の励みとなりました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/610/content_1.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/611/content_2.png]","将来の夢を尋ねると、「早く大きくなって両親を助けたい」「病気のお母さんを治すために医者になりたい」「遠くに出稼ぎに出ているお父さんに会いたい」といった、健気で真っ直ぐな想いが返ってきました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/616/content_7.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/617/content_8.png]","React Plusのメンバーにとって、本プログラムは単に支援物資をお届けするだけでなく、若いエンジニアや社員が社会課題に直接向き合い、人道的価値を共に育む貴重な経験となりました。","私たちが届けた一冊のノートや学用品が、子どもたちの学びへの探求心を刺激し、明るい未来を切り拓く力となることを心より願っております。","※本稿は、現地ボランティア活動に参加したReact Plus社員の手記をもとに構成しています。"]},{id:134,title:"React が Web 開発の第一の選択肢であるのはなぜですか?",date:"2024å¹´7月29日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/134/%E1%BA%A2NH_B%C3%8CA__WEB__4_.png",excerpt:`デジタル テクノロジーの爆発的な時代には、画期的な Web エクスペリエンスへの扉を開く、潜在的な JavaScript ライブラリである React の台頭が見られました。
9476
9477React は、そのシンプルさ、柔軟性、効率性でプログラミングの世界を征服し、最新の Web アプリケーションの第一の選択肢となっています。では、React はなぜ特別で魅力的なのでしょうか? React のパワーと、Facebook、Instagram、Netflix などのテクノロジー業界の大手企業から React が信頼される理由を探ってみましょう。`,gradient:"from-blue-200 via-purple-200 to-pink-200",summary:`デジタル テクノロジーの爆発的な時代には、画期的な Web エクスペリエンスへの扉を開く、潜在的な JavaScript ライブラリである React の台頭が見られました。
9478
9479React は、そのシンプルさ、柔軟性、効率性でプログラミングの世界を征服し、最新の Web アプリケーションの第一の選択肢となっています。では、React はなぜ特別で魅力的なのでしょうか? React のパワーと、Facebook、Instagram、Netflix などのテクノロジー業界の大手企業から React が信頼される理由を探ってみましょう。`,content:["React が Web 開発の第一の選択肢であるのはなぜですか?","React は強力で柔軟な JavaScript ライブラリであり、世界最大手の企業が Web アプリケーションを構築するために使用しています。 React は、学びやすい構文、高いパフォーマンス、大規模なコミュニティを備えており、最新でスケーラブルで効率的な Web アプリケーションを構築したい Web 開発者にとって最適な選択肢です。","React が人気がある理由と人気のアプリケーションをご紹介します。","Reactが人気がある理由","学習と使用が簡単: React はシンプルで理解しやすい構文を備えているため、プログラマーはすぐに使い始めて複雑な Web アプリケーションを作成できます。","- ハイパフォーマンス: React は仮想 DOM とスマート レンダリング アルゴリズムを使用しており、ハイパフォーマンスとスムーズなユーザー エクスペリエンスの実現に役立ちます。","- 汎用性: React を使用すると、単純な Web サイトから複雑なシングルページ Web アプリケーション (SPA) まで、さまざまな種類の Web アプリケーションを構築できます。","- 大規模なコミュニティと強力なサポート: React には大規模で熱心な開発者コミュニティがあり、いつでもサポートし、知識を共有する準備ができています。","- 多くのライブラリとツール: 利用可能な React ライブラリとツールが多数あり、プログラマが Web アプリケーションをより速く簡単に構築できるようになります。","React から開発された人気のアプリケーション","- Facebook: ソーシャル ネットワークの
9479巨人 Facebook は、React を使用してニュースフィード、タイムライン、その他多くの機能を構築しています。","- Instagram: 画像共有ソーシャル ネットワーク Instagram もユーザー インターフェイスの構築に React を使用しています。","- Netflix: 映画ストリーミング サービス Netflix は、React を使用して Web およびモバイル アプリケーションを構築します。","- Airbnb: 宿泊施設予約プラットフォーム Airbnb は、Web サイトとモバイル アプリの構築に React を使用しています。","- PayPal: オンライン決済システム PayPal は React を使用して Web サイトとモバイル アプリを構築します。","React は、その優れたパフォーマンス、コンポーネントの再利用、強力なコミュニティ サポートのおかげで、主要な Web 開発ツールとしての地位を確立しました。 Facebook、Instagram、Netflix などの人気のあるアプリは、最新かつ効率的なユーザー インターフェイスを構築する React の能力を実証しています。"]},{id:131,title:"フィンテック業界における AI - トレンドと機会",date:"2024年7月20日",category:"キャリア知識",type_post:"knowledge",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/131/%E1%BA%A2NH_B%C3%8CA__WEB.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/131/%E1%BA%A2NH_B%C3%8CA__WEB.png",excerpt:`今日のデジタル時代において、人工知能 (AI) は金融テクノロジー (Fintech) 業界に新たな扉を開き、金融の管理と取引の方法に革命をもたらしています。
9480
9481AI は金融機関の運営方法を変えるだけでなく、企業や消費者に前例のない機会をもたらします。 React Plus を使って、Fintech 業界における AI のますます重要な役割と、AI がもたらす新たな機会を探ってみましょう。`,gradient:"from-blue-200 via-purple-200 to-pink-200",summary:`今日のデジタル時代において、人工知能 (AI) は金融テクノロジー (Fintech) 業界に新たな扉を開き、金融の管理と取引の方法に革命をもたらしています。
9482
9483AI は金融機関の運営方法を変えるだけでなく、企業や消費者に前例のない機会をもたらします。 React Plus を使って、Fintech 業界における AI のますます重要な役割と、AI がもたらす新たな機会を探ってみましょう。`,content:["フィンテック業界における AI - トレンドと機会","人工知能 (AI) は金融サービス業界 (フィンテック) においてますます重要な役割を果たしており、画期的な変化をもたらし、多くの新たな機会をもたらしています。 React Plus を使って、Fintech 業界における AI のますます重要な役割と、AI がもたらす新たな機会を探ってみましょう。","フィンテック業界における AI の役割","Fintech における AI の典型的な応用例には次のようなものがあります。","- 不正行為防止とリスク管理: AI は膨大なデータを分析し、異常なパターンを特定する機能を備えており、不正行為を効果的に検出して防止するのに役立ちます。","- プロセスの自動化: AI は、ローン申請処理、顧客 ID 認証、顧客サービスなど、時間とコストのかかる多くの手動プロセスを自動化できます。","- 予測分析: AI は顧客データを分析して顧客のニーズや行動を正確に予測し、フィンテック企業がより適切にパーソナライズされた製品やサービスを提供できるように支援します。","- カスタマー エクスペリエンスの向上: AI は 24 時間年中無休のカスタマー サポート チャットボットを提供し、質問に答え、迅速かつ効果的にカスタマー サポートを提供します。","AI がフィンテック業界にもたらす新たなチャンス","AI の発展は、フィンテック企業に次のような多くの新たな機会をもたらしています。","- 新しい商品とサービスの開発: AI は、ますます多様化する顧客のニーズを満たす革新的な
9483金融商品とサービスを開発する可能性を広げます。","- 市場の拡大: AI は、フィンテック企業が新しい市場、特に従来の金融サービスでは十分なサービスを受けられていない市場に参入するのに役立ちます。","- 業務効率の向上: AI は、フィンテック企業がプロセスを自動化し、コストを削減し、業務効率を向上させるのに役立ちます。","- 顧客エクスペリエンスの向上: AI は、よりパーソナライズされたシームレスな顧客エクスペリエンスを提供し、顧客満足度とロイヤルティの向上に役立ちます。","したがって、AI はフィンテックの将来において重要な役割を果たし、自動化の促進、不正行為の検出、サービスのパーソナライズ、業務効率の向上、企業と消費者への新たな機会の創出を実現します。金融テクノロジー業界における AI の適用は単なるトレンドではなく、競争を維持し、増大する市場の需要を満たすために必要な変化です。フィンテック企業は、ますます不安定になる環境の中で成長し、革新を続けるためにこの機会を捉える必要があります。"]},{id:133,title:"教育支援プログラム「愛を届け、学びを支える」準備完了のお知らせ - 5,300冊のノートを山間部の子どもたちへ",date:"2024å¹´7月19日",category:"ボランティア",type_post:"charity_story",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/133/%E1%BA%A2NH_B%C3%8CA__WEB__15_.png",excerpt:"React Plusは、ラオカイ省バオタン県フーニュアン村の小中学校の生徒たちへ向け、5,300冊のノートおよび特別奨学支援パッケージの寄贈準備を完了いたしました。8月の現地出発を控えた準備状況をお知らせします。",gradient:"from-orange-200 via-amber-200 to-yellow-200",summary:"地域社会への貢献と教育格差の是正を目指し、React Plusはラオカイ省の児童・生徒へ贈る5,300冊の学習ノートおよび支援物資の調達・検品を完了いたしました。社員の温かい想いとともに、8月の現地訪問に向けて準備を進めています。",content:["【教育支援】「愛を届け、学びを支える」ボランティアプログラム - 支援物資の準備が完了いたしました","React Plusでは、社会貢献活動「愛を届け、学びを支える」の一環として、ラオカイ省バオタン県フーニュアン村(Phú Nhuận, Bảo Thắng, Lào Cai)にある小中学校の生徒たちへ向け、5,300冊の学習ノートを寄贈する準備を整えました。","本支援は、経済的・地理的に厳しい環境下で学ぶ山間部の子どもたちが、安心して知識に触れ、未来への学びを継続できるよう後押しすることを目的としています。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/589/content_1.png]","React Plusは、教育こそが子どもたちの将来の可能性を広げ、持続可能な社会の発展を支える最も重要な基盤であると考えています。ノートの一冊一冊が子どもたちの夢を育み、未来を切り拓く力となることを願っております。また本取り組みは、当社が掲げる「地域共創・教育支援」への揺るぎないコミットメントを示すものです。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/590/content_2.png]","現在、React Plus社員の有志による慈善基金から拠出された11組の特別支援パッケージと5,300冊のノートが本社オフィスに集結し、出発の日を心待ちにしています。本プログラムの現地訪問は、8月中にラオカイ省にて実施される予定です。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/592/content_4.png]","React Plusは今後も、温かい思いやりと確かな支援を行動に変え、社会に貢献する取り組みを積極的に推進してまいります。"]},{id:128,title:"教育支援ボランティア「愛を届け、学びを支える」発足のお知らせ - ラオカイ省の山間部学校へ",date:"2024å¹´6月27日",category:"ボランティア",type_post:"charity_story",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/128/%E1%BA%A2NH_B%C3%8CA__WEB__12_.png",excerpt:"ベトナムに古くから伝わる「助け合い」の精神を受け継ぎ、React Plusは山間地域の困難な環境にある子どもたちへ教育機会と学習物資を届けるボランティアプログラム「愛を届け、学びを支える」を発足いたしました。",gradient:"from-rose-200 via-pink-200 to-fuchsia-200",summary:"React Plusは教育支援プロジェクト「愛を届け、学びを支える」を立ち上げ、ラオカイ省バオタン県フーニュアン村の小中学校へ学用品の寄贈および交流活動を実施することを決定いたしました。",content:["【社会貢献プログラム】教育支援ボランティア「愛を届け、学びを支える」発足のお知らせ","ベトナムの伝統的な相互扶助の精神に基づき、React Plusは教育支援ボランティアプログラム「愛を届け、学びを支える」の開催を決定いたしました。恵まれã
9483ªã„環境にある子どもたちへ学びの光と未来への希望を届けるため、全社を挙げて支援活動を展開いたします。","■ 支援対象地域:知識の普及が求められる山間部の教育現場","今回の支援先は、ラオカイ省バオタン県フーニュアン村(Phú Nhuận, Bảo Thắng, Lào Cai)に位置する2校の小中学校です。","1. フーニュアン第1中学校:生徒の82%が少数民族出身であり、215名が貧困世帯に属しています。特に生活環境が厳しい3つの集落に位置し、教育の重要性に対する意識啓発や就学継続において多くの課題を抱えています。","2. フーニュアン第3小学校:生徒の100%が少数民族出身であり、120名が貧困世帯の児童です。家庭の経済的困窮や地理的制約から、基本的な学習環境の整備が急務となっています。","■ 私たちの使命:温かい支援を届け、子どもたちの学びを後押しする","山間部の子どもたちの学習環境を改善するため、React Plusはノート、教科書、文房具などの必須学用品を寄贈するとともに、子どもたちの好奇心と学習意欲を引き出す交流・教育アクティビティを企画・実施いたします。","私たちは、企業の成長とともに地域社会への貢献を深め、誰もが公平に教育を受けられる社会の実現に向けて歩みを進めてまいります。皆様の温かいご理解とご支援をよろしくお願い申し上げます。"]},{id:129,title:"リラクゼーション デイ - 精神を養い、新しいエネルギーで女性を充電 React Plus",date:"2024å¹´6月26日",category:"文化",type_post:"culture",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/129/%E1%BA%A2NH_B%C3%8CA__WEB__4_.png",excerpt:"リラクゼーション デイ プログラム終了後、専門的かつ多様なマッサージ サービスにより、参加した女性のほぼ 100% が素晴らしいリラクゼーションのひとときを満喫し、ハードワーク後のストレスや疲労を解消しました。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"リラクゼーション デイ プログラム終了後、専門的かつ多様なマッサージ サービスにより、参加した女性のほぼ 100% が素晴らしいリラクゼーションのひとときを満喫し、ハードワーク後のストレスや疲労を解消しました。",content:["「リラクゼーションデイ」~心を育み、女性に新たなエネルギーをチャージ リアクトプラス!","賑やかな笑い声、喜びで輝く目、そして陽気な精神 - それは、リラクゼーション デイ プログラム終了後に私たちが見ることのできる最も美しい姿です。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/577/content_1.png]","ほぼ100%の女性が過去最多の参加となり、女性の興奮と関心、期待が高まっています。プロフェッショナルで多様なマッサージ サービスにより、人々は素晴らしいリラクゼーションのひとときを満喫し、ハードワークの後のストレスや疲労を解消してきました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/578/content_2.png]","リラクゼーション デイは、リラックスしたひと時を過ごすだけでなく、常に精神的な生活に気を配り、女性に寄り添い、快適で楽しく刺激的な職場環境を作り出すというリアクト プラスの取り組みを裏付けるものでもあります。"]},{id:127,title:"React Plus専用のメンズモードで男性のパフォーマンスを目覚めさせましょう",date:"2024å¹´6月18日",category:"文化",type_post:"culture",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/127/%E1%BA%A2NH_B%C3%8CA__WEB__14_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/127/1.png",excerpt:"今朝、2024 å¹´ 6 月 18 日、ヘアカットと指圧療法という 2 つのアクティビティを備えた男性限定のプログラムが React Plus で興奮しながら開催されました。多数の React Plus メンバーが興奮して参加し、ユニークな体験を楽しんだため、活気に満ちた歓喜の雰囲気が組織エリアを包みました。",gradient:"from-blue-200 via-purple-200 to-pink-200",summary:"今朝、2024 å¹´ 6 月 18 日、ヘアカットと指圧療法という 2 つのアクティビティを備えた男性限定のプログラムが React Plus で興奮しながら開催されました。多数の React Plus メンバーが興奮して参加し、ユニークな体験を楽しんだため、活気に満ちた歓喜の雰囲気が組織エリアを包みました。",content:["React Plus専用のメンズモードで男性のパフォーマンスを目覚めさせましょう","今朝、2024 å¹´ 6 月 18 日、ヘアカットと指圧療法という 2 つのアクティビティを備えた男性限定のプログラムが React Plus で興奮しながら開催されました。多数の React Plus メンバーが興奮して参加し、ユニークな体験を楽しんだため、活気に満ちた歓喜の雰囲気が組織エリアを包みました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/571/content_7.png]","RPG Barber Shop では、プロの理髪師チームの才能ある手によって、兄弟は顔や個人のスタイルに適した印象的なヘアスタイルでスタイリッシュな新しい外観を手に入れます。","同時に、経験豊富な技術者による効果的な指圧治療を通じて、兄弟が一緒にリラックスし、ストレスを緩和し、健康を改善できるリラックスエリアも同様に刺激的です。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/565/content_2.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/567/content_4.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/564/content_3.png]","兄弟たちの顔に浮かぶ明るい笑顔、満足感、そしてリラックスした様子は、R&O が成功した証拠です。プログラムの成功を最も明確に示しています。組織委員会は肯定的なフィードバックに非常に感謝しており、次回のプログラムでもさらに完璧な体験を提供し続けたいと考えています。","React Plus が今後、より有意義で印象的なイベントの作成に貢献できるよう、コメントを残してください。ありがとう、また会いましょう!"]},{id:174,title:"南部解放・祖国統一50周年記念",date:"2024å¹´4月30日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/174/7.png",excerpt:"南部解放・祖国統一50周年を迎えました。ベトナムの歴史的な節目に際し、平和と独立の価値に深く感謝します。🇻🇳",gradient:"from-red-200 via-rose-200 to-red-200",summary:"祖国統一50周年を祝うメッセージ。",content:["[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/756/content_30.4__1_.png]","🇻🇳 南部解放・祖国統一50周年記念 🇻🇳","1975å¹´4月30日から2025å¹´4月30日へ。南部解放と祖国統一50周年という大きな節目を迎えました。","1975å¹´4月30日午前11時30分、独立宮殿の屋根に南ベトナム解放民族戦線の旗が翻り、ホーチミン作戦は完全な勝利に終わりました。私たちは過去の英雄たちの犠牲に深く感謝し、平和な未来へと邁進してまいります。"]},{id:173,title:"React Plus、4月の歴史的な日々を赤旗で彩る",date:"2024å¹´4月25日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/173/8.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/173/bafb1c34ada71ef947b6.jpg",excerpt:"歴史的な4月を祝い、React Plusは全社を赤旗の色で染め上げました。愛国心と誇りを胸に、次なるステージへ。🌟",gradient:"from-red-200 via-orange-200 to-yellow-200",summary:"4月の歴史的な日を祝う社内イベントと装飾の様子。",content:["[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/754/content_63bae97758e4ebbab2f5.jpg]","🌟 React Plus、4月の歴史的な日々を赤旗で彩る 🌟","1975å¹´4月30日の勝利から半世紀が経ちました。ベトナムが一つになったその神聖な瞬間を忘れることなく、私たちの誇りと愛国心は常に燃え続けています。","React Plusのオフィスも、この誇りé«
9483˜ãæ­´å²çš„な月を祝うため、赤と黄色の旗で鮮やかに装飾されました。私たちはこれからも誇りを持って歴史を繋いでいきます。"]},{id:171,title:"React Plus、日本市場における大規模技術プロジェクトを正式にキックオフ",date:"2024å¹´4月20日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/171/A%CC%89NH_BI%CC%80A__WEB__3_.png",excerpt:"日本市場における大規模技術プロジェクトを正式にキックオフしました!両国の強力なパートナーシップにより画期的なソリューションを提供します。💼",gradient:"from-blue-200 via-sky-200 to-indigo-200",summary:"日本市場向けの新規大規模プロジェクトの開始報告。",content:["[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/750/content_Tokyo_Tokyo_Point_out_webfacebook__1_.png]","💼 React Plus、日本市場における大規模技術プロジェクトを正式にキックオフ 💼","キックオフミーティングは、関係者間の高いプロフェッショナリズムと協力精神に満ちた、活気ある雰囲気の中で開催されました。","このプロジェクトは大規模かつ重要であり、日本のお客様の高度な要件を満たすことが求められます。React Plusの技術力とチームワークを最大限に発揮し、必ずや成功に導く決意です。"]},{id:178,title:"React Plus 創立6周年記念",date:"2024å¹´4月10日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/178/2.png",excerpt:"創立から6年。これまでの歩みに誇りを持ち、さらなる成長を目指すReact Plusの6周年記念メッセージ。🎉",gradient:"from-purple-200 via-pink-200 to-rose-200",summary:"React Plus創立6周年を記念するご挨拶と、これからのビジョンに向けた決意表明。",content:["[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/760/content_%E1%BA%A2nh_6th.png]","🎉 React Plus 創立6周年記念 🎉","6年という歳月は決して長くはありませんが、React Plusの発展の歴史において、誇るべき数々の足跡を共に刻むには十分な時間でした。","7年目を迎えるにあたり、React Plusは更なる飛躍への熱い思いと情熱を胸に、社員一人ひとりが力を合わせ、より強固な企業へと成長していくことを期待しています。皆様、これまでのご支援誠にありがとうございました。"]},{id:166,title:"React Plus、「Blooming with Floral Scent」で3月8日を華やかに祝福",date:"2024å¹´3月10日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/166/%E1%BA%A2NH_B%C3%8CA__WEB__6_.png",excerpt:"3月8日を祝う「Blooming with Floral Scent」ウィークが終了。美しい花々と共に、女性社員たちへ感謝の気持ちを伝えました。💐",gradient:"from-pink-200 via-fuchsia-200 to-rose-200",summary:"国際女性デーを記念する社内イベント「Blooming with Floral Scent」の報告。",content:["💐 React Plus、「Blooming with Floral Scent」で3月8日を華やかに祝福 💐","React Plusの「Blooming with Floral Scent(花の香りと共に咲く)」ウィークは終了しましたが、その甘い余韻と忘れられない思い出は、メンバー一人ひとりの心に深く残っています。","私たちは共に、女性たちの「美しさ」と「才能」を称える、彩り豊かな絵を描き上げました。React Plusの女性メンバーがこれからも自信に満ち、美しい花のように輝き続けることを願っています!","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/737/content_4.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/738/content_10.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/739/content_15.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/740/content_1.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/741/content_14.png]"]}
9483,{id:164,title:"React Plus、PMP資格を見事取得した優秀なメンバーたちを祝福",date:"2024年3月2日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/164/%E1%BA%A2NH_B%C3%8CA__WEB__43_.png",excerpt:"優秀なメンバーがPMP(Project Management Professional)資格を見事取得しました!ハイレベルなプロジェクト管理能力を証明する素晴らしい成果を祝福します。🏆",gradient:"from-amber-200 via-yellow-200 to-orange-200",summary:"社員のPMP資格取得のお知らせと、それに向けた学習支援の成果について。",content:["[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/736/content_%E1%BA%A2NH_B%C3%8CA__WEB__43_.png]","🏆 React Plus、PMP資格を見事取得した優秀なメンバーたちを祝福 🏆","React Plusは、世界で最も権威のあるプロジェクトマネジメント資格の1つであるPMP(Project Management Professional)を見事に取得したメンバーたちの素晴らしい成果を誇りを持ってお知らせします。","この成果は、個人の絶え間ない努力の賜物であると同時に、専門性を高める環境を常にサポートするReact Plusの姿勢を証明するものです。"]},{id:163,title:"React Plus、BSCモデルに基づく「OKR 2025」を構築",date:"2024年2月26日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/163/%E1%BA%A2NH_B%C3%8CA__WEB__41_.png",excerpt:"BSC(Balanced Scorecard)モデルによる「OKR 2025」を構築。持続可能な成長と業務基盤の強化に向けた新たなロードマップを展開します。📈",gradient:"from-emerald-200 via-teal-200 to-cyan-200",summary:"2025年の目標管理における新しいフレームワーク(BSCを用いたOKR)の策定プロセスと目的の共有。",content:["[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/735/content_OKR_2025_facebook_web.png]","📈 React Plus、BSCモデルに基づく「OKR 2025」を構築 📈","2025年は、数多くの新たな機会とともに挑戦に満ちた年となります。私たちは、大手顧客を獲得し、日本での支社設立の初期段階を終えたことを誇りに思っています。","さらなる飛躍のため、React PlusはBSC(バランススコアカード)モデルを取り入れた「OKR 2025」を導入しました。これにより、財務的成長にとどまらず、顧客満足度、社内プロセス、および学習と成長という4つの視点からバランスのとれた組織基盤を強固なものにしていきます。"]},{id:161,title:"乙巳 2025年 仕事始め - 新春の幸運と飛躍へのスタート",date:"2024年2月6日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/161/%E1%BA%A2NH_B%C3%8CA__WEB__2_.png",excerpt:"2025年 乙巳(きのとみ)の仕事始め。新年初の幸運を迎え、成功と飛躍への道を切り拓くエネルギーに満ちたスタートを切りました!🎊",gradient:"from-red-200 via-orange-200 to-pink-200",summary:"2025年の新年仕事始め(Khai Xuân)の様子と、社員同士の新年の挨拶。",content:["🎊 乙巳 2025年 仕事始め - 新春の幸運と飛躍へのスタート 🎊","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/726/content_1.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/727/content_3.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/729/content_6.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/730/content_9.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/732/content_14.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/733/content_16.png]","本日、React Plusは2025年の新年を迎える「Khai Xuân(仕事始めの祝賀会)」を歓喜に満ちた雰囲気の中で開催しました。これは、幸運、成功、そして飛躍への新しい旅の始まりです。","このイベントは単なる新年のスタートではなく、私たち全員が集い、前向きなエネルギーと成功への期待を共有する大切な時間です。CEOをはじめとする経営陣からのお年玉(Lì Xì)と新年の激励の言葉で、2025年も力強く前進していきます。"]},{id:160,title:"乙巳の新春を祝う - 万福如意",date:"2024年1月25日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/160/%E1%BA%A2NH_B%C3%8CA__WEB__1_.png",excerpt:"新春のお慶びを申し上げます。乙巳(きのとみ)の
9483年が、皆様にとって万事順調で幸多き一年となりますように!🌸",gradient:"from-rose-200 via-pink-200 to-red-200",summary:"テト(旧正月)を祝う公式な新年のご挨拶。",content:["🌸 乙巳の新春を祝う - 万福如意 🌸","テト(旧正月)は、ベトナム民族にとって最も重要な伝統的祝日の一つです。乙巳の新年を迎えるにあたり、React Plusはすべてのお客様、パートナー、そして社員の皆様に新年のご挨拶を申し上げます。","新しい年が皆様にとって、健康、平安、そして大いなる繁栄の年となりますよう心よりお祈り申し上げます。本年も皆様と共に数多くの成功を築き上げていけることを楽しみにしております。"]},{id:159,title:"Sum Up 2024 - 輝かしい旅路の始まり",date:"2024å¹´1月15日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/159/%E1%BA%A2NH_B%C3%8CA__WEB.png",excerpt:"2024年の歩みを振り返る「Sum Up 2024 - 新たな旅の始まり」を開催。全社員がこれまでの挑戦と成功を称え合い、次なる目標に向けて団結しました。✨",gradient:"from-blue-200 via-indigo-200 to-cyan-200",summary:"2024年の年次総会「Sum Up」の様子。",content:["[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/711/content_1.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/712/content_2.png]","✨ Sum Up 2024 - 輝かしい旅路の始まり ✨","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/713/content_6.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/714/content_7.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/715/content_8.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/716/content_9.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/717/content_12.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/718/content_14.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/719/content_18.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/720/content_19.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/721/content_24.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/722/content_25.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/723/content_22.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/724/content_23.png]","2024年が幕を閉じ、React Plusの全メンバーによる絶え間ない努力と数え切れないほどの思い出を残しました。この1年間、私たちは共に集い、働き、アイデアを交わし合い、数多くの困難を乗り越えて目標を達成してきました。","「Sum Up 2024」は、これまでの旅路を誇りを持って振り返るとともに、2025年という輝かしい新たな章を開くための基盤となりました。未来に向けて、私たちはさらに強く前進していきます。皆様、本当にお疲れ様でした!"]},{id:158,title:"React Plus - 新年2025のご挨拶",date:"2024å¹´1月2日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/158/%C4%90%C6%A1n_gi%E1%BA%A3n_H%C3%ACnh_tr%C3%B2n_Ti%E1%BB%87m_b%C3%A1nh_Facebook_Qu%E1%BA%A3ng_c%C3%A1o__1_.png",excerpt:"新年あけましておめでとうございます!2024年が終わりを告げ、希望に満ちた2025年が幕を開けました。React Plusからの新年のご挨拶です。🎉",gradient:"from-amber-200 via-yellow-200 to-orange-200",summary:"2025年の新年に向けた公式な挨拶メッセージ。",content:["[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/710/image.png]","🎉 React Plus - 2025å¹´ 新年のご挨拶 🎉","2024年が正式に幕を閉じました。React Plusは、これまで共に歩んでくださったすべてのお客様、パートナーの皆様方に心より感謝申し上げます。","新しい年が皆様にとって、健康と幸運、そして大いなる成功に満ちた素晴らしい一年となりますようお祈り申し上げます。2025年も変わらぬご愛顧とご支援を賜りますようお願い申し上げます。"]},{id:156,title:"Merry Christmas - 穏やかなクリスマスを",date:"2023å¹´12月24日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/156/%E1%BA%A2NH_B%C3%8CA__WEB__36_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/156/8.png",excerpt:"Merry Christmas! 🎄 React Plusの皆様へ、平和で幸せなクリスマスをお祈りします。オフィスの至る所がクリスマスの温もりと喜びに包まれています!",gradient:"from-green-200 via-emerald-200 to-red-200",summary:"クリスマスシーズンの社内のお祝いメッセージ。",content:["🎄 Merry Christmas - 穏やかなクリスマスを 🎄","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/699/content_1.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/700/content_2.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/701/content_3.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/707/content_9.png]","クリスマスの足音がすぐそこまã
9483§è¿‘づき、年末のフェスティバルシーズンならではの温もりと喜びが広がっています。この特別な時期に、皆様が家族や仲間と過ごすすべての瞬間を大切にし、温かい雰囲気を共に楽しんでください。","React Plusのすべてのメンバーに、平和で幸せなクリスマスが訪れますように。Merry Christmas & Happy New Year!"]},{id:154,title:"Recap Manager Escape 2024:Big name - Big game - 2025年への扉を開く",date:"2023å¹´12月15日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/154/%E1%BA%A2NH_B%C3%8CA__WEB__29_.png",excerpt:"経営層向け合宿「Recap Manager Escape 2024: Big name - Big game」を開催!自然豊かなバーウィで、次なる戦略に向けた結束を強めました。🏕️",gradient:"from-violet-200 via-fuchsia-200 to-purple-200",summary:"マネージャー対象のチームビルディング・戦略会議「Manager Escape 2024」のレポート。",content:["[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/694/content_4.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/693/content_2.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/692/content_3.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/689/content_9.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/698/content_8.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/696/content_6.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/697/content_7.png]","🏕️ Recap Manager Escape 2024:Big name - Big game - 2025年への扉を開く 🏕️","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/690/content_10.png]","去る12月8日の土曜日、React PlusのBODと全マネージャーは「Manager Escape 2024」の一環として、自然豊かなバーウィで有意義な一日を過ごしました。","このイベントは、リーダーたちがリラックスしつつ、オープンな対話を通じてビジョンを共有し合うプラットフォームとなりました。この結束力が、大きな舞台(Big Game)に挑むための強力な武器となり、2025年のさらなる飛躍を約束します。"]},{id:105,title:"ロゴおよび事業戦略の変更に関するお知らせ",date:"2023å¹´12月6日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/105/Thi%E1%BA%BFt_k%E1%BA%BF_ch%C6%B0a_c%C3%B3_t%C3%AAn__3_.png",excerpt:"React Plusはロゴデザインと事業戦略を刷新しました!Fintechソリューションの提供へとシフトし、新たな成長ステージへと進みます。🚀",gradient:"from-blue-200 via-indigo-200 to-cyan-200",summary:"新しい企業ロゴと「Fintechソリューション」に焦点を当てた新事業変革の発表。",content:["🚀 ロゴおよび事業戦略の変更に関するお知らせ 🚀","2023å¹´12月6日より、React Plusは正式にブランドアイデンティティ(ロゴ)と企業戦略を刷新いたしました。","【新事業戦略:Fintech Solution, Fintech System Development】","過去5年間のWebアプリ開発に焦点を当てた成長を経て、私たちはFintechシステムの開発へと主軸を移します。この新たな方向性により、専門性と提供価値をさらに高めていく所存です。"]},{id:104,title:"Management Escape 2023 - 次なるステージへの布石",date:"2023å¹´12月4日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/104/2.png",excerpt:"「Management Escape 2023」がソクソンで開催されました。'Your Quality, Our Priority'をスローガンに、次年度の戦略を練り上げました。⛰️",gradient:"from-teal-200 via-emerald-200 to-green-200",summary:"経営層と管理職による合宿「Management Escape 2023」の活動報告と方針決定。",content:["[IMAGE:/uploads/ckeditor/pictures/386/content_2.png]","⛰️ Management Escape 2023 - 次なるステージへの
9483布石 ⛰️","12月2日から3日にかけて、ハノイのソクソンにて経営層向け合宿「Management Escape 2023」が開催されました。","会議では、2024年の新たなスローガンとして『Your Quality, Our Priority(あなたの品質が、私たちの最優先事項)』が採択されました。経営陣とマネージャーが一丸となり、品質向上と組織の成長に向けた力強い戦略が議論されました。","[IMAGE:/uploads/ckeditor/pictures/384/content_1.png]","[IMAGE:/uploads/ckeditor/pictures/385/content_3.png]","[IMAGE:/uploads/ckeditor/pictures/389/content_6.png]","[IMAGE:/uploads/ckeditor/pictures/390/content_7.png]","[IMAGE:/uploads/ckeditor/pictures/367/content_8.png]","[IMAGE:/uploads/ckeditor/pictures/369/content_12.png]","[IMAGE:/uploads/ckeditor/pictures/371/content_14.png]","[IMAGE:/uploads/ckeditor/pictures/376/content_19.png]","[IMAGE:/uploads/ckeditor/pictures/373/content_16.png]"]},{id:103,title:"React Plus、品質向上を目指すManagement Escape Eventを開催",date:"2023年12月4日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/103/Thie%CC%82%CC%81t_ke%CC%82%CC%81_chu%CC%9Ba_co%CC%81_te%CC%82n__5_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/103/Thie%CC%82%CC%81t_ke%CC%82%CC%81_chu%CC%9Ba_co%CC%81_te%CC%82n__5_.png",excerpt:"「品質向上」をテーマにしたManagement Escape Eventを開催。18名のリーダーが集結し、来年の目標に向けたアクションプランを策定しました!🎯",gradient:"from-purple-200 via-violet-200 to-fuchsia-200",summary:"12月に開催された経営層向けイベント「Management Escape 2024」の詳細レポート。",content:["🎯 React Plus、品質向上を目指すManagement Escape Eventを開催 🎯","ハノイのソクソンにて開催された「Management Escape (ME) 2024」は、『品質向上』をメインテーマに掲げ、取締役会および18名のマネージャー陣が参加しました。","2024年の目標である『Your Quality, Our Priority』に直結するこの合宿では、現状の課題を分析し、サービス品質を最大限に高めるための具体的なアクションプランが綿密に策定されました。"]},{id:102,title:"2023年度 定期健康診断を実施",date:"2023年11月25日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/102/3.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/102/5.png",excerpt:"2023年の定期健康診断を実施しました。React Plusでは「人」こそが最大の資産であり、社員の健康管理を最も重要視しています。🩺",gradient:"from-sky-200 via-blue-200 to-cyan-200",summary:"社員の健康をサポートする2023年度の定期健康診断の実施報告。",content:["🩺 2023年度 定期健康診断を実施 🩺","[IMAGE:/uploads/ckeditor/pictures/360/content_1.png]","React Plusの成長の歩みの中で、「人」は常にすべての活動の中心であり、人的資源の開発と働きやすい環境づくりの基盤です。","[IMAGE:/uploads/ckeditor/pictures/362/content_6.png]","[IMAGE:/uploads/ckeditor/pictures/361/content_4.png]","社員一人ひとりの心身の健康を守るため、今年も定期健康診断を実施しました。私たちはこれからも、社員が健康で安心して働けるよう、包括的なヘルスケアサポートを提供し続けます。"]},{id:151,title:"「Mr.Right+」- React Plusの男性社員に捧げる忘れられない一日",date:"2023年11月19日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/151/%E1%BA%A2NH_B%C3%8CA__WEB__28_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/151/5.png",excerpt:"「Mr.Right+」- React Plusの「強い半分」である男性社員たちに感謝と喜びを届ける、国際男性デーの特別な一日。🍻",gradient:"from-blue-200 via-sky-200 to-indigo-200",summary:"国際男性デーを祝うイベント「Mr.Right+」の報告。",content:["🍻 「Mr.Right+」- React Plusの男性社員に捧げる忘れられない一日 🍻","本日、11月19日の国際男性デーを記念して、React Plusの素晴らしい男性陣が、新たな体験とパーティーの雰囲気に「酔いしれる」最高の一日を過ごしました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/665/content_1.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/667/content_2.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/666/content_3.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/668/content_6.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/671/content_8.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/675/content_12.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/680/content_16.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/679/content_17.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/681/content_18.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/677/content_14.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/683/content_22.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/684/content_24.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/685/content_23.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/686/content_25.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/687/content_26.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/688/content_27.png]","会社の発展を支える大きな柱である彼らに、心からの感謝を込めて楽しいエンターテインメントとプレゼントが贈られました。これからも常にポジティブなエネルギーを発信し、React Plusをさらに盛り上げていってください!"]},{id:101,title:"2024年の公式テーマ発表:『Your Quality, Our Priority』",date:"2023年11月10日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/101/YOUR_QUALITY_OUR_QUANTITY.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/101/YOUR_QUALITY_OUR_QUANTITY.png",excerpt:"2024年の公式テーマ『Your Quality, Our Priority』を発表。2023年の「Level Up」で培った力をベースに、今年は最高品質の提供にコミットします!🏆",gradient:"from-
9483amber-200 via-yellow-200 to-orange-200",summary:"2024年の新たな企業テーマ「Your Quality, Our Priority」の公式発表。",content:["🏆 2024年の公式テーマ発表:『Your Quality, Our Priority』 🏆","2023年はReact Plusにとって多くの貴重な学びを得た年でした。前年の目標「Level Up」を通じて、私たちは知識やスキルを磨き、個々のレベルを大きく引き上げることができました。","そして2024年、私たちは新たなテーマ『Your Quality, Our Priority(あなたの品質が、私たちの最優先事項)』を掲げます。高められたスキルを最大限に発揮し、お客様に最高の品質と価値を提供することをお約束します。"]},{id:148,title:"カラオケ伝説 シーズン1 - 黄金の歌声探しの旅が閉幕",date:"2023å¹´11月5日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/148/%E1%BA%A2NH_B%C3%8CA__WEB__27_.png",excerpt:"React Plus初のカラオケ大会「カラオケ伝説 シーズン1」がついに完結!情熱と才能に溢れる歌声が会場を魅了し、大盛況のうちに幕を閉じました。🎤",gradient:"from-fuchsia-200 via-pink-200 to-rose-200",summary:"社内カラオケ大会「カラオケ伝説 シーズン1」の開催と結果報告。",content:["[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/658/content_1.png]","🎤 カラオケ伝説 シーズン1 - 黄金の歌声探しの旅が閉幕 🎤","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/661/content_4.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/662/content_5.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/663/content_6.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/664/content_7.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/659/content_2.png]","ついに「カラオケ伝説 シーズン1」の熱き戦いが、感動と興奮のうちに正式に幕を閉じました。開催の発表以来、本コンテストは全社員から非常に大きな関心を集めました。","ステージでは、隠れた才能が次々と披露され、熱狂的な歓声と拍手が湧き起こりました。音楽を通じてチームの絆が深まった、まさに伝説の一夜となりました。次回のシーズンにもぜひご期待ください!"]},{id:100,title:"Mirai Plus、最先端AI製品を携え「FIT2023」に出展",date:"2023å¹´10月26日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/100/5.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/100/5.png",excerpt:"Mirai Plusが東京で開催される日本最大級の金融ITフェア「FIT2023」に出展します!最先端のAI製品とFintechソリューションを披露します。🇯🇵",gradient:"from-rose-200 via-red-200 to-pink-200",summary:"東京国際フォーラムで開催された「FIT2023」への出展とAI製品の紹介。",content:["🇯🇵 Mirai Plus、最先端AI製品を携え「FIT2023」に出展 🇯🇵","Mirai Plusは、10月26日から27日にかけて東京国際フォーラムで開催された日本最大の金融ITフェア「Financial Information Technology 2023(FIT2023)」に出展しました。","経営戦略を支援するAIソリューションやFintechサービスを紹介し、多くの日本企業や専門家と革新的なテクノロジーの未来について実りある議論を交わしました。","[IMAGE:/uploads/ckeditor/pictures/345/content_1.png]","[IMAGE:/uploads/ckeditor/pictures/344/content_2.png]","[IMAGE:/uploads/ckeditor/pictures/349/content_7.png]","[IMAGE:/uploads/ckeditor/pictures/350/content_8.png]","[IMAGE:/uploads/ckeditor/pictures/351/content_9.png]"]},{id:147,title:"React Plus、「FIT 2024(金融国際情報技術展)」に出展",date:"2023å¹´10月25日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/147/%E1%BA%A2NH_B%C3%8CA__WEB__26_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/147/9.png",excerpt:"10月17日〜18日、日本最大級の金融ITフェア「FIT 2024(金融国際情報技術展)」に出展しました!高度な技術ソリューションを世界の皆様に紹介しました。🇯🇵",gradient:"from-slate-200 via-zinc-200 to-neutral-200",summary:"日本市場における「FIT 2024」金融IT展示会への出展報告。",content:["[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/656/content_1.png]","🇯🇵 React Plus、「FIT 2024(金融国際情報技術展)」に出展 🇯🇵","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/655/content_6.png]","去る10月17日から18日までの2日間、React Plusの代表団は、日本最大級の金融・情報技術展示会である「FIT 2024」に参加しました。","このイベントは、当社の専門的なオフショア開発サービスとイノベーションソリューションを広く紹介する絶好の機会となりました。日本の多くのパートナー企業様と有意義な意見交換を行い、大きな反響をいただきました。"]},{id:146,title:"「Là Em」- 感情の彩りと甘いメロディー、20/10を祝して",date:"2023å¹´10月20日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/146/%E1%BA%A2NH_B%C3%8CA__WEB__25_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/146/19.png",excerpt:"「Là Em(私自身)」- 10月20日ベトナム女性の日を記念し、女性特有の豊かな感情の色彩とç”
9483˜ã„ひとときを分かち合う特別な一連のイベントが行われました。💄",gradient:"from-pink-200 via-rose-200 to-fuchsia-200",summary:"ベトナム女性の日を祝う社内キャンペーン「Là Em」の報告。",content:["[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/637/content_19.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/649/content_11.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/638/content_20.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/641/content_3.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/648/content_10.png]","💄 「Là Em」- 感情の彩りと甘いメロディー、20/10を祝して 💄","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/646/content_8.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/635/content_17.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/652/content_14.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/643/content_6.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/636/content_18.png]","先週、React Plusの女性陣は、ベトナム女性の日(10月20日)を祝う一連のアクティビティ「Là Em(私自身)」に参加し、記憶に残るひとときを過ごしました。","一人ひとりの輝く笑顔とキラキラと輝く瞳が、愛とこだわりに満ちたこのイベントの成功を物語っています。React Plusは、美しく自信に溢れる「皆様」をこれからも大切にサポートし続けます。"]},{id:98,title:"オンライン学習システム「React Plus E-Learning」が稼働開始",date:"2023å¹´10月15日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/98/383206699_804486321686487_1111813497002205830_n.jpg",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/98/383206699_804486321686487_1111813497002205830_n.jpg",excerpt:"社内学習プラットフォーム「React Plus E-Learning」がローンチされました!いつでもどこでも自己研鑽ができる環境が整いました。📚",gradient:"from-green-200 via-emerald-200 to-teal-200",summary:"社員のスキルアップを目的とした独自のEラーニングシステムの導入のお知らせ。",content:["📚 オンライン学習システム「React Plus E-Learning」が稼働開始 📚","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tf4/1/16/2728.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tf4/1/16/2728.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tf4/1/16/2728.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tf4/1/16/2728.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tf4/1/16/2728.png]","React Plusのトレーニングセンターは、社員(React-ers)の継続的な自己研鑽のニーズに応えるため、独自のテクノロジープラットフォーム「React Plus E-Learning」を立ち上げました。","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tf4/1/16/2728.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tf4/1/16/2728.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tf4/1/16/2728.png]","2023年のテーマである「Level Up」に基づき、技術スキルからソフトスキルまで幅広いコースが提供されます。これにより、全社員が自身のキャリアパスに合わせて効果的に学習を進めることができます。","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tf4/1/16/2728.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tf4/1/16/2728.png]"]},{id:97,title:"React Plusの温かな中秋節",date:"2023å¹´9月29日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/97/Thie%CC%82%CC%81t_ke%CC%82%CC%81_chu%CC%9Ba_co%CC%81_te%CC%82n__17_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/97/Thie%CC%82%CC%81t_ke%CC%82%CC%81_chu%CC%9Ba_co%CC%81_te%CC%82n__17_.png",excerpt:"中秋節のお祝いを開催!オフィスに中秋節の温かい雰囲気が広がり、社員全員に美味しい月餅が贈られました。🌕",gradient:"from-yellow-200 via-amber-200 to-orange-200",summary:"ベトナムの伝統行事である中秋節を祝う社内イベントと月餅の配布。",content:["🌕 React Plusの温かな中秋節 🌕","今年も中秋節の季節が到来し、街中のお祭りのムードが優しく私たちのオフィスにも広がっています。","会社からの感謝の気持ちを込めて、約200箱の美味しい月餅が社員一人ひとりに手渡されました。伝統的な行事を通じて、社員同士の絆と家族のような温かさを再確認する素晴らしい時間となりました。","[IMAGE:/uploads/ckeditor/pictures/336/content_1.png]","[IMAGE:/uploads/ckeditor/pictures/337/content_3.png]","[IMAGE:/uploads/ckeditor/pictures/339/content_4.png]","[IMAGE:/uploads/ckeditor/pictures/340/content_5.png]","[IMAGE:/uploads/ckeditor/pictures/341/content_6.png]","[IMAGE:/uploads/ckeditor/pictures/342/content_7.png]"]},{id:96,title:"Azure OpenAIを活用した最先端AIソリューションの提供へ",date:"2023å¹´9月21日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/96/2.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/96/2.png",excerpt:"React Plusは、Microsoftの「Azure OpenAI」サービスを活用し、安全で高度なAIソリューションの提供を開始しました。🧠",gradient:"from-sky-200 via-blue-200 to-cyan-200",summary:"MicrosoftのAzure OpenAIを利用した高度なAIソリューションの提供開始のお知らせ。",content:["[IMAGE:/uploads/ckeditor/pictures/335/content_2.png]","🧠 Azure OpenAIを活用した最先端AIソリューションの提供へ 🧠","世界的なAI革命とデジタルトランスフォーメーションの急速な進展の中で、AIの活用は企業の競争力を左右する重要な要素となっています。","React Plusは、Microsoftのエンタープライズ向け「Azure OpenAI」サービスを活用することで、強力かつセキュリティが確保された高度なAIソリューションを提供し、お客様のビジネス革新を支援します。"]},{id:142,title:"2024年定期健康診断:React Plus、社員の健康と共に歩む",date:"2023å¹´9月15日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/142/%E1%BA%A2NH_B%C3%8CA__WEB__22_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/142/7.png",excerpt:"2024年の定期健康診断を実施。社員の健康維持は、React Plusが常に優先する最も重要な投資です。🩺",gradient:"from-teal-200 via-cyan-200 to-sky-200",summary:"SBBゼネラルホスピタルと連携して実施された2024年度の社員向け定期健康診断の報告。",content:["[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/620/content_2.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/621/content_3.png]","🩺 2024年定期健康診断:React Plus、社員の健康と共に歩む 🩺","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/619/content_1.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/624/content_6.png]","9月14日の土曜日、React PlusはSBBゼネラルホスピタルと連携し、全社員を対象とした2024年度の定期健康診断を大成功のうちに実施しました。","健康診断は、社員が自身の健康状態をチェックし、万病を予防するための重要な活動です。React Plusは、これからも社員一人ひとりの心身の健康と安全を最優先に考え、働きやすい環境づくりに尽力してまいります。"]},{id:95,title:"忘れられない「React Plus Programmer’s Day 2023」",date:"2023å¹´9月15日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/95/3.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/95/3.png",excerpt:"「Programmer's Day 2023」を開催!日夜コードと闘うプログラマーたちを讃え、楽しいゲームや軽食でリフレッシュする最高の一日でした。💻",gradient:"from-fuchsia-200 via-purple-200 to-pink-200",summary:"プログラマーの日を祝う社内イベント「Programmer’s Day 2023」の活動報告。",content:["[IMAGE:/uploads/ckeditor/pictures/333/content_1.png]","[IMAGE:/uploads/ckeditor/pictures/325/content_4.png]","[IMAGE:/uploads/ckeditor/pictures/326/content_2.png]","💻 忘れられない「React Plus Programmer’s Day 2023」 💻","[IMAGE:/uploads/ckeditor/pictures/327/content_5.png]","[IMAGE:/uploads/ckeditor/pictures/328/content_6.png]","[IMAGE:/uploads/ckeditor/pictures/329/content_7.png]","[IMAGE:/uploads/ckeditor/pictures/330/content_8.png]","[IMAGE:/uploads/ckeditor/pictures/331/content_9.png]","[IMAGE:/uploads/ckeditor/pictures/332/content_10.png]","9月13日、React Plusのオフィスにて「Programmer’s Day 2023(プログラマーの日)」を祝う特別なイベントが開催されました。","日頃から複雑なコードと向き合い、素晴らしいシステムを作り上げているエンジニアたちに感謝を込めて、オフィスの装飾、軽食パーティー、そして楽しいミニゲームが用意されました。皆で笑い合い、大いにリフレッシュできた1日でした。"]},{id:94,title:"国際プログラマーの日 おめでとうございます",date:"2023å¹´9月13日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/94/Programmer__2_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/94/Programmer__2_.png",excerpt:"9月13日は国際プログラマーの日💻!昼夜を問わず情熱を注ぐReact Plusのエンジニアたちへ、心からの感謝と祝福を送ります。",gradient:"from-blue-200 via-sky-200 to-indigo-200",summary:"9月13日「国際プログラマーの日」を祝う公式メッセージ。",content:["[IMAGE:/uploads/ckeditor/pictures/323/content_Programmer__2_.png]","💻 国際プログラマーの日 おめでとうございます 💻","本日9月13日(一年のうち256日目)は「国際プログラマーの日」です。テクノロジーの発展に多大な貢献をしているプログラマーの功績を称える特別な日です。","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/2764.png]","React Plusのすべてのエンジニアに感謝いたします。今後もコードを通じてクリエイティブなアイデアに命を吹き込み、さらなる飛躍を遂げられるよう心からお祈り申し上げます。","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/2764.png]"]},{id:93,title:"React-erの日本での学習と体験レポート",date:"2023å¹´9月5日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/93/4.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/93/4.png",excerpt:"React Plusのエンジニア2名が日本での研修プログラムに参加!異文化に触れ、新たな技術と知見を学ぶ彼らの体験レポートをお届けします。🗾",gradient:"from-teal-200 via-emerald-200 to-green-200",summary:"React-er(React Plus社員)の日本研修および現地での滞在体験レポート。",content:["🗾 React-erの日本での学習と体験レポート 🗾","[IMAGE:/uploads/ckeditor/pictures/321/content_3.png]","[IMAGE:/uploads/ckeditor/pictures/322/content_4.png]","React PlusのエンジニアであるPhùng Việt TiếnとNguyễn Phương Bắcが日本ï¼
9483ˆæ—¥å‡ºãšã‚‹å›½ï¼‰ã«é™ã‚Šç«‹ã£ã¦ã‹ã‚‰1ヶ月以上が経過しました。","彼らは新鮮な驚きと感動に満ちた貴重な体験を共有してくれました。新しい技術の学習はもちろん、日本の文化や労働環境に直接触れることで、大きな成長を遂げています。"]},{id:141,title:"9月2日 ベトナム国慶節おめでとうございます",date:"2023å¹´9月2日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/141/%E1%BA%A2NH_B%C3%8CA__WEB__21_.png",excerpt:"9月2日、ベトナム国慶節おめでとうございます!独立と自由の精神を胸に、React Plusはこれからも力強く前進し続けます。🇻🇳",gradient:"from-red-200 via-rose-200 to-red-200",summary:"9月2日のベトナム国慶節を祝う公式メッセージ。",content:["[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/618/content_457869472_1039051974896586_4946495310584646164_n.jpg]","🇻🇳 9月2日 ベトナム国慶節おめでとうございます 🇻🇳","「ベトナムは自由と独立を享受する権利があり、事実として自由で独立した国となっている。」","ホー・チ・ミン主席の独立宣言を振り返り、全ベトナム国民の団結と愛国心を誇りに思います。React Plusは、平和で豊かな国づくりに貢献していくことをお約束します。"]},{id:92,title:"「React Plus 2023 Cup」 シーズン閉幕",date:"2023å¹´8月25日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/92/1.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/92/1.png",excerpt:"社内サッカー大会「React Plus 2023 Cup」が大盛況のうちに閉幕!男女両部門の熱戦の末、ついにチャンピオンが決定しました。🏆⚽",gradient:"from-rose-200 via-red-200 to-orange-200",summary:"社内サッカー大会「React Plus 2023 Cup」の決勝戦および閉幕レポート。",content:["[IMAGE:/uploads/ckeditor/pictures/312/content_1.png]","⚽「React Plus 2023 Cup」 シーズン閉幕 ⚽","[IMAGE:/uploads/ckeditor/pictures/314/content_3.png]","[IMAGE:/uploads/ckeditor/pictures/315/content_2.png]","[IMAGE:/uploads/ckeditor/pictures/319/content_7.png]","8月21日の夜、人民警察学院のT32スタジアムにて、React Plusの社員による男子部門および女子部門の決勝戦が大成功のうちに開催されました。","数週間に及ぶ激しい戦いを勝ち抜き、チャンピオンの栄冠を手にしたチームの皆様、本当におめでとうございます!参加したすべての選手と、熱い声援を送ったサポーターの皆様に感謝いたします。"]},{id:91,title:"9月2日 建国記念日の休業に関するお知らせ",date:"2023å¹´8月22日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/91/Ngh%C4%A9_l%E1%BB%85_09__2_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/91/Ngh%C4%A9_l%E1%BB%85_09__2_.png",excerpt:"9月2日のベトナム建国記念日(国慶節)に伴う休業日に関するお知らせです。皆様、素晴らしい連休をお過ごしください!🇻🇳",gradient:"from-amber-200 via-yellow-200 to-orange-200",summary:"9月2日(ベトナム国慶節)の休業スケジュールに関する公式のお知らせ。",content:["[IMAGE:/uploads/ckeditor/pictures/311/content_Ngh%C4%A9_l%E1%BB%85_09__2_.png]","🇻🇳 9月2日 建国記念日の休業に関するお知らせ 🇻🇳","お客様およびパートナー企業の皆様へ","平素は格別のご高配を賜り、厚く御礼申し上げます。誠に勝手ながら、ベトナムの建国記念日(国慶節)に伴い、以下の期間を休業とさせていただきます。休業期間中はご不便をおかけしますが、何卒ご理解賜りますようお願い申し上げます。"]},{id:90,title:"「English for Business Management」トレーニングコースがä¿
9483®äº†",date:"2023å¹´8月18日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/90/Course__English_for_Business_Management__1_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/90/Course__English_for_Business_Management__1_.png",excerpt:"マネジメント層向けの「English for Business Management」コースが修了しました!グローバルビジネスに不可欠な英語力を強化しました。📚🗣️",gradient:"from-cyan-200 via-blue-200 to-indigo-200",summary:"管理職を対象としたトレーニングコース「English for Business Management」の修了報告。",content:["[IMAGE:/uploads/ckeditor/pictures/302/content_5.png]","[IMAGE:/uploads/ckeditor/pictures/305/content_9.png]","📚「English for Business Management」トレーニングコースが修了 📚","[IMAGE:/uploads/ckeditor/pictures/300/content_4.png]","去る8月14日、React PlusのTraining Centerが主催した英語トレーニングコース「English for Business Management(ビジネス・マネジメントのための英語)」が正式に終了しました。","このコースにはBODおよび各部門のマネージャーが参加し、国際的なビジネス環境におけるコミュニケーション能力とマネジメントスキルを大幅に向上させました。"]},{id:138,title:"Reactによるソフトウェア開発の最新トレンド",date:"2023å¹´8月15日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/138/%E1%BA%A2NH_B%C3%8CA__WEB__5_.png",excerpt:"Reactを使用したソフトウェア開発の最新トレンドをご紹介。柔軟性と高いパフォーマンスにより、Reactは依然として最前線を走っています。💻",gradient:"from-blue-200 via-indigo-200 to-purple-200",summary:"Reactを使用したソフトウェア開発の最新トレンドと今後の展望についての解説記事。",content:["💻 Reactによるソフトウェア開発の最新トレンド 💻","Reactは、その柔軟性と高いパフォーマンスにより、ソフトウェア開発において最も人気のあるツールの1つとなっています。しかし、他のテクノロジーと同様に、Reactも常に進化し続けています。","今後のトレンドとして、Server ComponentsやConcurrent機能の強化をはじめ、AIとの統合による開発効率の飛躍的な向上が期待されています。React Plusは常に技術の最前線に立ち続け、これらの最新トレンドを取り入れたソリューションを提供します。"]},{id:89,title:"「Mirai Plus株式会社」設立のお知らせ",date:"2023å¹´8月15日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/89/Thi%E1%BA%BFt_k%E1%BA%BF_ch%C6%B0a_c%C3%B3_t%C3%AAn__14_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/89/Thi%E1%BA%BFt_k%E1%BA%BF_ch%C6%B0a_c%C3%B3_t%C3%AAn__14_.png",excerpt:"日本法人「Mirai Plus株式会社」を正式に設立!React Plus Groupはグローバル市場、特に日本市場への進出をさらに加速させます。🏢🇯🇵",gradient:"from-indigo-200 via-violet-200 to-purple-200",summary:"日本における新法人「Mirai Plus株式会社」の設立に関する公式発表。",content:["[IMAGE:/uploads/ckeditor/pictures/296/content_Thi%E1%BA%BFt_k%E1%BA%BF_ch%C6%B0a_c%C3%B3_t%C3%AAn__13_.png]","🏢「Mirai Plus株式会社」設立のお知らせ🏢","8月14日、React Plus Groupは日本において正式に法人を設立いたしました。","【オフィス所在地】:〒108-0023 東京都港区芝浦4-12-38 CANAL GATE SHIBAURA 6階","「Mirai Plus株式会社」の設立は、日本市場でのビジネス拡大と、お客様へのより迅速で高品質なサービス提供を目指す当社の重要な戦略的マイルストーンです。"]},{id:88,title:"セールスチームのキーメンバー2名が日本へ出張",date:"2023å¹´8月10日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/88/1.png",f
9483irstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/88/1.png",excerpt:"セールスチームのマネージャーとリーダーが日本のReact Plusオフィスへ出張中!下半期のビジネスチャンス拡大に向け、奮闘しています。✈️💼",gradient:"from-pink-200 via-rose-200 to-red-200",summary:"セールスチームの管理職2名による日本オフィス出張および業務拡大活動の報告。",content:["✈️ セールスチームのキーメンバー2名が日本へ出張 ✈️","[IMAGE:/uploads/ckeditor/pictures/292/content_1.png]","この度、日本のReact Plusオフィスは、セールスチームからNguyệt Minh(セールスマネージャー)とHuyền Tạ(セールスリーダー)という2名の美しい女性を迎えました。","[IMAGE:/uploads/ckeditor/pictures/291/content_2.png]","今回の日本出張は、下半期における素晴らしい成果の創出と、多くの新規パートナーとの協力機会の拡大を約束する重要なミッションです。"]},{id:87,title:"激動の時代にプログラマーが成長するための3つのマインドセット",date:"2023年8月5日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/87/3_mindset__3_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/87/3_mindset__3_.png",excerpt:"変化し続ける時代において、プログラマーがキャリアを築くために不可欠な「3つのマインドセット」をご紹介します。🧠💻",gradient:"from-slate-200 via-gray-200 to-zinc-200",summary:"激動の時代においてプログラマーが成長し続けるための3つの重要なマインドセットについての解説記事。",content:["🧠 激動の時代にプログラマーが成長するための3つのマインドセット 🧠","1. 適応力(Adaptability)","プロジェクトの中で、要件、期限、または作業プロセスが急に変更されることがあります。変化を恐れるのではなく、プロンプトに対応し、新しい状況に適応する方法を模索することが重要です。","これに加えて、継続的な学習意欲と、チームと協力して問題を解決するマインドセットが、不確実な時代を乗り越える力となります。"]},{id:137,title:"2024年第2四半期 優秀プロジェクト表彰式を開催",date:"2023年7月25日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/137/%E1%BA%A2NH_B%C3%8CA__WEB__19_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/137/%E1%BA%A2NH_B%C3%8CA__WEB__18_.png",excerpt:"2024年第2四半期の優秀プロジェクト表彰式を開催。数々の困難を乗り越え、目覚ましい成果を上げたチームの皆様、本当におめでとうございます!🏆",gradient:"from-yellow-200 via-amber-200 to-orange-200",summary:"2024年度第2四半期の優秀プロジェクトを表彰する社内イベントの報告。",content:["🏆 2024年第2四半期 優秀プロジェクト表彰式を開催 🏆","React Plusは先日、2024年第2四半期において優秀な成果を収めたプロジェクトチームへの表彰式を実施しました。","この3ヶ月間、数多くのReactersが絶え間ない努力を続け、あらゆる困難を乗り越えて素晴らしい結果を残しました。彼らの献身とチームワークに心から感謝と祝意を表します。"]},{id:86,title:"7月度 献血ボランティア活動報告 - 国立血液学・輸血研究所での取り組み",date:"2023年7月24日",category:"ボランティア",type_post:"charity_story",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/86/%E1%BA%A2NH_B%C3%8CA__WEB__33_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/86/%E1%BA%A2NH_B%C3%8CA__WEB__33_.png",excerpt:"React Plusのボランティアチームは、国立血液学・輸血研究所にて献血活動を実施いたしました。経営陣(BOD)および20名以上の社員が自発的に参加し、尊い命を救うための社会貢献を行いました。",gradient:"from-red-200 via-rose-200 to-pink-200",summary:"2023年7月29日、React Plusの有志メンバーが国立血液学・輸血研究所を訪れ、年次献血ボランティア活動を実施いたしました。全血献血に加え血小板献血にも積極的に参加し、医療現場の血液確保に貢献いたしました。",content:["【活動報告】7月度 献血ボランティア活動の実施報告","2023年7月29日、React Plusのボランティアチームは、ベトナム国立血液学・輸血研究所(National Institute of Hematology and Blood Transfusion)にて献血活動を実施いたしました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/555/content_3.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/559/content_5.png]","本活動には、取締役会(BOD)メンバーをはじめ、社内各部門から20名以上の社員が自発的に参加いたしました。当日は早朝より健康診断および問診を通過したメンバーが順次献血に臨みました。","今回が初めての献血となる社員から、すでに通算20回以上の経験を持つベテラン社員まで幅広く参加し、中には3時間以上を要する成分献血(血小板献血)に名乗りを上げるメンバーもいました。救急医療現場で必要とされる血液供給の一助となり、治療を待つ患者様の力になりたいという強い想いのもと、全員が終始前向きな姿勢で取り組みを完遂しました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/556/content_2.png]","経営陣から現場のエンジニア・スタッフに至るまで、全社が一丸となった本取り組みを通じて、React Plusが掲げる人道的価値観と社会貢献の企業文化がより一層強固なものとなりました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/560/content_6.png]","React Plusは今後も、医療支援をはじめとする各種ボランティア活動を定期的に推進し、持続可能で温かい社会の形成に貢献してまいります。"]},{id:136,title:"Mid-Year Review 開催 - 顧客主導の確固たる組織へ",date:"2023年7月20日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/136/%E1%BA%A2NH_B%C3%8CA__WEB__17_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/136/10.png",excerpt:"「Mid-Year Review - The Republic And Customer Driven」を開催。激動の上半期を振り返り、顧客第一の組織づくりに向けた次なる戦略を打ち立てました。📊",gradient:"from-sky-200 via-blue-200 to-indigo-200",summary:"上半期の総括および方針発表の場である「
9483Mid-Year Review」イベントの報告。",content:["[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/595/content_1.png]","📊 Mid-Year Review 開催 - 顧客主導の確固たる組織へ 📊","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/598/content_5.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/597/content_4.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/605/content_12.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/604/content_11.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/603/content_10.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/601/content_9.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/599/content_6.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/606/content_13.png]","数多くの挑戦と困難に満ちた上半期の刺激的な旅を終え、React Plusは「Mid-Year Review - The Republic And Customer Driven」を開催しました。","このイベントでは、過去6ヶ月間に達成した成果を客観的に振り返るとともに、「顧客第一」の精神を再確認しました。下半期に向けた戦略的アクションプランを共有し、チーム一丸となって目標に向かって進んでいきます。"]},{id:135,title:"React Plus、第2四半期の勤怠優秀者(皆勤賞)を表彰",date:"2023å¹´7月18日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/135/%E1%BA%A2NH_B%C3%8CA__WEB__16_.png",excerpt:"第2四半期の「皆勤賞(勤怠優秀者)」を表彰!高いプロ意識と規律を持ち、模範となる働き方を見せたメンバーに称賛の意を表します。⏱️",gradient:"from-green-200 via-teal-200 to-emerald-200",summary:"第2四半期の勤怠優秀者に対する社内表彰のお知らせ。",content:["⏱️ React Plus、第2四半期の勤怠優秀者(皆勤賞)を表彰 ⏱️","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/593/content_%E1%BA%A2NH_B%C3%8CA__WEB__16_.png]","第2四半期、業務における成果だけでなく、多くのReact Plusメンバーが高いプロ意識と規律正しい労働時間を維持し、皆の模範となりました。","時間厳守と安定した出席率は、個人の責任感の表れであり、チーム全体の生産性向上に直結します。素晴らしい姿勢を示してくれた優秀なメンバーたちに拍手を送ります!"]},{id:85,title:"Gen Z世代のエンジニアたち - 個性と才能が拓く開発の未来",date:"2023å¹´7月17日",category:"ブログ",type_post:"blog",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/85/Gen_Z_-_M%E1%BB%99t_th%E1%BA%BF_h%E1%BB%87.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/85/Gen_Z_-_M%E1%BB%99t_th%E1%BA%BF_h%E1%BB%87.png",excerpt:"React Plusで活躍するGen Z世代の若手エンジニアたち。高い技術習得力と柔軟な発想力、グローバルなコミュニケーション能力を武器に、日本向け開発プロジェクトで新たな価値を創出する彼らの素顔と強みに迫ります。",gradient:"from-cyan-200 via-blue-200 to-indigo-200",summary:"React Plusで活躍するGen Z世代の若手エンジニアたち。高い技術習得力と柔軟な発想力、グローバルなコミュニケーション能力を武器に、日本向け開発プロジェクトで新たな価値を創出する彼らの素顔と強みに迫ります。",content:["【カルチャーコラム】Gen Z世代のエンジニアたち - 個性と才能が拓く開発の未来","急速に進化するテクノロジー業界において、デジタルネイティブである「Gen Z(Z世代)」の台頭は、組織に新たな活力とイノベーションをもたらしています。React Plusにおいても、20代前半の若手エンジニアたちが主力メンバーとしてプロジェクトの最前線で活躍しています。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/post/first_image/85/Gen_Z_-_M%E1%BB%99t_th%E1%BA%BF_h%E1%BB%87.png]","■ 1. デジタルネイティブならではの圧倒的な技術キャッチアップ速度","Z世代のエンジニアは、AIや最新のフロントエンド技術(React, Next.js, TypeScript等)の学習曲線がé
9483žå¸¸ã«æ—©ãã€æ–°ã—いツールやベストプラクティスを自発的に取り入れる高い好奇心を備えています。従来の枠組みにとらわれず、効率的な開発手法を積極的に模索する姿勢は、開発スピードの向上に直結しています。","■ 2. 多様性とオープンなコミュニケーション","言語や文化の違いを恐れず、フラットで率直な意見交換を好むのも彼らの特徴です。日本語学習にも意欲的で、日本のビジネス文化や顧客ニーズを理解しようと真摯に向き合っています。","■ 3. 個性を尊重し、チームで最高のパフォーマンスを発揮する環境","React Plusでは、年次や経験に関わらず、優れたアイデアや成果を正当に評価するオープンな組織文化を大切にしています。若手の自由な発想と、シニアエンジニア・マネージャー層の堅牢な設計力が融合することで、日本のお客様に信頼される強固な開発体制を実現しています。"]},{id:130,title:"[Recap] React Plus Parody Cup - 5-0の圧倒的勝利で幕を閉じる",date:"2023å¹´7月13日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/130/%E1%BA%A2NH_B%C3%8CA__WEB__12_.png",excerpt:"「React Plus Parody Cup」開催!Test-R1チームとBO-C1チームによる白熱のサッカー親善試合。5-0の圧倒的スコアで会場は熱狂に包まれました!⚽",gradient:"from-lime-200 via-green-200 to-emerald-200",summary:"社内のサッカー親善試合「React Plus Parody Cup」の試合結果とレポート。",content:["⚽ [Recap] React Plus Parody Cup - 5-0の圧倒的勝利で幕を閉じる ⚽","2024å¹´7月13日の土曜日の朝、Ngoạ Longスタジアムは、Test-R1チームとBO-C1チームの間で行われた特別な親善試合「React Plus Parody Cup」で熱気に包まれました。","試合は活気ある雰囲気の中で進行し、選手たちの情熱を大いに呼び起こしました。結果は5-0の圧倒的なスコアで決着しましたが、何よりチームの団結力とスポーツマンシップを高める素晴らしいイベントとなりました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/582/content_2.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/585/content_5.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/584/content_4.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/583/content_3.png]"]},{id:84,title:"「Semi-Sum Up 2023」活動報告",date:"2023å¹´7月12日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/84/1_optimized__1_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/84/3_optimized__1_.png",excerpt:"「Semi-Sum Up 2023」が開催されました。上半期の成果を総括し、下半期の目標達成に向けた力強いアクションプランを共有しました!📊",gradient:"from-lime-200 via-green-200 to-emerald-200",summary:"2023年上半期の業績総括と下半期の事業計画を議論した「Semi-Sum Up 2023」のイベント報告。",content:["[IMAGE:/uploads/ckeditor/pictures/272/content_5_optimized.png]","📊「Semi-Sum Up 2023」活動報告 📊","[IMAGE:/uploads/ckeditor/pictures/271/content_2_optimized__2_.png]","[IMAGE:/uploads/ckeditor/pictures/273/content_4_optimized.png]","[IMAGE:/uploads/ckeditor/pictures/274/content_7_optimized.png]","2023å¹´7月8日(土)、BODおよび上級管理職が参加する中、「Semi-Sum Up 2023」イベントが大成功のうちに開催されました。","本イベントは、2023年上半期のパフォーマンスを客観的に評価し、下半期の目標(Level Up)を達成するための戦略的な調整を行う非常に重要な機会となりました。"]},{id:132,title:"2024年上半期 教育プログラム優秀受講者の表彰",date:"2023å¹´7月10日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/132/%E1%BA%A2NH_B%C3%8CA__WEB__13_.png",excerpt:"2024年上半期、社内研修に参加し優秀な成績を収めたメンバーを表彰!絶え間ない学習意欲とスキル向上への
9483努力を称えます。📚",gradient:"from-purple-200 via-violet-200 to-indigo-200",summary:"2024年上半期における社内教育プログラムの優秀受講者の表彰報告。",content:["📚 2024年上半期 教育プログラム優秀受講者の表彰 📚","過去6ヶ月間、React Plusのメンバーは、会社が主催するオンラインおよびオフラインのトレーニングコースを通じて、知識とスキルの向上に多くの時間と熱意を注いできました。","継続的な学習文化は当社の強みです。今回、極めて意欲的に学習し、優秀な成果を収めたメンバーを表彰しました。学び続ける姿勢を持つ皆様は、会社の財産です。"]},{id:83,title:"React Plus ボランティア活動:スラム・ヴェ小学校への歩み",date:"2023年7月5日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/83/thie%CC%82%CC%81t-ke%CC%82%CC%81-chu%CC%9Ba-co%CC%81-te%CC%82n-_2__optimized.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/83/thie%CC%82%CC%81t-ke%CC%82%CC%81-chu%CC%9Ba-co%CC%81-te%CC%82n-_2__optimized.png",excerpt:"React Plusボランティアチームがライチャウ省のSlam Vè(スラム・ヴェ)小学校へ赴き、地域の子供たちへ支援と愛を届けました。🏫",gradient:"from-teal-200 via-green-200 to-emerald-200",summary:"ライチャウ省のスラム・ヴェ小学校に対する教育支援ボランティアの活動報告。",content:["🏫 React Plus ボランティア活動:スラム・ヴェ小学校への歩み 🏫","[IMAGE:/uploads/ckeditor/pictures/269/content_Thie%CC%82%CC%81t_ke%CC%82%CC%81_chu%CC%9Ba_co%CC%81_te%CC%82n__3_-min.png]","「もし自分が不運だと感じる日があるなら、悩みを置いてボランティアに出かけてみてください。きっと人生に対してよりポジティブな見方ができるようになるはずです。」","[IMAGE:/uploads/ckeditor/pictures/270/content_2_optimized__1_.png]","今回のReact Plusのボランティの目的地は、山々の間に位置するライチャウ省のSlam Vè(スラム・ヴェ)小学校でした。私たちは学習支援物資を届け、子供たちに知識と希望の光を灯すお手伝いをしました。この意味深い活動に貢献できたことを嬉しく思います。"]},{id:82,title:"【BrSEインタビュー】セールスからBrSE(ブリッジSE)への挑戦と軌跡 - 営業経験を武器に",date:"2023年6月23日",category:"ブログ",type_post:"blog",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/82/%E1%BA%A2NH_B%C3%8CA__WEB__15_.png",excerpt:"営業職からIT業界の架け橋であるBrSE(ブリッジSE)へ転身したBùi Thị Huyềnへのインタビュー。ビジネス視点と顧客理解を活かし、日越間の開発プロジェクトを成功に導くコミュニケーションの秘訣を語ります。",gradient:"from-blue-200 via-indigo-200 to-purple-200",summary:"営業職からIT業界の架け橋であるBrSE(ブリッジSE)へ転身したBùi Thị Huyềnへのインタビュー。ビジネス視点と顧客理解を活かし、日越間の開発プロジェクトを成功に導くコミュニケーションの秘訣を語ります。",content:["【キャリアインタビュー】セールスからBrSE(ブリッジSE)へ - 顧客の心をつかむコミュニケーション力","オフショア開発において、日本のお客様とベトナムの開発チームをつなぐ「BrSE(Bridge Software Engineer)」は、プロジェクトの成否を決定づける最重要ポジションの一つです。今回は、セールス職からキャリアチェンジを果たし、React Plusで第一線のBrSEとして活躍するBùi Thị Huyềnに話を聞きました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/post/cover_image/82/%E1%BA%A2NH_B%C3%8CA__WEB__15_.png]","■ 営業経験がもたらした「顧客視点」という強み","「セールス時代に培った最大の武器は、相手の意図や潜在的な課題を汲み取る力(リスニング力と共感力)です。お客様が言葉にされていない背景やビジネスゴールを深く理解することで、開発チームに対してより正確かつ的確な要件定義を伝えることができます。」","■ 技術知識のキャッチアップと社内メンター制度","異分野からの挑戦にあたり、IT基礎知識やReactエコシステムの習得には社内の充実したトレーニングプログラムとシニアエンジニアのメンター制度が大きな支えとなりました。「技術を理解した上でビジネス提案ができるBrSE」を目指し、日々実践を通じた学びを重ねています。","■ 今後の展望","「単なる仕様書の伝達役にとどまらず、お客様のビジネス成長を共に牽引するパートナーとしてのBrSEを目指します。日越の架け橋として、より付加価値の高いサービスを提供してまいります。」"]},{id:126,title:"RPG Super League 2024 開幕 - Be Brave, Be Bold, Be Heroes",date:"2023年6月20日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/126/%E1%BA%A2NH_B%C3%8CA__WEB__13_.png",excerpt:"サッカーファンの皆様に朗報!社内サッカー大会「RPG Super League 2024」がいよいよ今夏開幕。熱き戦いが再び始まります!⚽",gradient:"from-blue-200 via-sky-200 to-cyan-200",summary:"社内サッカー大会「RPG Super League 2024」の開幕と詳細告知。",content:["[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tbe/1/16/1f3c6.png]","⚽ RPG Super League 2024 開幕 - Be Brave, Be Bold, Be Heroes ⚽","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t58/1/16/1f929.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tbe/1/16/1f3c6.png]","王者のスポーツを愛するすべての皆様へ朗報です!社内サッカー大会「RPG Super League 2024」が正式にスタートし、2024年7月に熱き戦いが繰り広げられます。","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t58/1/16/1f929.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t22/1/16/260e.png]","勇気を持って困難に立ち向かい、大胆に限界を突破し、あなた自身のヒーローになりましょう!各チームの素晴らしいプレーにご期待ください。","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tc0/1/16/1f4e9.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tf3/1/16/1f539.png]"]},{id:81,title:"【マネージャー対談】D4マネージャー Dương Văn Định:「IT業界において、学び続けることは仕事そのものである」",date:"2023年6月15日",category:"ブログ",type_post:"blog",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/81/du%CC%9Bo%CC%9Bng-va%CC%86n-%C4%90i%CC%A3nh-_1__optimized.png",f
9483irstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/81/du%CC%9Bo%CC%9Bng-va%CC%86n-%C4%90i%CC%A3nh-_1__optimized.png",excerpt:"React Plus開発第4事業部(D4)マネージャーのDương Văn Địnhが語る、エンジニアの成長論と組織マネジメント。「学び続ける姿勢」を組織文化とし、高難度な日本向けシステム開発を牽引するリーダーシップの神髄に迫ります。",gradient:"from-sky-200 via-blue-200 to-indigo-200",summary:"React Plus開発第4事業部(D4)マネージャーのDương Văn Địnhが語る、エンジニアの成長論と組織マネジメント。「学び続ける姿勢」を組織文化とし、高難度な日本向けシステム開発を牽引するリーダーシップの神髄に迫ります。",content:["【マネジメント対談】D4マネージャー Dương Văn Định:「IT業界において、学び続けることは仕事そのものである」","テクノロジーの進化スピードが加速する現代において、エンジニア組織が持続的に価値を発揮し続けるための鍵とは何か。React Plusの開発部門を統括するDương Văn Địnhが、チームビルディングとエンジニアの成長哲学について語りました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/post/first_image/81/du%CC%9Bo%CC%9Bng-va%CC%86n-%C4%90i%CC%A3nh-_1__optimized.png]","■ 「業務」と「学習」を切り離さない組織設計","「ITの世界では、昨日までの正解が明日には時代遅れになることがあります。そのため、私たちは『学習』を業務外の個人的な活動としてではなく、日々の業務プロセスそのものに組み込むことを推奨しています。コードレビューでのナレッジ共有や社内勉強会を通じて、個人の学びを組織全体の資産へと昇華させています。」","■ 日本市場で求められる「徹底的な品質意識」の醸成","「日本のクライアント企業様と信頼関係を築くためには、単にコードが動くだけでは不十分です。例外処理の網羅性、非機能要件への配慮、可読性と保守性の高いアーキテクチャ設計など、細部に至るまで妥協しないクラフトマンシップをチーム全員に徹底させています。」","■ 失敗を恐れず挑戦を称えるカルチャー","「新しいアーキテクチャや技術スタックの採用にはリスクが伴いますが、挑戦しないことこそが最大のリスクです。失敗から素早く学び、改善サイクルを回す文化が、強いエンジニア集団を育てると信じています。」"]},{id:125,title:"React Plus Group、「AI EXPO TOKYO 2024」に出展",date:"2023年6月10日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/125/444487055_968661798602271_5918296467249479602_n__1_.jpg",excerpt:"React Plus Groupは、日本最大級のAI専門展示会「AI EXPO TOKYO 2024」に出展しました。AI技術の最新動向を共有し、国際的なプレゼンスを高めました。🤖",gradient:"from-indigo-200 via-violet-200 to-purple-200",summary:"「AI EXPO TOKYO 2024」への出展報告と、AI分野におけるReact Plus Groupの取り組み。",content:["🤖 React Plus Group、「AI EXPO TOKYO 2024」に出展 🤖","2024年5月22日から24日にかけて、React Plus Groupは重要なパートナー企業様とともに「AI EXPO TOKYO 2024」に参加しました。","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t22/1/16/260e.png]","本展示会は、AI分野で活動する企業にとって日本最大規模のトレードショーです。私たちは最新のAIソリューションを展示し、多数の来場者や専門家と有意義な情報交換を行いました。","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tc0/1/16/1f4e9.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tf3/1/16/1f539.png]"]},{id:80,title:"React Plusにおけるプロジェクトマネージャー(PM)の
9483役割定義と業務標準",date:"2023年6月9日",category:"ブログ",type_post:"blog",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/80/project-manager_optimized.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/80/project-manager_optimized.png",excerpt:"オフショア開発プロジェクトの成否を分けるプロジェクトマネージャー(PM)の職務定義と品質管理基準。リーダーシップ、リスク管理、ステークホルダー間のコミュニケーション体制について詳細に解説します。",gradient:"from-blue-200 via-teal-200 to-emerald-200",summary:"オフショア開発プロジェクトの成否を分けるプロジェクトマネージャー(PM)の職務定義と品質管理基準。リーダーシップ、リスク管理、ステークホルダー間のコミュニケーション体制について詳細に解説します。",content:["【組織標準】React Plusにおけるプロジェクトマネージャー(PM)の4大責務と運用ガイドライン","React Plusでは、高品質なオフショア開発ソリューションを安定して提供するため、プロジェクトマネージャー(PM)の業務責務とプロセス標準を明確に定義しています。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/post/first_image/80/project-manager_optimized.png]","■ 1. リーダーシップとチーム統括(Leadership & Coordination)","プロジェクトのビジョンとゴールを明確にし、開発チーム(フロントエンド、バックエンド、QA、BrSE)が一体となって最高のアウトプットを出せるよう適切なリソース配分とタスク管理を行います。","■ 2. 徹底したステークホルダー・コミュニケーション(Communication)","日本側クライアントと開発現場の間における情報ギャップをゼロにするため、定例会、デイリースタンドアップ、詳細な進捗レポートを運用し、透明性の高いプロジェクト運営を維持します。","■ 3. プロアクティブなリスク管理と課題解決(Problem Solving)","潜在的な仕様変更やスケジュール遅延リスクを早期に検知し、エスカレーション手順に則って迅速な対策を講じます。課題発生時には原因分析(なぜなぜ分析)と再発防止策を徹底します。","■ 4. 厳格な品質保証体制(Quality Assurance)","単体テスト・結合テストの網羅性確認、コードレビューの徹底、セキュリティチェックリストの遵守を監督し、日本のエンタープライズ基準に合致する納品物を担保します。"]},{id:79,title:"6月1日 国際こどもの日 おめでとうございます",date:"2023年6月1日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/79/happy-children_s-day-_1__optimized.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/79/happy-children_s-day-_1__optimized.png",excerpt:"6月1日は国際こどもの日です🎈!React Plusの全社員のご家族のお子様へ、愛と感謝を込めてギフトバウチャーをお贈りしました。🎁",gradient:"from-fuchsia-200 via-pink-200 to-rose-200",summary:"6月1日の国際こどもの日を祝し、社員の子供たちへギフトを贈呈したお知らせ。",content:["[IMAGE:/uploads/ckeditor/pictures/215/content_happy-children_s-day_optimized.png]","🎈 6月1日 国際こどもの日 おめでとうございます 🎈","6月1日の「国際こどもの日」は、世界中が小さな天使たちに愛と敬意を向ける、子供たちのための特別な日です。","React Plusでは、社員一人ひとりの生活や家族とのつながりを大切にしています。この特別な日に、社員のお子様たちへ健康と笑顔を願ってギフトバウチャーをお贈りしました。Happy Children's Day!"]},{id:124,title:"RPGメンバーによる献血活動「分かち合いの旅 - 希望の光」",date:"2023年5月28日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/124/1.png",f
9483irstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/124/1.png",excerpt:"若きRPGメンバーの情熱を形に!「分かち合いの旅 - 希望の光」献血プログラムに多数の社員が参加し、社会へ命の贈り物を届けました。❤️",gradient:"from-rose-200 via-red-200 to-red-300",summary:"「分かち合いの旅 - 希望の光」と題した社内献血イベントの活動報告。",content:["[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tf4/1/16/2728.png]","❤️ RPGメンバーによる献血活動「分かち合いの旅 - 希望の光」 ❤️","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tf4/1/16/2728.png]","2024å¹´5月25日(土)、国立血液学・輸血研究所において、自発的な献血プログラム「分かち合いの旅 - 希望の光」が大成功のうちに開催されました。","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t22/1/16/260e.png]","多くのRPGメンバーが朝早くから集まり、社会への貢献と命を救うという尊い目的のために献血を行いました。皆様の温かいご支援に心から感謝いたします。","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tc0/1/16/1f4e9.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tf3/1/16/1f539.png]","[IMAGE:/uploads/ckeditor/pictures/557/content_1.png]","[IMAGE:/uploads/ckeditor/pictures/555/content_3.png]","[IMAGE:/uploads/ckeditor/pictures/558/content_4.png]","[IMAGE:/uploads/ckeditor/pictures/559/content_5.png]","[IMAGE:/uploads/ckeditor/pictures/562/content_8.png]","[IMAGE:/uploads/ckeditor/pictures/556/content_2.png]","[IMAGE:/uploads/ckeditor/pictures/561/content_7.png]"]},{id:78,title:"【オンサイト特集】Phùng Việt Tiến:「日本オフィスでのオンサイト勤務がもたらす圧倒的な価値と成長」",date:"2023å¹´5月25日",category:"ブログ",type_post:"blog",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/78/mi%CC%80nh-nghi%CC%83-la%CC%80m-vie%CC%A3%CC%82c-onsite-co%CC%81-ra%CC%82%CC%81t-nhie%CC%82%CC%80u-%C4%91ie%CC%82%CC%89m-lo%CC%9B%CC%A3i-ma%CC%80-la%CC%80m-vie%CC%A3%CC%82c-tho%CC%82ng-thu%CC%9Bo%CC%9B%CC%80ng-kho%CC%82ng-co%CC%81-%C4%91u%CC%9Bo%CC%9B%CC%A3c_-_1__optimized.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/78/mi%CC%80nh-nghi%CC%83-la%CC%80m-vie%CC%A3%CC%82c-onsite-co%CC%81-ra%CC%82%CC%81t-nhie%CC%82%CC%80u-%C4%91ie%CC%82%CC%89m-lo%CC%9B%CC%A3i-ma%CC%80-la%CC%80m-vie%CC%A3%CC%82c-tho%CC%82ng-thu%CC%9Bo%CC%9B%CC%80ng-kho%CC%82ng-co%CC%81-%C4%91u%CC%9Bo%CC%9B%CC%A3c_-_1__optimized.png",excerpt:"React Plus日本法人(東京)へのオンサイト赴任を控えたエンジニアPhùng Việt Tiếnへのインタビュー。顧客と対面で協働するオンサイトならではのメリットや、日本特有の開発文化への適応について語ります。",gradient:"from-amber-200 via-orange-200 to-red-200",summary:"React Plus日本法人(東京)へのオンサイト赴任を控えたエンジニアPhùng Việt Tiếnへのインタビュー。顧客と対面で協働するオンサイトならではのメリットや、日本特有の開発文化への適応について語ります。",content:["【オンサイトインタビュー】日本駐在で拓くエンジニアの新たな地平 - 顧客密着型開発の現場から","React Plusでは、日本のお客様との緊密な連携と迅速な意思決定を実現するため、優秀なエンジニアやBrSEを東京オフィスへ派遣するオンサイト体制を整備しています。今回は、日本赴任を控えたPhùng Việt Tiếnにインタビューを行いました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/post/first_image/78/mi%CC%80nh-nghi%CC%83-la%CC%80m-vie%CC%A3%CC%82c-onsite-co%CC%81-ra%CC%82%CC%81t-nhie%CC%82%CC%80u-%C4%91ie%CC%82%CC%89m-lo%CC%9B%CC%A3i-ma%CC%80-la%CC%80m-vie%CC%A3%CC%82c-tho%CC%82ng-thu%CC%9Bo%CC%9B%CC%80ng-kho%CC%82ng-co%CC%81-%C4%91u%CC%9Bo%CC%9B%CC%A3c_-_1__optimized.png]","■ オンサイト勤務ならではの3大アドバンテージ","1. リアルタイムな要件整合:対面での対話により、リモートでは見落とされがちな細かなニュアンスや温度感を直接共有でき、仕様の認識齟齬を未然に防止。","2. æ·±ã
9483„ビジネスコンテキストの理解:クライアントの事業戦略やエンドユーザーの利用実態を間近で観察し、より本質的な技術提案が可能。","3. 日本のビジネスマナーとプロフェッショナリズムの体得:迅速なレスポンス、報告・連絡・相談(ホウレンソウ)の徹底を現場で直接実践。","■ 日本赴任に向けた意気込み","「会社からの手厚いサポートに感謝しつつ、現地で得た知見やお客様の信頼をベトナム側のオフショアチームへ還元し、双方にとって最高のシナジーを生み出したいと考えています。」"]},{id:76,title:"【プロジェクト表彰】Data Visualizerプロジェクトチームが顧客高評価を獲得、特別賞与を授与",date:"2023å¹´5月19日",category:"ブログ",type_post:"blog",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/76/data-visualizer_optimized.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/76/data-visualizer_optimized.png",excerpt:"React Plus開発チーム(D8・QA・BrSE)が開発を担当した「Data Visualizer」プロジェクトが、短期間での高品質なデリバリーと柔軟な対応力により、日本のお客様から高い評価をいただき特別表彰を受けました。",gradient:"from-purple-200 via-pink-200 to-rose-200",summary:"React Plus開発チーム(D8・QA・BrSE)が開発を担当した「Data Visualizer」プロジェクトが、短期間での高品質なデリバリーと柔軟な対応力により、日本のお客様から高い評価をいただき特別表彰を受けました。",content:["【プロジェクト実績】Data Visualizer開発チーム、短期間での卓越したデリバリーによりクライアントから高評価を獲得","React Plusの開発チーム(第8事業部D8、QA部門、BrSE Ly)が手がけたデータ可視化システム「Data Visualizer」プロジェクトにおいて、わずか2週間の集中スプリントで高度なパネル構築とマップ連携機能を完遂し、日本のクライアント企業様より絶賛の声をいただきました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/post/first_image/76/data-visualizer_optimized.png]","■ 成果と評価のポイント","・自動車関連データおよび位置情報のリアルタイム可視化ダッシュボードの構築","・厳格な納期遵守と、仕様変更に対する迅速かつ柔軟なエンジニアリング対応","・QAチームによる徹底した検証体制により、本番環境への欠陥ゼロ納品を達成","■ 次期フェーズへの展開と特別表彰","本成果を受け、クライアント企業様からは次期フェーズの大幅な拡張発注をいただき、React Plus取締役会(BOD)よりチームメンバー全員へ特別賞与(スポットボーナス)が授与されました。チーム一同、更なる品質向上と技術革新へ邁進してまいります。"]},{id:123,title:"設立5周年記念旅行「Company Trip & 5th Anniversary」総括",date:"2023å¹´5月10日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/123/DUY00709.jpg",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/123/DUY00709.jpg",excerpt:"設立5周年記念旅行「Company Trip & 5th Anniversary」が大盛況のうちに終了。絆を深めた数日間の思い出と感動を振り返ります!🌴",gradient:"from-emerald-200 via-teal-200 to-cyan-200",summary:"創立5周年を祝う社員旅行「Company Trip & 5th Anniversary」の総括レポート。",content:["[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tb6/1/16/2708.png]","🌴 設立5周年記念旅行「Company Trip & 5th Anniversary」総括 🌴","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tb6/1/16/2708.png]","歓喜に満ちた「Company Trip & 5th Anniversary」のフライトが無事に着陸し、React Plusの全メンバーの心に誇りと感動の余韻を残しました。","[IMAGE:/uploads/ckeditor/pictures/533/content_DUY00700.jpg]","[IMAGE:/uploads/ckeditor/pictures/536/content_DUY00746.jpg]","[IMAGE:/uploads/ckeditor/pictures/535/content_DUY00734.jpg]","[IMAGE:/uploads/ckeditor/pictures/527/content_DUY09271.jpg]","[IMAGE:/uploads/ckeditor/pictures/531/content_DUY00664.jpg]","[IMAGE:/uploads/ckeditor/pictures/553/content_442480547_963574462444338_3767058906821551981_n.jpg]","[IMAGE:/uploads/ckeditor/pictures/554/content_442482286_963574519110999_8103510696782525053_n.jpg]","[IMAGE:/uploads/ckeditor/pictures/551/content_444946830_963562079112243_6211319257281362617_n.jpg]","[IMAGE:/uploads/ckeditor/pictures/550/content_444952358_963656775769440_6505067744764283003_n.jpg]","[IMAGE:/uploads/ckeditor/pictures/548/content_442480358_963561769112274_4630948439903646399_n.jpg]","[IMAGE:/uploads/ckeditor/pictures/547/content_441542337_962966282505156_6454337585468505085_n.jpg]","[IMAGE:/uploads/ckeditor/pictures/546/content_442488604_962966302505154_7253537499776315985_n.jpg]","[IMAGE:/uploads/ckeditor/pictures/544/content_436384234_962940469174404_5910578208672984505_n.jpg]","[IMAGE:/uploads/ckeditor/pictures/543/content_441539207_963578219110629_3591201085816654042_n.jpg]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t22/1/16/260e.png]","美しいリゾート地で過ごした数日間は、単なる休息を超え、チームの結束力を大いに高める貴重な時間となりました。これからの5年も、共に素晴らしい実績を作り上げていきましょう!","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tc0/1/16/1f4e9.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tf3/1/16/1f539.png]"]},{id:75,title:"React Plus 設立4周年 - フーコック島での甘い思い出",date:"2023å¹´5月10日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/75/say_optimized.png",f
9483irstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/75/say_optimized.png",excerpt:"React Plusの設立4周年をフーコック島でお祝いしました!これまでの情熱と献身に感謝し、共に歩んだ素晴らしい4年間の甘い思い出を振り返ります。🌴",gradient:"from-cyan-200 via-sky-200 to-blue-200",summary:"React Plus設立4周年を記念した、フーコック島での社員旅行およびお祝いのレポート。",content:["🌴 React Plus 設立4周年 - フーコック島での甘い思い出 🌴","[IMAGE:/uploads/ckeditor/pictures/212/content_tzp06805_optimized.jpg]","[IMAGE:/uploads/ckeditor/pictures/211/content_tzp06844_optimized.jpg]","[IMAGE:/uploads/ckeditor/pictures/213/content_img_9514_optimized.jpg]","本日、私たちはReact Plusの4回目の誕生日を共にお祝いしました!この4年間は、すべてのメンバーの情熱と献えのない努力に満ちた、忘れられない時間です。","私たちはこの記念すべき節目を美しいフーコック島で過ごしました。美しい海と自然に囲まれ、共に築き上げた成果を称え合い、絆をさらに深めました。次の年も、さらなる高みを目指して共に歩んでいきましょう。"]},{id:74,title:"React Plus Summer Trip 2023 - フーコック島を大満喫",date:"2023年4月28日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/74/_travel-poster__optimized.png",excerpt:"「React Plus Summer Trip 2023」がフーコック島でついに開催!過去最大の社員旅行で、仕事の疲れを吹き飛ばし、全力で楽しみました!✈️🏖️",gradient:"from-blue-200 via-indigo-200 to-purple-200",summary:"フーコック島で開催された「React Plus Company Trip 2023」の活動報告。",content:["✈️ React Plus Summer Trip 2023 - フーコック島を大満喫 ✈️","[IMAGE:/uploads/ckeditor/pictures/206/content__travel-poster__optimized.png]","[IMAGE:/uploads/ckeditor/pictures/207/content_1_optimized.png]","React-ersの皆さん、フーコック島へのフライトの準備は万端でしたか?","[IMAGE:/uploads/ckeditor/pictures/208/content_3_optimized.png]","[IMAGE:/uploads/ckeditor/pictures/209/content_2_optimized.png]","[IMAGE:/uploads/ckeditor/pictures/210/content_4_optimized.png]","当社にとってこれまでで最も特別で大規模な社員旅行「Company Trip 2023」が大成功のうちに開催されました。ハノイからベトナム最南端の楽園まで飛行機で移動し、美しいビーチでのリラックスから熱いチームビルディングまで、全社員で最高の思い出を作り上げました!"]},{id:72,title:"React Plus FunFiesta - 2023年最も熱いE-sportイベント",date:"2023年4月25日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/72/esports_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/72/esports_.png",excerpt:"2023年で最もエキサイティングなeスポーツイベント「React Plus FunFiesta」が開催!FiFa、モバイル・レジェンド、五目並べで熱戦が繰り広げられました。🎮",gradient:"from-orange-200 via-amber-200 to-yellow-200",summary:"4月に開催された社内eスポーツ大会「React Plus FunFiesta」の開催報告。",content:["🎮 React Plus FunFiesta - 2023年最も熱いE-sportイベント 🎮","React Plusの全ゲーマーへ朗報です!2023年4月23日から27日にかけて、特別な社内ゲーミングイベント「FunFiesta」が開催されました。","大会では『FiFa』『モバイル・レジェンド』『五目並べ(Caro)』の3つの人気競技が行われ、各プレイヤーの熱意と優れたスキルが光りました。仕事の枠を超えて、誰もが楽しめる素晴らしいエンターテインメントの場となりました。"]},{id:121,title:"キャンペーン「The Dream Of Flight」- 今後の5年へ向けて",date:"2023年4月12日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/121/%E1%BA%A2NH_B%C3%8CA__WEB__8_.png",excerpt:"「The Dream Of Flight」キャンペーン開催。RPGの今後の5年に向けた、あなたの夢や目標を教えてください!✨",gradient:"from-
9483amber-200 via-orange-200 to-red-200",summary:"創立5周年に伴う、今後のビジョンを語る社内キャンペーン「The Dream Of Flight」の告知。",content:["[IMAGE:/uploads/ckeditor/pictures/517/content_434316641_927668266034958_4016272002567945121_n.jpg]","✨ キャンペーン「The Dream Of Flight」- 今後の5年へ向けて ✨","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t40/1/16/1f4a5.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tf4/1/16/2728.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t5d/1/16/26a1.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tce/1/16/1f325.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tbe/1/16/1f3c6.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t34/1/16/23f0.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/1f38a.png]","RPGでのこれからの5年に関するあなたの「夢」を教えてください!","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t40/1/16/1f4a5.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tf4/1/16/2728.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t5d/1/16/26a1.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tce/1/16/1f325.png]","RPGが歩んできた5年間の軌跡は、単なる企業の歴史であるだけでなく、若さと情熱、そして挑戦の象徴です。次のステージへ飛躍するための皆様の素晴らしいアイデアと夢をお待ちしています。","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tbe/1/16/1f3c6.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t34/1/16/23f0.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tb4/1/16/1f38a.png]"]},{id:71,title:"React Plus、「Japan IT Week Spring 2023」に出展",date:"2023å¹´4月10日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/71/B%C3%ACa_SK.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/71/B%C3%ACa_SK.png",excerpt:"日本最大のIT展示会「Japan IT Week Spring 2023」に出展しました!自社の優れたサービスを世界中の潜在的なお客様にご紹介しました。🇯🇵",gradient:"from-slate-200 via-zinc-200 to-neutral-200",summary:"東京国際展示場で開催された「Japan IT Week Spring 2023」への出展報告。",content:["[IMAGE:/uploads/ckeditor/pictures/181/content_SK2.png]","[IMAGE:/uploads/ckeditor/pictures/183/content_SK5.png]","🇯🇵 React Plus、「Japan IT Week Spring 2023」に出展 🇯🇵","「Japan IT Week Spring 2023」への参加は、React Plusの製品とサービスを世界中のお客様に広く紹介する絶好の機会となりました。これを機に、日本のIT市場におけるビジネスネットワークをさらに強固なものにしていきます。","[IMAGE:/uploads/ckeditor/pictures/176/content_SK1.png]"]},{id:120,title:"ダナン市における「RPG Building」建設プロジェクトが始動",date:"2023å¹´4月8日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/120/%E1%BA%A2NH_B%C3%8CA__WEB__7_.png",excerpt:"ダナン市にて、新たに「RPG Building」の建設プロジェクトが始動しました!会社の発展における新たなマイルストーンとなる計画をお知らせします。🏢",gradient:"from-slate-200 via-gray-200 to-zinc-200",summary:"ベトナム中部(ダナン)での新オフィスビル「RPG Building」建設開始のお知らせ。",content:["🏢 ダナン市における「RPG Building」建設プロジェクトが始動 🏢","会社の成長過程における非常に有意義な新たなマイルストーンとして、RPGはダナン市においてモダンでラグジュアリーな新ビル「RPG Building」の建設開始を発表いたします。","この新しい拠点は、ダナン支社のメンバーに最高の労働環境を提供するだけでなく、中部地域でのビジネス拡大戦略の強力な基盤となることでã
9483—ょう。"]},{id:119,title:"「RPG Barber Shop」で男性陣のスタイルをアップデート",date:"2023å¹´4月5日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/119/%E1%BA%A2NH_B%C3%8CA__WEB__6_.png",excerpt:"オフィスが理髪店に!?「RPG Barber Shop」が限定オープン。プロのスタイリストを招き、男性社員たちのスタイルを素敵にアップデートしました。💈",gradient:"from-cyan-200 via-sky-200 to-blue-200",summary:"男性社員向けのリフレッシュ・キャンペーン「RPG Barber Shop」の開催報告。",content:["[IMAGE:/uploads/ckeditor/pictures/516/content_z5270599730242_e4791173b77a7f80084beead4d087dcc.jpg]","💈 「RPG Barber Shop」で男性陣のスタイルをアップデート 💈","[IMAGE:/uploads/ckeditor/pictures/514/content_z5270599718875_3aa9ef7a4fc1faa3c9f804254e18ad06.jpg]","[IMAGE:/uploads/ckeditor/pictures/511/content_z5270599706442_ba7ed6e8b3dcb0ac7f28110596994e51.jpg]","[IMAGE:/uploads/ckeditor/pictures/509/content_z5270658995977_25a44072fcb80dfab258aa5279a00e41.jpg]","本日、オフィス内に「RPG Barber Shop」が限定でオープンし、男性陣にオフィスでのヘアカットという特別で新鮮な体験を提供しました。","プロのスタイリストたちによって、皆さんのスタイルがより洗練され、自信に満ちた姿へと生まれ変わりました。新しいヘアスタイルで、仕事へのモチベーションもさらに上がることでしょう!"]},{id:69,title:"【社内月間表彰】3月度ベストチーム表彰 - 卓越したチームワークで困難な課題を突破",date:"2023å¹´4月1日",category:"ブログ",type_post:"blog",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/69/neutual-network_optimized.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/69/neutual-network_optimized.png",excerpt:"2023å¹´3月の社内月間表彰において、技術的難易度の高いプロジェクトを納期通りに高品質で完遂した優秀チームが「Star of the Month」に選出されました。その取り組みと成功の秘訣を紹介します。",gradient:"from-indigo-200 via-purple-200 to-pink-200",summary:"2023å¹´3月の社内月間表彰において、技術的難易度の高いプロジェクトを納期通りに高品質で完遂した優秀チームが「Star of the Month」に選出されました。その取り組みと成功の秘訣を紹介します。",content:["【社内表彰】3月度 Star of the Month(月間最優秀チーム賞)受賞プロジェクトの紹介","React Plusでは、顕著な成果を上げたチームや個人を毎月称える「Star of the Month」制度を運用しています。2023å¹´3月度は、タイトな納期の中で複雑なアーキテクチャ刷新を見事にやり遂げた開発チームが選出されました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/post/first_image/69/neutual-network_optimized.png]","■ 困難を乗り越えた要因","・アーキテクチャのモジュール化による開発タスクの並行処理","・デイリースクラムを通じた課題の即時共有とボトルネックの解消","・メンバー間の助け合いと強いオーナーシップ精神","受賞チームの皆様、誠におめでとうございます!"]},{id:70,title:"React Plusの「薔薇」- 新たな船出と成功に向けて",date:"2023å¹´3月30日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/70/MTH_Th%E1%BA%AFm.jpg",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/70/MTH_Th%E1%BA%AFm.jpg",excerpt:"新たなステージへ!React Plus日本オフィスの正式開設に伴い、Mai Thị Hồng Thắm (副社長) が日本での長期出張を開始しました。🌸",gradient:"from-rose-200 via-pink-200 to-fuchsia-200",summary:"日本オフィス開設に伴う、副社長(Vice Director)の日本長期赴任のお知らせ。",content:["🌸 React Plusの「薔薇」- 新たな船出と成功に向けて 🌸","[IMAGE:/uploads/ckeditor/pictures/173/content_MTHT_a.jpg]","React Plusの日本における新しいオフィスの正式開設に合わせ、2023å¹´3月26日、当社副社長(Vice Director)のMai Thị Hồng Thắmが「日出ずる国」での長期出張へと旅立ちました。","[IMAGE:/uploads/ckeditor/pictures/175/content_T%2BH.jpg]","この長期赴任は、日本パートナーからの信頼を不動のものにし、React Plusがグローバル企業としてさらに強力に発展するための重要なステップです。"]},{id:118,title:"React Plus、ダナン支社「React Plus Đà Nẵng」を設立",date:"2023å¹´3月28日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/118/%E1%BA%A2NH_B%C3%8CA__WEB__5_.png",excerpt:"中部地域への事業拡大!ダナン市にReact Plusの新支社「React Plus Đà Nẵng」が正式に設立されました。🌉",gradient:"from-teal-200 via-cyan-200 to-blue-200",summary:"ベトナム中部における拠点拡大として、ダナン支社の設立を公式に発表。",content:["🌉 React Plus、ダナン支社「React Plus Đà Nẵng」を設立 🌉","設立から5年を経て、RPGは絶えず成長と革新を続けてきました。私たちの熱い情熱と前進する精神を持ったメンバーたちは、ハノイのみならず、さらなる地域へと翼を広げています。","そしてこの度、ベトナム中部最大の都市であるダナン市に「React Plus Đà Nẵng」を正式に設立しました。これを機に、優秀な人材の確保とビジネス領域の拡大を一層強化してまいります。"]},{id:68,title:"企業のデジタルトランスフォーメーション(DX)推進 - React Plusが支援するモダンアーキテクチャの革新",date:"2023å¹´3月25日",category:"ブログ",type_post:"blog",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/68/Thi%E1%BA%BFt_k%E1%BA%BF_ch%C6%B0a_c%C3%B3_t%C3%AAn__1_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/68/Thi%E1%BA%BFt_k%E1%BA%BF_ch%C6%B0a_c%C3%B3_t%C3%AAn__1_.png",excerpt:"DX(デジタルトランスフォーメーション)が加速する現代のビジネス環境において、React Plusが提供する最先端のWeb/モバイル開発技術とクラウド最適化ソリューションについて解説します。",gradient:"from-blue-200 via-indigo-200 to-cyan-200",summary:"DX(デジタルトランスフォーメーション)が加速する現代のビジネス環境において、React Plusが提供する最先端のWeb/モバイル開発技術とクラウド最適化ソリューションについて解説します。",content:["【技術コラム】企業のデジタルトランスフォーメーション(DX)推進 - レガシー刷新とモダンWebの融合","多くの企業において、既存レガシーシステムの維持コスト増大やユーザー体験(UX)の低下が経営課題となっています。React Plusは、React/React Nativeを中心とするモダンスタックを活用し、企業のDX推進を強力にバックアップしています。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/post/first_image/68/Thi%E1%BA%BFt_k%E1%BA%BF_ch%C6%B0a_c%C3%B3_t%C3%AAn__1_.png]","■ React Plusが提供するDXソリューションの強み","1. マイクロフロントエンドによる段階的マイグレーション:全面刷新のリスクを回避し、機能単位で段階的にモダナイゼーションを実施。","2. クロスプラットフォーム開発(React Native):単一コードベースでWeb・iOS・Androidをカバーし、開発コストと保守工数を大幅に削減。","3. クラウドネイティブ設計:AWS/GCPをæ´
9483»ç”¨ã—た高可用性・スケーラブルなインフラストラクチャの構築。","私たちは、確かな技術力とアジャイルな開発体制で、お客様のビジネス価値最大化に貢献してまいります。"]},{id:117,title:"学生向け「初級日本語講座」をRPGが完全無料で開講",date:"2023å¹´3月15日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/117/%E1%BA%A2NH_B%C3%8CA__WEB__4_.png",excerpt:"日本の文化と言語を愛する若者向けに、RPGが完全無料の「初級日本語講座」コミュニティプログラムを開講しました!🎓",gradient:"from-fuchsia-200 via-pink-200 to-rose-200",summary:"地域貢献の一環として提供する、学生向けの無料初級日本語講座の開講告知。",content:["[IMAGE:/uploads/ckeditor/pictures/506/content_Kh%C3%B3a_s%C6%A1_c%E1%BA%A5p_ti%E1%BA%BFng_nh%E1%BA%ADt.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tac/1/16/1f4cc.png]","🎓 学生向け「初級日本語講座」をRPGが完全無料で開講 🎓","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tac/1/16/1f4cc.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tac/1/16/1f4cc.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tac/1/16/1f4cc.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tac/1/16/1f4cc.png]","日本の文化や人々に強い関心を持つ若者たちに、実用的な日本語を学ぶ機会を提供したいという願いから、RPGは地域貢献プログラム「初級日本語講座(参加無料)」を開講しました。","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tac/1/16/1f4cc.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tac/1/16/1f4cc.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tac/1/16/1f4cc.png]","このコースを通じて、基礎的な言語スキルを身につけるだけでなく、日本のビジネスマナーや文化への理解を深めることができます。皆様の積極的なご参加をお待ちしております。"]},{id:116,title:"国際女性デー記念イベント「EM XINH」を開催",date:"2023å¹´3月8日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/116/Thi%E1%BA%BFt_k%E1%BA%BF_ch%C6%B0a_c%C3%B3_t%C3%AAn__18_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/116/%E1%BA%A2NH_%C4%90%E1%BA%A6U_TI%C3%8AN_WEB.png",excerpt:"国際女性デーを祝うイベント「EM XINH(美しいあなた)」が大成功!オフィス中に花と笑顔があふれ、女性社員たちの魅力を讃えました。💐",gradient:"from-rose-200 via-pink-200 to-purple-200",summary:"3月8日の国際女性デーを記念する社内イベント「EM XINH」の報告。",content:["[IMAGE:/uploads/ckeditor/pictures/490/content_1.png]","💐 国際女性デー記念イベント「EM XINH」を開催 💐","[IMAGE:/uploads/ckeditor/pictures/495/content_5.png]","[IMAGE:/uploads/ckeditor/pictures/504/content_15.png]","[IMAGE:/uploads/ckeditor/pictures/498/content_9.png]","愛と敬意、そして心からの気遣いとともに、RPGは社内のすべての女性たちを称える国際女性デー(3月8日)の記念イベント「EM XINH(美しいあなた)」を大成功のうちに開催しました。","オフィス全体が輝くような装飾と華やかな雰囲気に包まれました。会社の成長に不可欠な存在である女性社員たちに、特別な感謝とプレゼントが贈られました。これからも美しく輝き続けてください!"]},{id:115,title:"RPG、人事管理ソフトウェア導入をキックオフ",date:"2023å¹´3月1日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/115/%E1%BA%A2NH_B%C3%8CA__WEB__3_.png",excerpt:"RPGは社内運用プロセスの専門性を高めるため、包括的な「人事管理ソフトウェア」の導入をキックオフしました。🚀",gradient:"from-blue-200 via-sky-200 to-indigo-200",summary:"社内の運用効率化を目的とした新しい人事管理ソフトウェア導入のキックオフ。",content:["[IMAGE:/uploads/ckeditor/pictures/479/content_3.png]","🚀 RPG、人事管理ソフトウェア導入をキックオフ 🚀","[IMAGE:/uploads/ckeditor/pictures/482/content_5.png]","[IMAGE:/uploads/ckeditor/pictures/480/content_2.png]","会社の人事管理および運用プロセスの向上と専門性の強化を目的として、RPGは包括的な人事管理ソフトウェアの導入を決定しました。","このプロジェクトは社内の重要なステップと位置づけられており、より透明性が高く、効率的な人事管理の実現を目指して正式に稼働を開始しました。"]},{id:114,title:"劇的な結末!Esport Funfiesta 2024「リーグ・オブ・レジェンド」大会",date:"2023å¹´2月28日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/114/%E1%BA%A2NH_B%C3%8CA__WEB__2_.png",excerpt:"劇的な結果に!「Esport Funfiesta 2024」の初戦『リーグ・オブ・レジェンド』大会で、RPGのゲーマーたちが熱い戦いを繰り広げました。🎮",gradient:"from-purple-200 via-fuchsia-200 to-pink-200",summary:"社内のeスポーツ大会「Esport Funfiesta 2024(リーグ・オブ・レジェンド部門)」の試合結果とレポート。",content:["[IMAGE:/uploads/ckeditor/pictures/461/content_1.png]","🎮 劇的な結末!Esport Funfiesta 2024「リーグ・オブ・レジェンド」大会 🎮","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t7a/1/16/31_20e3.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t99/1/16/32_20e3.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tb8/1/16/33_20e3.png]","[IMAGE:/uploads/ckeditor/pictures/469/content_10.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t40/1/16/1f4a5.png]","[IMAGE:/uploads/ckeditor/pictures/470/content_11.png]","昨日(2
9483024年2月27日)、「Esport Funfiesta 2024」の初戦を飾るゲームとして『リーグ・オブ・レジェンド(LoL)』の熱い戦いが繰り広げられました。","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t7a/1/16/31_20e3.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t99/1/16/32_20e3.png]","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tb8/1/16/33_20e3.png]","[IMAGE:/uploads/ckeditor/pictures/477/content_18.png]","各チームの激しい攻防や戦略的なプレイは観客を魅了し、まさにeスポーツならではのドラマチックな展開となりました。王者に輝いたチームの皆様、おめでとうございます!"]},{id:113,title:"RPG、PMとリーダー向け「Q&Aスキル」トレーニングプログラムを開催",date:"2023年2月25日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/113/%E1%BA%A2NH_B%C3%8CA__WEB__1_.png",excerpt:"PMおよびリーダー向けに「Q&Aスキル」トレーニングプログラムを開催しました。円滑なプロジェクト推進のための重要なスキルを磨きました。📚",gradient:"from-teal-200 via-emerald-200 to-green-200",summary:"プロジェクトマネージャーおよびリーダーを対象としたコミュニケーション(Q&A)スキルのトレーニングレポート。",content:["[IMAGE:/uploads/ckeditor/pictures/459/content_1.png]","📚 RPG、PMとリーダー向け「Q&Aスキル」トレーニングプログラムを開催 📚","[IMAGE:/uploads/ckeditor/pictures/458/content_4.png]","リーダーやPM(プロジェクトマネージャー)の業務の質を高め、プロジェクト展開を最適に支援することを目的に、RPGは「Q&Aスキル」に関するトレーニングプログラムを開催しました。","実践的なケーススタディを通じて、効果的な質問手法や顧客との円滑なコミュニケーション能力を磨き、プロジェクト成功の鍵となるスキルをより強固なものにしました。"]},{id:112,title:"RPG各事業部、2024年の目標達成コミットメントに署名",date:"2023年2月22日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/112/%E1%BA%A2NH_B%C3%8CA__WEB.png",excerpt:"2024年の目標達成に向け、全事業部が「コミットメント(誓約書)」に署名しました。RPG全社が一丸となって前進します!✍️",gradient:"from-rose-200 via-red-200 to-pink-200",summary:"2024年度の各部署の目標達成に向けた「コミットメント署名式」の開催報告。",content:["[IMAGE:/uploads/ckeditor/pictures/452/content_1.png]","[IMAGE:/uploads/ckeditor/pictures/456/content_6.png]","✍️ RPG各事業部、2024年の目標達成コミットメントに署名 ✍️","[IMAGE:/uploads/ckeditor/pictures/457/content_7.png]","去る2月22日、全社員が参加する中、2024年度の事業目標に対する「コミットメント署名式」が成功裏に開催されました。","この署名は単なる形式ではなく、会社全体のビジョンに対する各部門の責任と決意の表れです。この強い誓いを胸に、組織全体で今年の目標達成に向けて全力で推進していきます。"]},{id:111,title:"RPG、KPIをOKR目標に連動させる新たな調整を実施",date:"2023年2月20日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/111/%E1%BA%A2NH_WEB.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/111/%E1%BA%A2NH_B%C3%8CA_WEB.png",excerpt:"RPGは目標管理のため、KPIをOKR(Objectives and Key Results)モデルに連動させる新たな評価体系へと移行します。🎯",gradient:"from-amber-200 via-yellow-200 to-orange-200",summary:"組織の目標達成を最大化するための、KPIのOKRベースへの調整と新フレームワーク導入のお知らせ。",content:["🎯 RPG、KPIをOKR目標に連動させる新たな調整を実施 🎯","KPIは、実績を定量的に測定し、個人や部門がいかに会社の目標(OKR)に貢献しているかを評価するための重要な指標です。一方OKRは、大きな枠組みとして共通の方向性を示します。","変化の激しい市場において柔軟かつ強力な推進力を持つため、RPGはKPIをOKRにより密接に連動させる評価体系へと調整を行いました。これにより、部門間の連携が強化され、より高い成果を目指すことが可能になります。"]},{id:110,title:"RPG、今年最初のSalesforceプロジェクトをキックオフ",date:"2023年2月17日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/110/1.png",f
9483irstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/110/1.png",excerpt:"新年早々ビッグニュース!RPGは今年初となる日本市場向けのSalesforceプロジェクトを公式にキックオフしました。☁️",gradient:"from-cyan-200 via-blue-200 to-indigo-200",summary:"2024年最初となる、日本企業向けのSalesforce導入プロジェクトのキックオフ報告。",content:["☁️ RPG、今年最初のSalesforceプロジェクトをキックオフ ☁️","[IMAGE:/uploads/ckeditor/pictures/445/content_1.png]","[IMAGE:/uploads/ckeditor/pictures/446/content_3.png]","2024年のスタートとともに、日本の大手パートナー企業様からのSalesforce関連プロジェクトを受注し、2月16日の午後に正式なキックオフミーティングが行われました。","これは今年のビジネスを勢いづける大きな第一歩であり、RPGのSalesforce分野における技術力と信頼性が日本のクライアントに認められた証でもあります。チーム一丸となってこのプロジェクトを成功へと導きます。"]},{id:109,title:"日本の学生たちがインターンシップ前にRPGを訪問",date:"2023å¹´2月10日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/109/Thi%E1%BA%BFt_k%E1%BA%BF_ch%C6%B0a_c%C3%B3_t%C3%AAn__7_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/109/Thi%E1%BA%BFt_k%E1%BA%BF_ch%C6%B0a_c%C3%B3_t%C3%AAn__7_.png",excerpt:"日本の大学生たちがRPG本社を訪問。インターンシップの受け入れを通じて、国際交流と若手人材の育成を支援しています。🇯🇵",gradient:"from-slate-200 via-gray-200 to-zinc-200",summary:"日本のインターンシップ希望学生によるオフィス見学と交流会の報告。",content:["🇯🇵 日本の学生たちがインターンシップ前にRPGを訪問 🇯🇵","RPGはハイレベルな人材の採用に尽力するだけでなく、将来有望なインターン生たちを温かく迎え入れる企業文化を持っています。","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tf4/1/16/2728.png]","若き日本の学生たちが企業見学に訪れ、私たちの働く環境や企業文化を直に体験しました。このような国際的なインターンシッププログラムを通じて、若手人材の育成と文化交流を継続的にサポートしています。","[IMAGE:/uploads/ckeditor/pictures/444/content_Thi%E1%BA%BFt_k%E1%BA%BF_ch%C6%B0a_c%C3%B3_t%C3%AAn__8_.png]"]},{id:66,title:"【BrSEリーダー対談】Phạm Ngọc Hưng:「多様なプロジェクト経験こそが、エンジニアの最大の資産となる」",date:"2023å¹´2月10日",category:"ブログ",type_post:"blog",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/66/B%C3%ACa_H%C6%B0ng_1.jpg",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/66/B%C3%ACa_H%C6%B0ng_cut.jpg",excerpt:"React PlusのBrSEチームリーダーPhạm Ngọc Hưngへのインタビュー。日本市場特有の厳格な要件定義に応え、数々のオフショア開発プロジェクトを成功に導いてきたプロフェッショナルとしての思考法に迫ります。",gradient:"from-teal-200 via-cyan-200 to-blue-200",summary:"React PlusのBrSEチームリーダーPhạm Ngọc Hưngへのインタビュー。日本市場特有の厳格な要件定義に応え、数々のオフショア開発プロジェクトを成功に導いてきたプロフェッショナルとしての思考法に迫ります。",content:["【リーダーインタビュー】BrSE1リーダー Phạm Ngọc Hưng - 経験の多様性が育む問題解決力","React Plusで数多くの日本向けプロジェクトを主導してきたBrSEチームリーダーのPhạm Ngọc Hưng。多彩なドメイン知識と確かなコミュニケーション力を持つ彼が、BrSEとしてのキャリアと信条を語ります。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/post/first_image/66/B%C3%ACa_H%C6%B0ng_cut.jpg]","■ 「何でも経験してみる」ことがエンジニアの視野を広げる","「Fintech、Eコマース、業務システムなど、異なる分野のプロジェクトに関わることで、業界ごとの商習慣やデータ構造の違いを深く理解できるようになります。この多様な経験の蓄積こそが、新しい案件に直面した際の迅速な課題発見と解決策の提示につながります。」","■ 日本のクライアントとの信頼関係構築の秘訣","「最もå¤
9483§åˆ‡ãªã®ã¯ã€Žå…ˆå›žã‚Šã®ã‚³ãƒŸãƒ¥ãƒ‹ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã€ã§ã™ã€‚言われた通りに作業するだけでなく、懸念点やより良い代替案をエンジニアリング視点から能動的にご提案することが、真のパートナーシップにつながります。」"]},{id:108,title:"RPGの「映えスポット」- テトの可愛い装飾で記念撮影",date:"2023å¹´1月20日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/108/z5060725918355_c436d8e86e602773ce92b7fd424904a4.jpg",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/108/z5060725918355_c436d8e86e602773ce92b7fd424904a4.jpg",excerpt:"もうすぐテト(旧正月)!RPGオフィスに現れた可愛らしい「テトの装飾コーナー」で、社員たちが記念撮影を楽しんでいます。🌸",gradient:"from-pink-200 via-rose-200 to-fuchsia-200",summary:"テト(旧正月)を祝うオフィス内の装飾と、社員によるSNS向け「チェックイン(写真撮影)」の様子。",content:["🌸 RPGの「映えスポット」- テトの可愛い装飾で記念撮影 🌸","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/2764.png]","1月の初め頃から、街中のあらゆる場所にテト(旧正月)の賑やかな空気が満ちており、それはRPGのオフィスにも広がっています。","遠くへ出かけなくても、社内に設けられた美しく装飾された「Tetコーナー」で最高の写真が撮れます!社員たちは一緒に写真を撮り合い、新年の喜びを分かち合う温かい時間を過ごしています。","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/t6c/1/16/2764.png]","[IMAGE:/uploads/ckeditor/pictures/441/content_1.png]","[IMAGE:/uploads/ckeditor/pictures/440/content_2.png]","[IMAGE:/uploads/ckeditor/pictures/443/content_4.png]"]},{id:107,title:"RPG Sum Up 2023 - 忘れられない感動の瞬間を振り返る",date:"2023å¹´1月15日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/107/1.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/107/1.png",excerpt:"感動と興奮の連続!RPGのYear End Party「Sum Up 2023」で最も忘れられない感動の瞬間を振り返ります。✨",gradient:"from-violet-200 via-purple-200 to-fuchsia-200",summary:"2023年の「Sum Up」イベントにおける感動的なハイライトや印象に残った瞬間の総括レポート。",content:["✨ RPG Sum Up 2023 - 忘れられない感動の瞬間を振り返る ✨","感情と喜びに満ちた「Sum Up 2023」の素晴らしい夜が無事に幕を閉じました。2023年という輝かしい一年がゴールを迎え、RPGメンバー全員に消えることのない足跡を残しました。","[IMAGE:https://static.xx.fbcdn.net/images/emoji.php/v9/tf4/1/16/2728.png]","素晴らしいパフォーマンスや表彰式、そして仲間と分かち合った深い絆。この記事では、私たちすべての心を揺さぶった、イベント中の最も印象的な瞬間の数々を振り返ります。"]},{id:64,title:"React Plus、ISO 9001とISO 27001のダブル認証を取得",date:"2023å¹´1月10日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/64/1.jpg",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/64/IMG20230131171928.jpg",excerpt:"快挙達成!React Plusは国際標準規格である「ISO 9001(品質)」および「ISO 27001(情報セキュリティ)」のダブル認証をわずか半年で取得しました。🏅",gradient:"from-emerald-200 via-teal-200 to-cyan-200",summary:"品質管理システム「ISO 9001」および情報セキュリティ管理システム「ISO 27001」の同時取得の報告。",content:["🏅 React Plus、ISO 9001とISO 27001のダブル認証を取得 🏅","[IMAGE:/uploads/ckeditor/pictures/147/content_1.jpg]","プロセスを標準化して運用効率と製品品質を高めるとともに、顧客やパートナーの皆様の情報の安全性を確実に保証するため、React Plusは2022å¹´6月に国際規格の導入を目標に掲げました。","[IMAGE:/uploads/ckeditor/pictures/145/content_IMG_6374.JPG]","[IMAGE:/uploads/ckeditor/pictures/146/content_IMG_4723.JPG]","全社の徹底した取り組みの結果、わずか6ヶ月で「ISO 9001」と「ISO 27001」という重要な2つの国際認証を同時に取得することに成功しました。この成果により、最高の品質と強固なセキュリティをお客様に提供いたします。"]},{id:106,title:"RPG Sum Up 2023 - 年末の最大イベントがついに帰ってきた",date:"2023å¹´1月5日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/106/BACKDROP__1_.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/106/BACKDROP__1_.png",excerpt:"「RPG Sum Up 2023」が帰ってきた!一年を締めくくる最大規模のイベント。ドラマチックで熱狂的な夜へようこそ!🎉",gradient:"from-rose-200 via-red-200 to-orange-200",summary:"年末の一大イベント「RPG Sum Up 2023」の開催前告知および期待感の表明。",content:["🎉 RPG Sum Up 2023 - 年末の最大イベントがついに帰ってきた 🎉","あなたがもしレースの最終直線にいるなら、どのようにゴールテープを切りますか?","RPGの今年の「Sum Up」は、まさにそんなスリリングで魅力に満ちた、ドラマチックな夜になること間違いありません!多くが変化した1年でしたが、私たちの情熱と結束は変わりません。最大級のパーティーに備えましょう!","[IMAGE:/uploads/ckeditor/pictures/393/content_BACKDROP__1_.png]"]},{id:60,title:"「React Plus Premier League 2022」が公式にスタート",date:"2022å¹´11月15日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/60/Poster.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/60/Poster.png",excerpt:"社内サッカー大会「React Plus Premier League 2022」が公式にスタート!男子
94835チーム、女子3チームが熱い火花を散らします。⚽🔥",gradient:"from-lime-200 via-green-200 to-emerald-200",summary:"2022年末から開催されるサッカー大会「React Plus Premier League」の開幕告知。",content:["⚽「React Plus Premier League 2022」が公式にスタート ⚽","今年のシーズンは男子部門に5チーム、女子部門に3チームが参加して開催されます。大会期間は2022å¹´11月21日から2023å¹´1月9日までを予定しています。","熱狂的な自家製サポーター(同僚たち)の応援を受け、選手たちはグラウンドで全力を尽くします。各チームによるラウンドロビン(総当たり)方式での激しい決勝争いにご期待ください!"]},{id:59,title:"React Plusボランティアチーム、第2回献血活動を実施",date:"2022å¹´11月1日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/59/312360642_169553839003415_7268194819206916200_n.jpg",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/59/312273072_169553782336754_994564759161985374_n.jpg",excerpt:"10月に「第2回 献血ボランティア活動」を実施しました!愛を分かち合い、必要とする人々へ継続的な手助けを行うReact Plusの取り組みです。🩸",gradient:"from-red-200 via-rose-200 to-red-300",summary:"10月に国立血液学・輸血研究所にて行われた第2回社員献血ボランティアの実施報告。",content:["🩸 React Plusボランティアチーム、第2回献血活動を実施 🩸","[IMAGE:/uploads/ckeditor/pictures/132/content_312368597_169553822336750_9150366081343859530_n.jpg]","[IMAGE:/uploads/ckeditor/pictures/123/content_311594781_169553865670079_914939964719552912_n.jpg]","10月29日、React Plusのボランティアチームのメンバーは、ハノイのコウザイ区にある国立血液学・輸血研究所において、今年第2回目となる献血活動を実施しました。","[IMAGE:/uploads/ckeditor/pictures/129/content_312273072_169553782336754_994564759161985374_n.jpg]","[IMAGE:/uploads/ckeditor/pictures/124/content_311617101_169553809003418_7222661775184631786_n.jpg]","[IMAGE:/uploads/ckeditor/pictures/125/content_311601316_169553792336753_6165981009127280903_n.jpg]","[IMAGE:/uploads/ckeditor/pictures/126/content_311840031_169553909003408_8745934435260609055_n.jpg]","[IMAGE:/uploads/ckeditor/pictures/128/content_311947601_169553872336745_6978143448187830041_n.jpg]","[IMAGE:/uploads/ckeditor/pictures/131/content_312363076_169553832336749_7426994321111388122_n.jpg]","[IMAGE:/uploads/ckeditor/pictures/136/content_313203107_169553889003410_2662596152277437122_n.jpg]","[IMAGE:/uploads/ckeditor/pictures/133/content_312729296_169553882336744_3874749035317518826_n.jpg]","[IMAGE:/uploads/ckeditor/pictures/134/content_312971255_169553802336752_3128770378121498514_n.jpg]","私たちは、愛を分かち合い、それを必要とする人々を助けることを目的に、献血を毎月の主要なボランティア活動と位置づけています。小さな行動が、誰かの未来を救う大きな力になります。","[IMAGE:/uploads/ckeditor/pictures/130/content_312360642_169553839003415_7268194819206916200_n.jpg]","[IMAGE:/uploads/ckeditor/pictures/135/content_313171544_169553902336742_5685793977850094757_n.jpg]"]},{id:56,title:"React Plus、2022年度の定期健康診断を実施",date:"2022å¹´10月28日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/56/IMG_2295.jpg",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/56/IMG_2290.jpeg",excerpt:"2022年の定期健康診断を実施しました。充実したワークライフには健康が不可欠!React Plusは社員の心身の健康づくりを常に最優先に考えています。🩺",gradient:"from-teal-200 via-emerald-200 to-green-200",summary:"社員の健康状態のチェックを目的とした2022年度定期健康診断の実施報告。",content:["🩺 React Plus、2022年度の定期健康診断を実施 🩺","精神的な豊かさと並んで、健康はReact Plusのすべてのメンバーにとって最優先事項の一つです。2022å¹´10月14日、全社員を対象とした定期健康診断を実施しました。","[IMAGE:/uploads/ckeditor/pictures/99/content_IMG_2290.jpeg]","[IMAGE:/uploads/ckeditor/pictures/100/content_IMG_2293.jpeg]","[IMAGE:/uploads/ckeditor/pictures/101/content_IMG_1896.jpeg]","[IMAGE:/uploads/ckeditor/pictures/102/content_IMG_1900.jpeg]","[IMAGE:/uploads/ckeditor/pictures/103/content_IMG_1910.jpeg]","[IMAGE:/uploads/ckeditor/pictures/104/content_IMG_2281.jpeg]","健康診断では、一般的な身体測定から専門的な検査まで、総合的な医療チェックが行われました。私たちは、社員が健康で最高のパフォーマンスを発揮できるよう、働きやすい環境とサポートを提供し続けます。"]},{id:57,title:"F5Melody - Reactの音楽ステージが輝く",date:"2022å¹´10月20日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/57/IMG_5771.JPG",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/57/IMG_5771.JPG",excerpt:"月に一度の社内イベント「F5Melody」!10月のテーマは「女性社員の外見の裏に隠された真実を暴く」!?男性陣からの愛あるイジりと感謝が詰まった、特別な音楽ステージでした。🎶",gradient:"from-fuchsia-200 via-pink-200 to-rose-200",summary:"社内の音楽イベント「F5Melody(10月度)」の開催報告と女性社員への感謝のメッセージ。",content:["[IMAGE:/uploads/ckeditor/pictures/105/content_IMG_5979.JPG]","🎶 F5Melody - Reactの音楽ステージが輝く 🎶","[IMAGE:/uploads/ckeditor/pictures/106/content_IMG_5869.JPG]","[IMAGE:/uploads/ckeditor/pictures/107/content_IMG_5897.JPG]","[IMAGE:/uploads/ckeditor/pictures/108/content_IMG_5950.JPG]","10月の「F5Melody」のテーマは「Reactの女性陣の外見の裏に隠された真実を暴く」でした!","[IMAGE:/uploads/ckeditor/pictures/111/content_IMG_5956.JPG]","[IMAGE:/uploads/ckeditor/pictures/112/content_IMG_5966.JPG]","[IMAGE:/uploads/ckeditor/pictures/109/content_IMG_6111.JPG]","[IMAGE:/uploads/ckeditor/pictures/110/content_IMG_6131__1_.JPG]","このショーは、男性陣から世界の「もう半分の存在(女性たち)」への愛と感謝を伝える機会でもありましたが、今回は少し特別な「暴露(イジり)」の形で進行しました。","[IMAGE:/uploads/ckeditor/pictures/113/content_IMG_6156.JPG]","[IMAGE:/uploads/ckeditor/pictures/114/content_IMG_6104.JPG]","[IMAGE:/uploads/ckeditor/pictures/115/content_IMG_6021.JPG]","[IMAGE:/uploads/ckeditor/pictures/116/content_IMG_6040.JPG]","[IMAGE:/uploads/ckeditor/pictures/117/content_IMG_6023.JPG]","ユーモア溢れる音楽とパフォーマンスを通じて、日頃のストレスを忘れて皆で大笑いする最高のリフレッシュタイムとなりました。"]},{id:58,title:"「React Plus Developer K3」トレーニングコースを開講",date:"2022å¹´10月15日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/58/IMG_5711.JPG",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/58/311522458_165657942726338_4694812315718872987_n.jpg",excerpt:"未来のIT人材を育成!React Plusのプロジェクトリーダーの面接を通過した16名の優秀な受講生を迎え、「React Plus Developer K3 トレーニングコース」が開講しました。🎓✨",gradient:"from-blue-200 via-indigo-200 to-purple-200",summary:"第3期「React Plus Developer」トレーニングコースの開講セレモニーの報告。",content:["[IMAGE:/uploads/ckeditor/pictures/118/content_IMG20221010094545.jpg]","🎓 「React Plus Developer K3」トレーニングコースを開講 🎓","[IMAGE:/uploads/ckeditor/pictures/119/content_IMG_6675.JPG]","[IMAGE:/uploads/ckeditor/pictures/120/content_IMG_5719.JPG]","2022å¹´10月10日、「React Plus Developer K3(第3期)」トレーニングコースの開講セレモニーが行われました。React Plusのプロジェクトリーダーとの直接面接を経て選ばれた、16名の優秀な受講生を新たに迎え入れました。","[IMAGE:/uploads/ckeditor/pictures/121/content_IMG_5711.JPG]","[IMAGE:/uploads/ckeditor/pictures/122/content_311284941_165657902726342_3352727966098072055_n.jpg]","受講生たちは記念のユニフォームを受け取り、全員で記念撮影を行いました。このコースを通じて、実践的な開発スキルを身につけ、プロフェッショナルなIT人材へと成長していくことを期待しています。"]},{id:52,title:"日本企業との協働を通じてベトナムエンジニアが得る「品質へのこだわり」と成長",date:"2022å¹´9月22日",category:"ブログ",type_post:"blog",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/52/2.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/52/React_Plus_gi%C3%BAp_s%E1%BB%A9c_%C4%91%C3%B4i_ch%C3%A2n_cho_b%E1%BB%87nh_nh%C3%A2n_ung_th%C6%B0_x%C6%B0%C6%A1ng__1_.png",excerpt:"日本市場向けオフショア開発に従事するReact Plusのエンジニアたちが、日々の実務を通じて培った高い品質意識、徹底したドキュメント文化、そしてプロフェッショナルとしての成長要因を紐解きます。",gradient:"from-blue-200 via-sky-200 to-indigo-200",summary:"日本市場向けオフショア開発に従事するReact Plusのエンジニアたちが、日々の実務を通じて培った高い品質意識、徹底したドキュメント文化、そしてプロフェッショナルとしての成長要因を紐解きます。",content:["【カルチャーレポート】日本企業とのパートナーシップが育む「ジャパンクオリティ」の真髄","世界で最も要求水準が高いとされる日本IT市場において、React Plusのエンジニアたちは日々ã
9483®é–‹ç™ºã‚’通じてどのような知見と価値観を培っているのか。現場メンバーのリアルな体験をご紹介します。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/post/first_image/52/React_Plus_gi%C3%BAp_s%E1%BB%A9c_%C4%91%C3%B4i_ch%C3%A2n_cho_b%E1%BB%87nh_nh%C3%A2n_ung_th%C6%B0_x%C6%B0%C6%A1ng__1_.png]","■ 1. 「動くコード」から「保守され愛されるコード」へ","日本の開発現場では、可読性、テストカバレッジ、命名規則の統一、コメントの充実など、中長期的な保守性を重視する姿勢が徹底されています。この基準でコードを書くことが、エンジニア一人ひとりの技術基盤を強固に鍛え上げます。","■ 2. 徹底した報連相とプロセスの可視化","進捗や懸念事項をリアルタイムに共有し、透明性を保つコミュニケーションがプロジェクトのリスクを最小化します。","■ 3. ユーザー視点に立った細やかなUI/UX配慮","ローディング時のチラつき防止、レスポンシブ対応、アクセシビリティの確保など、エンドユーザーの体験に寄り添う繊細な作り込みが自然と身につきます。"]},{id:55,title:"血液バンクへの貢献:React社員からの思いやりの一滴",date:"2022å¹´7月15日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/55/286379102_140210178604448_1529418354739074913_n_-_Copy.jpg",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/55/Hi%E1%BA%BFn_m%C3%A1u_1.png",excerpt:"Reactボランティアチームによる献血活動の報告。「困っている人を助けるお互い様の精神」で、健康な血の一滴を必要とする人々へ届けました。🩸",gradient:"from-red-200 via-rose-200 to-pink-200",summary:"7月に実施された社内ボランティアチームによる献血活動の報告。",content:["🩸 血液バンクへの貢献:React社員からの思いやりの一滴 🩸","[IMAGE:/uploads/ckeditor/pictures/93/content_286479684_140210255271107_7486425372944690722_n_-_Copy.jpg]","[IMAGE:/uploads/ckeditor/pictures/94/content_286379102_140210178604448_1529418354739074913_n.jpg]","2022å¹´7月11日、React Plusのボランティアチームは、とても気高く美しい行動を実施しました。","[IMAGE:/uploads/ckeditor/pictures/95/content_285336147_140210198604446_8671699897235232276_n_-_Copy.jpg]","[IMAGE:/uploads/ckeditor/pictures/96/content_287369786_140210171937782_8218073118308375592_n_-_Copy.jpg]","[IMAGE:/uploads/ckeditor/pictures/97/content_285324827_140210221937777_4559436683095508814_n_-_Copy.jpg]","[IMAGE:/uploads/ckeditor/pictures/98/content_286983069_140210135271119_4403608137209278085_n.jpg]","「破れた葉を無傷の葉が包み込む(困っている人を助ける)」というベトナムの精神に基づき、メンバーたちは躊躇なく自らの健康な血液を、助けを必要としている不運な患者さんたちに提供しました。この小さな一滴が、誰かの命を救う大きな希望となります。"]},{id:50,title:"React Plus The FA Cup 2022 - デベロッパーたちがピッチで輝く場所",date:"2022å¹´6月15日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/50/IMG_8964.JPG",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/50/IMG_89622.JPG",excerpt:"サッカーはReact Plusで最も愛されるスポーツ!社内大会「React Plus The FA Cup 2022」で、デベロッパーたちがピッチ上で輝くスター選手に変身しました。⚽",gradient:"from-lime-200 via-green-200 to-emerald-200",summary:"夏の社内サッカー大会「React Plus The FA Cup 2022」の開催と盛り上がりの様子。",content:["[IMAGE:/uploads/ckeditor/pictures/74/content_Gia%CC%89i_bo%CC%81ng_FA_cup_Poster-01.png]","⚽ React Plus The FA Cup 2022 - デベロッパーたちがピッチで輝く場所 ⚽","[IMAGE:/uploads/ckeditor/pictures/75/content_React_Poster_tra%CC%A3%CC%82n_gia%CC%89i_vo%CC%82_%C4%91i%CC%A3ch.png]","React Plusにおいて、サッカーは常に最も愛されているスポーツです。毎年、夏には「The FA Cup」、冬には「Hội khoẻ Phù Đổng(スポーツ大会)」という2つの大きなシーズンが開催されます。","キーボードを叩くプログラマーたちが、この日ばかりはフィールドを駆け回る熱き選手に変身し、体力とチームワークを競い合いました。仕事の枠を超えた社員同士の熱い絆が生まれる素晴らしい大会となりました。"]},{id:51,title:"Division 2リーダーのNguyễn Ngọc Hải Đăngが「Hack2Hire」で最高賞を獲得",date:"2022å¹´6月10日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/51/-2519-1663015175.jpeg",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/51/React_A%CC%89nh_banner_ba%CC%80i_vie%CC%82%CC%81t.png",excerpt:"Division 2のリーダー・Nguyễn Ngọc Hải Đăngが、プログラミングコンテスト「Hack2Hire」で最高賞を獲得!彼の卓越したスキルと実績をご紹介します。🏆",gradient:"from-orange-200 via-amber-200 to-yellow-200",summary:"社内のチームリーダーであるNguyễn Ngọc Hải Đăng氏がハッカソン「Hack2Hire」で優勝したことの報告と、彼の実績紹介。",content:["🏆 Division 2リーダーのNguyễn Ngọc Hải Đăngが「Hack2Hire」で最高賞を獲得 🏆","[IMAGE:/uploads/ckeditor/pictures/76/content_TNN_7871.jpg]","[IMAGE:/uploads/ckeditor/pictures/77/content_-2519-1663015175.jpeg]","React Plusの皆さんにとって、Nguyễn Ngọc Hải Đăngという名前は既に馴染み深いものでしょう。Division 2のチームリーダーとして、彼は常に大規模なプロジェクトや難易度の高いタスク、顧客からの厳しい要求に応え続ける中心人物です。","[IMAGE:/uploads/ckeditor/pictures/78/content_-6872-1663015175.jpeg]","彼がプログラミングコンテスト「Hack2Hire」で見事最高賞を獲得したことは、その卓越したスキルと情熱の証明です。彼の圧倒的な成果は、すべてのReact-erの誇りであり、良い刺激となっています。"]},{id:49,title:"Division 1リーダー Lê Minh Thụy の「出航」の精神",date:"2022å¹´5月10日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/49/React_Slide_training_onboard_2.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/49/4935D43D-F564-45B2-B9B2-C5F33B8AC269.jpeg",excerpt:"安定のキャリアを捨て、創業期のReact Plusに「出航」を決意したDivision 1のリーダー、Lê Minh Thụy。彼の挑戦とリーダーシップの物語です。⛵",gradient:"from-sky-200 via-blue-200 to-indigo-200",summary:"Division 1のリーダーであるLê Minh Thụy氏の入社エピソードとリーダーシップに関する紹介記事。",content:["⛵ Division 1リーダー Lê Minh Thụy の「出航」の精神 ⛵","[IMAGE:/uploads/ckeditor/pictures/72/content_1.png]","【「出航」の決断】","React Plusに入社する前、Lê Minh Thụy氏は明確な昇進のチャンスがある安定した仕事に就いていました。しかし、まだメンバーが6人しかいなかった創業期のReact Plusから参加のオファーを受けたとき、彼は仲間たちと共に「船に乗る(出航する)」ことを決意しました。","[IMAGE:/uploads/ckeditor/pictures/69/content_L%C3%AA_Minh_Th%E1%BB%A5y_2.png]","[IMAGE:/uploads/ckeditor/pictures/73/content_3.png]","彼の挑戦を恐れなã
9483„精神とリーダーシップは、現在のDivision 1の成長と会社の発展に大きく貢献しています。"]},{id:48,title:"Phương Anh、コロナ後初の日本オンサイト勤務へ",date:"2022å¹´4月25日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/48/React_A%CC%89nh_bi%CC%80a_ba%CC%80i_vie%CC%82%CC%81t.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/48/React_A%CC%89nh_bi%CC%80a_ba%CC%80i_vie%CC%82%CC%81t.png",excerpt:"コロナ後初!React PlusのTừ Phương Anhが、長年のパートナーである株式会社MILIZE(東京)のオフィスでオンサイト勤務を開始しました。🇯🇵🤝",gradient:"from-violet-200 via-purple-200 to-fuchsia-200",summary:"社員のTừ Phương Anh氏による、アフターコロナ初となる日本の提携先企業(MILIZE社)でのオンサイト勤務開始の報告。",content:["[IMAGE:/uploads/ckeditor/pictures/62/content_IMG_3043.png]","🇯🇵 から Phương Anh、コロナ後初の日本オンサイト勤務へ 🇯🇵","今回の出張で、Từ Phương Anhは日本の東京にある株式会社MILIZEのオフィスにてオンサイト勤務を行います。","[IMAGE:/uploads/ckeditor/pictures/63/content_5.png]","[IMAGE:/uploads/ckeditor/pictures/66/content_1.png]","MILIZE社とReact Plusはこれまでも多くのプロジェクトで協力してきましたが、最近締結された新たな協力合意により、そのパートナーシップはさらに強固なものとなりました。彼女の赴任は、コロナ後の本格的なグローバル業務再開を告げる重要なマイルストーンです。","[IMAGE:/uploads/ckeditor/pictures/64/content_2.png]","[IMAGE:/uploads/ckeditor/pictures/65/content_4.png]"]},{id:47,title:"【社員ストーリー】BrSE Nguyễn Phương Bắc:戦略的思考を活かし、顧客の課題を解き明かすブリッジSEへ",date:"2022å¹´4月21日",category:"ブログ",type_post:"blog",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/47/0.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/47/React_A%CC%89nh_bi%CC%80a_ba%CC%80i_vie%CC%82%CC%81t.png",excerpt:"2021年度「WonderKid」賞を受賞した若手BrSEのNguyễn Phương Bắc。通訳・Comtorからスタートし、課題解決力と論理的思考力を磨いて日本顧客から厚い信頼を得るブリッジSEへと急成長した歩みを紹介します。",gradient:"from-indigo-200 via-purple-200 to-rose-200",summary:"2021年度「WonderKid」賞を受賞した若手BrSEのNguyễn Phương Bắc。通訳・Comtorからスタートし、課題解決力と論理的思考力を磨いて日本顧客から厚い信頼を得るブリッジSEへと急成長した歩みを紹介します。",content:["【社員インタビュー】WonderKid受賞者 Nguyễn Phương Bắc - コミュニケーターからソリューション型BrSEへの飛躍","React Plus入社時はプロジェクトの通訳(Comtor)としてスタートしたNguyễn Phương Bắc。わずか2年足らずで技術提案と要件定義を担うBrSEへと成長し、2021年の若手最優秀賞「WonderKid」を受賞しました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/post/first_image/47/React_A%CC%89nh_bi%CC%80a_ba%CC%80i_vie%CC%82%CC%81t.png]","■ 転機となった顧客からのフィードバックと自己変革","「初期のプロジェクトで、お客様から『定型的な返答ばかりで本当に理解しているか不安』とご指摘を受けたことがありました。マネージャーの指導を受けながら、ビジネスの背景を自ら深掘りし、相手の意図に寄り添った血の通った対話を心がけるよう徹底的に改善しました。」","■ ゲームから学んだ「リソース配分」と「全体最適の思考」","「戦略ゲームで培った『限られたリソースで全体をどう最適化するか』という思考法は、プロジェクトの工数管理やリスク回避の現場で大いに役立っています。これからも技術とビジネスの両輪で信頼されるBrSEを目指します。」"]},{id:46,title:"Nguyễn Anh Linh のデベロッパーとしての成長の軌跡",date:"2022å¹´3月20日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/46/React_0.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/46/React_A%CC%89nh_bi%CC%80a_ba%CC%80i_vie%CC%82%CC%81t.png",excerpt:"入社から2年。頼りになる誠実なメンバーとして評価され、ついにチームリーダーとなったNguyễn Anh Linhの、デベロッパーとしての成長の軌跡。🌱",gradient:"from-green-200 via-teal-200 to-emerald-200",summary:"信頼される社員からチームリーダーへと成長したNguyễn Anh Linh氏のキャリアパス紹介。",content:["[IMAGE:/uploads/ckeditor/pictures/54/content_React_1.png]","🌱 Nguyễn Anh Linh のデベロッパーとしての成長の軌跡 🌱","[IMAGE:/uploads/ckeditor/pictures/55/content_React_2.png]","React Plusの第3部門であるTeam Alphaの誰もが、Linhを「頼りになる存在」として認めています。粘り強く、明るく、常に仕事に責任を持つ姿勢は、マネージャー陣からも高く評価されています。","[IMAGE:/uploads/ckeditor/pictures/56/content_React_3.png]","React Plusでの2年間の勤務を経て、現在Linhはチームの中核として、主要な開発業務と後輩の指導を任される中心的なリーダーの一人へと見事に成長しました。"]},{id:38,title:"React JSの8大メリットとエンタープライズWeb開発における将来性",date:"2022å¹´3月3日",category:"ブログ",type_post:"blog",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/38/25.png",excerpt:"現代のフロントエンド開発を牽引するReact JSの技術的優位性を徹底解説。Virtual DOMによる描画最適化、コンポーネント指向設計、エコシステムの拡張性なã
9483©ã€ä¼æ¥­ã‚·ã‚¹ãƒ†ãƒ é–‹ç™ºã§é¸ã°ã‚Œã‚‹ç†ç”±ã‚’紐解きます。",gradient:"from-blue-200 via-indigo-200 to-cyan-200",summary:"現代のフロントエンド開発を牽引するReact JSの技術的優位性を徹底解説。Virtual DOMによる描画最適化、コンポーネント指向設計、エコシステムの拡張性など、企業システム開発で選ばれる理由を紐解きます。",content:["【技術解説】React JSがエンタープライズ開発で選ばれ続ける8つの理由と将来性","Webアプリケーションの高度化に伴い、フロントエンドフレームワークの選定はプロダクトの成功を左右する最重要事項となっています。Facebook(現Meta)が開発したReact JSが、なぜ世界のデファクトスタンダードであり続けるのかを詳しく解説します。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/post/cover_image/38/25.png]","■ 1. 優れた学習曲線と高い開発生産性","View層に特化したシンプルなAPI設計により、JavaScriptの基礎を持つ開発者であればスムーズに習得可能です。","■ 2. コンポーネントの再利用性(Reusability)","UIを独立した部品として設計・カプセル化することで、大規模開発においてもデザインの統一性とコード再利用率を最大化します。","■ 3. Virtual DOM(仮想DOM)による超高速レンダリング","実際のDOM操作を最小限に抑える差分検出(Reconciliation)アルゴリズムにより、複雑なSPA(Single Page Application)でも滑らかなユーザー体験を提供します。","■ 4. 単方向データフローï¼
9483ˆUnidirectional Data Binding)による予測可能性","データの流れが一方向に制限されているため、状態管理(Redux, Zustand等)と組み合わせることでバグの追跡が容易になります。","■ 5. 豊かなエコシステムと強固なコミュニティサポート","■ 6. React Nativeとの高い親和性によるマルチプラットフォーム展開","■ 7. SSR(Next.js等)によるSEO最適化と初期ロード高速化","■ 8. TypeScriptとの完璧な統合による型安全性","React Plusは、Reactエコシステムの専門集団として、貴社のWebシステム開発を成功へと導きます。"]},{id:35,title:"Reactエンジニア必読の推薦書籍ガイド - 基礎からアーキテクチャ設計までスキルアップ",date:"2022å¹´2月25日",category:"ブログ",type_post:"blog",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/35/24.png",excerpt:"React開発の理解を深め、実務レベルの設計力を養うための厳選技術書・リファレンスガイド。コンポーネント設計、状態管理、パフォーマンスチューニングまで体系的な学習ロードマップを提案します。",gradient:"from-amber-200 via-orange-200 to-yellow-200",summary:"React開発の理解を深め、実務レベルの設計力を養うための厳選技術書・リファレンスガイド。コンポーネント設計、状態管理、パフォーマンスチューニングまで体系的な学習ロードマップを提案します。",content:["【学習リソース】Reactエンジニアのスキルアップを加速する推薦書籍と学習ガイド","Reactを実務で使いこなすためには、単に文法を知るだけでなく、モダンJavaScriptの基礎、宣言的UIの設計思想、状態管理パターン、テスト手法まで体系的な理解が求められます。React Plusのテックリード陣が推奨する学習領域をまとめました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/post/cover_image/35/24.png]","■ 1. 基礎・コアコンセプトの習得","・モダンJavaScript(ES6+)の非同期処理、分割代入、イミュータビリティの徹底理解","・React Hooks(useState, useEffect, useMemo, useCallback)のライフサイクルと動作原理","■ 2. 状態管理とアーキテクチャ設計","・Redux Toolkit、Zustand、TanStack Queryによるサーバー状態とクライアント状態の分離","・Clean ArchitectureやAtomic Designを適用したスケーラブルなディレクトリ構造","■ 3. パフォーマンス最適化とテスト","・React Profilerを用いたボトルネック分析とレンダリング最適化","・JestおよびReact Testing Libraryによる単体・結合テストの自動化"]},{id:45,title:"優秀なチームリーダー Nguyễn Thị Loan:Division 2唯一の女性デベロッパー",date:"2022å¹´2月15日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/45/0.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/45/React_A%CC%89nh_bi%CC%80a_ba%CC%80i_vie%CC%82%CC%81t.png",excerpt:"採用基準が最も厳しいDivision 2で、ただ一人の女性デベロッパーとして大活躍する優秀なチームリーダー、Nguyễn Thị Loanのストーリー。👩‍💻",gradient:"from-pink-200 via-rose-200 to-red-200",summary:"優秀なチームリーダーであり、厳しい部署で紅一点の存在である女性エンジニアNguyễn Thị Loan氏の紹介。",content:["👩‍💻 優秀なチームリーダー Nguyễn Thị Loan:Division 2唯一の女性デベロッパー 👩‍💻","[IMAGE:/uploads/ckeditor/pictures/50/content_1.png]","【重責を背負いながらも、常に自然体で】","[IMAGE:/uploads/ckeditor/pictures/51/content_2.png]","Division 2は、膨大な数の応募者が不合格となる、React Plusで最も厳しい採用基準を持つチームとして知られています。しかし、Nguyễn Thị Loanはその専門知識と豊かな経験により、Division 2の厳しいマネージャー2名を即座に納得させました。","[IMAGE:/uploads/ckeditor/pictures/52/content_3.png]","女性ならではの細やかさと圧倒的な技術力を武器に、彼女は重圧のかかるプロジェクトでもチームを力強く牽引しています。"]},{id:34,title:"若手エンジニアが直面しやすい5つの開発アンチパターンとその解決策",date:"2022å¹´2月9日",category:"ブログ",type_post:"blog",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/34/React_Opentalk_T2_Poster.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/34/React_Opentalk_T2_Poster.png",excerpt:"実務プロジェクトで起こりがちな設計・実装上の典型的な課題(状態管理の肥大化、非同期処理の誤用、テスト不足なã
9483©ï¼‰ã‚’取り上げ、現場のシニアエンジニアが実践的な改善アプローチを指南します。",gradient:"from-rose-200 via-pink-200 to-fuchsia-200",summary:"実務プロジェクトで起こりがちな設計・実装上の典型的な課題(状態管理の肥大化、非同期処理の誤用、テスト不足など)を取り上げ、現場のシニアエンジニアが実践的な改善アプローチを指南します。",content:["【技術ノウハウ】若手エンジニアが陥りがちな5大エラーと現場での実践的改善策","React Plusの社内ナレッジ共有セッション「OpenTalk」より、プロジェクト初期段階で頻発しやすいアンチパターンと、シニアエンジニアが実践する解決策を共有します。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/post/first_image/34/React_Opentalk_T2_Poster.png]","■ 1. グローバルステートの乱用とコンポーネントの不要な再レンダリング","→ 改善策:状態の局所化(ローカルステート)を優先し、コンテキストの分割やメモ化を適切に行う。","■ 2. 非同期処理(Promise/async-await)のエラーハンドリング不備","→ 改善策:try-catchの徹底、ローディング・エラー状態のUIフィードバックの明示。","■ 3. 重複コードの放置とリファクタリングの先送り","→ 改善策:カスタムフック(Custom Hooks)を活用したロジックの共通化。","■ 4. 仕様の自己判断による手戻りの発生","→ 改善策:不明点はタスク着手前にPM・BrSEと即座にすり合わせるコミュニケーションの徹底。","■ 5. 単体テストの軽視","→ 改善策:CIパイプラインにおける自動テストの導入とカバレッジ基準の維持。"]}
9483,{id:33,title:"【CTOインタビュー】Reactエンジニアのキャリア論:単なるトレンドにとどまらない長期的な価値の築き方",date:"2022å¹´1月20日",category:"ブログ",type_post:"blog",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/33/7.jpg",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/33/7.jpg",excerpt:"React Plus CTOのHùngが語る、エンジニアとしての本質的なキャリア形成論。特定フレームワークの習得にとどまらず、基盤となるコンピュータサイエンスの知見と問題解決力を磨く重要性を提言します。",gradient:"from-blue-200 via-indigo-200 to-purple-200",summary:"React Plus CTOのHùngが語る、エンジニアとしての本質的なキャリア形成論。特定フレームワークの習得にとどまらず、基盤となるコンピュータサイエンスの知見と問題解決力を磨く重要性を提言します。",content:["【キャリア対談】CTOが語るエンジニアの生存戦略 - 流行を追うだけでなく「本質」を極める道","インターンからスタートし、数々の大規模プロジェクトを牽引してCTOに就任したHùngに、エンジニアとしてのキャリア論と技術への向き合い方をインタビューしました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/post/first_image/33/7.jpg]","■ 小さなタスクの積み重ねが大きな信頼をつくる","「最初はUIの微調整や細かなバグ修正といった小さなタスクから始まりました。どんなに小さな仕事でも『絶対に期待以上の品質で返す』ことを徹底し続けたことが、より大きな設計やアーキテクチャの仕事を任される土台となりました。」","■ フレームワークの先にある「普遍的な基礎力」","「Reactは非常に強力なツールですが、真に価値あるエンジニアとは『Reactが使える人』ではなく『Reactを使って顧客のビジネス課題を解決できる人』です。データ構造、アルゴリズム、ネットワーク、セキュリティといった不変の基礎力を磨くことこそが、10年後も選ばれ続けるエンジニアになるための唯一の道です。」"]},{id:31,title:"【お客様の声】React Plusとのオフショア共同開発における信頼と実績",date:"2022å¹´1月18日",category:"ブログ",type_post:"blog",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/31/ws1.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/31/ws1.png",excerpt:"日本のクライアント企業様から寄せられたReact Plusへの評価の声をご紹介。迅速なコミュニケーション、高度なReact開発力、そして高品質な納品体制がもたらす長期的なパートナーシップの強みを公開します。",gradient:"from-emerald-200 via-teal-200 to-cyan-200",summary:"日本のクライアント企業様から寄せられたReact Plusへの評価の声をご紹介。迅速なコミュニケーション、高度なReact開発力、そして高品質な納品体制がもたらす長期的なパートナーシップの強みを公開します。",content:["【顧客評価】お客様から信頼されるReact Plusのオフショア開発サービス","React Plusが最も大切にしているのは、納品物の品質と、お客様との透明性あるコミュニケーションです。日本の大手クライアント企業様よりいただいた評価をご紹介します。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/post/first_image/31/ws1.png]","■ クライアント企業様からのフィードバック","「React Plusのチームは、レスポンスが極めて早く、開発品質・コミュニケーションともに期待を大きく上回るものでした。技術的な課題に対しても主体的に解決策を提案していただき、安心してプロジェクトを任せることができました。」","■ 契約規模の拡大と長期パートナーシップ","この高い評価を受け、同クライアント様からは開発体制規模を2倍に拡大いただき、年次契約の更新を締結いたしました。React Plusはこれからも「Your Quality, Our Priority」の精神で、最高水準のエンジニアリングを提供し続けます。"]},{id:29,title:"Reactとは何か?モダンWeb開発における基本構造と導入メリットを分かりやすく解説",date:"2022å¹´1月18日",category:"ブログ",type_post:"blog",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/29/REACT_L%C3%80_G%C3%8C_V%C3%80_L%E1%BB%A2I_%C3%8DCH_M%C3%80_REACT_MANG_L%E1%BA%A0I__2240_x_1000_px_.jpg",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/29/REACT_L%C3%80_G%C3%8C_V%C3%80_L%E1%BB%A2I_%C3%8DCH_M%C3%80_REACT_MANG_L%E1%BA%A0I__2240_x_1000_px_.jpg",excerpt:"世界中で広く採用されているJavaScriptライブラリ「React」の基本概念、コンポーネント指向、仮想DOMによる高速描画、JSX記法など、開発効率とUI品質を両立させる仕組みを基礎から解説します。",gradient:"from-cyan-200 via-blue-200 to-indigo-200",summary:"世界中で広く採用されているJavaScriptライブラリ「React」の基本概念、コンポーネント指向、仮想DOMによる高速描画、JSX記法など、開発効率とUI品質を両立させる仕組みを基礎から解説します。",content:["【技術入門】Reactの基本構造とビジネスにもたらす3大メリット","現代のWebサービスにおいて、直感的でレスポンシブなユーザーインターフェース(UI)は競争å
9483„ªä½ã®æºæ³‰ã§ã™ã€‚Meta社がオープンソースとして公開したReactが、今日のWeb開発において不可欠となった背景と技術的特長を整理します。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/post/first_image/29/REACT_L%C3%80_G%C3%8C_V%C3%80_L%E1%BB%A2I_%C3%8DCH_M%C3%80_REACT_MANG_L%E1%BA%A0I__2240_x_1000_px_.jpg]","■ 1. Reactの核心「コンポーネント指向設計」","ボタン、入力フォーム、ヘッダーなどのUI要素を独立した「コンポーネント」として分割・構築します。これによりコードの重複を排除し、保守性とテスタビリティを劇的に向上させます。","■ 2. 仮想DOM(Virtual DOM)による高速な画面更新","ブラウザのDOMツリーを直接操作する代わりに、メモリ上の仮想DOMで差分を計算し、必要な箇所のみを最小限のコストで更新します。これにより、大規模なデータ更新時でも軽快な動作を維持します。","■ 3. JSXによる直感的で型安全なコード記述","JavaScriptの中にHTMLライクなマークアップを直接記述できるJSXにより、ロジックと見た目を一つのファイルで直感的に管理できます。TypeScriptと組み合わせることで、開発時のエラーを未然に防止します。"]},{id:10026,title:"Recap Sum Up 2021 - 「The Power of One」",date:"2022å¹´1月15日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/26/%E1%BA%A2NH_B%C3%8CA__WEB.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/26/%E1%BA%A2NH_B%C3%8CA__WEB.png",excerpt:"2021年の軌跡を称えるイヤーエンドパーティーを開催.合言葉は「The Power of One」。個の力が結集し、組織として大きな壁を乗り越えた一年でした.🤝🏆✨",gradient:"from-indigo-200 via-purple-200 to-pink-200",summary:"2021年度を総括し、社員の功績を称える表彰式を実施.次年度への決意を全社で共有しました。",content:["■ Sum Up 2021 - The Power of One","2022å¹´1月15日,React Plusは2021年を締めくくる一大イベント「Sum Up」を執り行いました。","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/35/content_1.png]","[IMAGE:https://reactplus.s3.amazonaws.com/uploads/ckeditor/pictures/36/content_2.png]","パンデミック下の困難な状況においても,私たちは成長を止めませんでした.リモートワークへの適応、品質管理体制の刷新、そして何よりメンバー間の固い絆.表彰式では、年間MVPに輝いたエンジニアを全員がスタンディングオベーションで迎えました.2022å¹´,私たちの冒険はさらなる深部へ.ともに最高のコードを書いていきましょう!"]},{id:40,title:"Phạm Bá Linh:Comtorから優秀なDeveloper・Team Leaderへの軌跡",date:"2021å¹´10月15日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/40/React_A%CC%89nh_bi%CC%80a_ba%CC%80i_vie%CC%82%CC%81t_Linh_bi%CC%80a_1.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/40/React_A%CC%89nh_bi%CC%80a_ba%CC%80i_vie%CC%82%CC%81t_Linh_bi%CC%80a.png",excerpt:"未経験のコミュニケーター(Comtor)からReact Plusの優秀なチームリーダー兼デベロッパーへと成長を遂げたPhạm Bá Linh。彼の挑戦と努力のストーリーをご紹介します。🌟",gradient:"from-blue-200 via-sky-200 to-indigo-200",summary:"コミュニケーターから優秀なデベロッパー・チームリーダーへと躍進したPhạm Bá Linh氏の成功ストーリー。",content:["🌟 Phạm Bá Linh:Comtorから優秀なDeveloper・Team Leaderへの軌跡 🌟","[IMAGE:/uploads/ckeditor/pictures/47/content_React_A%CC%89nh_bi%CC%80a_ba%CC%80i_vie%CC%82%CC%81t_Linh_1.png]","【最初の転機:「最初はただお金のためだった」】","[IMAGE:/uploads/ckeditor/pictures/48/content_React_A%CC%89nh_bi%CC%80a_ba%CC%80i_vie%CC%82%CC%81t_Linh_2.png]","なぜComtorからDeveloperになったã
9483®ã‹ã¨å°‹ã­ã‚‰ã‚Œã‚‹ã¨ã€Linhはいつも笑って「最初はただお金のためでした」と答えます。","[IMAGE:/uploads/ckeditor/pictures/49/content_React_A%CC%89nh_bi%CC%80a_ba%CC%80i_vie%CC%82%CC%81t_Linh_3.png]","彼がReact Plusに入社した当初の役割はコミュニケーター(Comtor・通訳)でした。しかし、特有の好奇心と挑戦する姿勢で猛勉強を重ね、現在では会社で最も優秀なプログラマーの一人であり、リーダーとして後進を導く頼もしい存在へと成長しました。"]},{id:39,title:"Best PM Phạm Khánh Ly と困難なプロジェクトにおける「鉄の拳」",date:"2021å¹´9月20日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/39/React_A%CC%89nh_bi%CC%80a_ba%CC%80i_vie%CC%82%CC%81t.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/39/React_A%CC%89nh_bi%CC%80a_ba%CC%80i_vie%CC%82%CC%81t.png",excerpt:"React PlusのBest PM、Phạm Khánh Ly。どんな難題プロジェクトも彼女の「鉄の拳(強い責任感と実行力)」にかかれば確実に成功へと導かれます!💪",gradient:"from-violet-200 via-purple-200 to-fuchsia-200",summary:"困難なプロジェクトを成功に導く優秀なプロジェクトマネージャー(PM)、Phạm Khánh Ly氏の働き方紹介。",content:["💪 Best PM Phạm Khánh Ly と困難なプロジェクトにおける「鉄の拳」 💪","[IMAGE:/uploads/ckeditor/pictures/44/content_1.png]","【「やる時はやる、遊ぶ時も全力でやる」】","これこそが、Phạm Khánh Lyが自身の仕事の原則について語った言葉です。彼女は「自分のタスクに責任を持ち、最短時間で処理するために集中しなければならない」という信念を持っています。","[IMAGE:/uploads/ckeditor/pictures/45/content_2.png]","[IMAGE:/uploads/ckeditor/pictures/46/content_3.png]","その並外れた集中力と熱意、そして強い実行力により、彼女はこれまで数え切れないほどの困難なプロジェクトを成功させ、クライアントからの厚い信頼を勝ち取ってきました。"]},{id:37,title:"2021å¹´ 最優秀女性マネージャー:真の理解が成功を生む",date:"2021å¹´8月15日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/37/Bi%CC%80a.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/37/Bi%CC%80a.png",excerpt:"2021年の最優秀女性マネージャーに輝いたThắm。BrSEチームに新しい風を吹き込み、「共感」と「理解」でチームを大成功へと導いた彼女のリーダーシップとは?🌸",gradient:"from-pink-200 via-rose-200 to-red-200",summary:"2021年の最優秀女性マネージャーに選出されたThắm氏の、BrSEチームにおける優れたマネジメント手法の紹介。",content:["🌸 2021å¹´ 最優秀女性マネージャー:真の理解が成功を生む 🌸","[IMAGE:/uploads/ckeditor/pictures/41/content_2.png]","【BrSEチームの新たなエネルギー源】","[IMAGE:/uploads/ckeditor/pictures/42/content_3.png]","2019年にReact Plusのメンバーに加わったThắmは、入社最初の1ヶ月目にして社内のBrSE(ブリッジSE)チームに新しい風を吹き込みました。","[IMAGE:/uploads/ckeditor/pictures/43/content_Poster_Ki%CC%A3ch.jpg]","当時、経験の浅い若手が多く、プロセスやスキルに課題を抱えていたチームに対し、彼女は「共感」と「理解」をもって一人ひとりと向き合いました。その結果、チームの結束力とパフォーマンスは劇的に向上し、彼女のリーダーシップは会社全体から高く評価されています。"]},{id:10001,title:"React Plus 公式ウェブサイト公開のお知らせ",date:"2021å¹´6月1日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/1/React_Plus_Launch.png",excerpt:"ついにReact Plus summer の冒険が始まります.私たちのビジョン、技術、そして情熱を紹介する公式サイトをオープンしました.🚀✨",gradient:"from-cyan-200 via-blue-200 to-indigo-200",summary:"React Plus summer の原点となる公式サイトのローンチ.ここから私たちの、世界を変えるプロダクト開発の歴史がスタートします。",content:["2021å¹´6月1日,記念すべき国際こどもの日に,React Plusは公式ウェブサイトを公開いたしました。","私たちは、Reactエコシステムを中心とした最先端技術で、お客様のDXを加速させるパートナーです.このサイトを通じて、最新のテックトレンドや、私たちのチームが創り出す革新的な事例を届けてまいります.React Plus summer の応援を、よろしくお願い申し上げます!"]},{id:32,title:"React Plus 2021年活動総括 - 驚異的な成長の軌跡",date:"2021å¹´4月10日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/32/ws2.1.jpg",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/32/ws2.1.jpg",excerpt:"React Plusの2021年は大躍進の年でした!2年連続で500%の驚異的な成長率を達成し、ベトナム最大級のReact専門企業へと力強く前進しています。🚀",gradient:"from-emerald-200 via-teal-200 to-cyan-200",summary:"2021年のReact Plusの事業実績と、2年連続の500%成長に関する総括レポート。",content:["[IMAGE:/uploads/ckeditor/pictures/6/content_ws2.2.jpg]","[IMAGE:/uploads/ckeditor/pictures/7/content_ws2.3.jpg]","🚀 React Plus 2021年活動総括 - 驚異的な成長の軌跡 🚀","2021年の活動を振り返ると、React Plusは2年連続で「500%の成長率」という目覚ましい成果を達成し、これは私たちにとって大いなる誇りです。","「ベトナム初、そして最大のReact専門開発企業になる」という明確なビジョンのもと、私たちは今後さã
9483‚‰ã«ãã®ã‚¹ãƒ”ードを加速させ、力強く前進し続けます。"]},{id:30,title:"Hội khỏe Phù Đổng React Plus 2021 の振り返り",date:"2021å¹´3月20日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/30/DSC07393.JPG",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/30/content_IMG_3114.jpeg",excerpt:"社内スポーツ大会「Hội khỏe Phù Đổng React Plus 2021」が大盛り上がり!才能を発揮し、健康を維持しながら、社員同士の絆を深めました。🏅🏃‍♂️",gradient:"from-amber-200 via-yellow-200 to-orange-200",summary:"社員の健康促進と結束を高める社内スポーツイベント「Hội khỏe Phù Đổng React Plus 2021」の振り返り。",content:["🏅 Hội khỏe Phù Đổng React Plus 2021 の振り返り 🏅","「Hội khỏe Phù Đổng React Plus」は、React Plusの全社員を対象に実施される毎年恒例の重要なスポーツ大会です。","このイベントは、若手社員が自らの身体的才能を存分に発揮し、健康を鍛え、社員同士の絆を互いに深めるための素晴らしい遊び場(プラットフォーム)を提供することを目的に開催されており、全社員の健康維持のための重要な福祉企画でもあります。","[IMAGE:/uploads/ckeditor/pictures/3/content_IMG_3906.JPG]","[IMAGE:/uploads/ckeditor/pictures/4/content_IMG_4051.JPG]","[IMAGE:/uploads/ckeditor/pictures/5/content_IMG_4631.JPG]"]},{id:28,title:"「React Plus Developer K2」トレーニングコースの開講",date:"2021å¹´2月15日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/28/TNN_7722.jpg",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/28/TNN_7722.jpg",excerpt:"「React Plus Developer K2」トレーニングコースが開講!IT学生が「React / React Native」の基礎を学び、実際の国際プロジェクトに参加するチャンスです。💻",gradient:"from-indigo-200 via-violet-200 to-purple-200",summary:"学生向けの無償トレーニングプログラム「React Plus Developer K2(第2期)」の開講のお知らせ。",content:["💻 「React Plus Developer K2」トレーニングコースの開講 💻","React Plusは、次世代のIT人材育成を目的とした無料のトレーニングコース「React Plus Developer K2」を開講しました。","このプログラムは、IT専攻の学生が最先端技術である「React」および「React Native」に触れ、基礎から実践までを学べる絶好の機会です。さらに、成績優秀者はReact Plusが手掛ける大規模な国際プロジェクトに直接参加するチャンスも得られます。"]},{id:26,title:"「React Plus Developer K1」トレーニングコース 第1段階修了",date:"2021å¹´1月20日",category:"イベント",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/26/DSCF2792.jpg",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/26/DSCF2792.jpg",excerpt:"記念すべき第1期「React Plus Developer K1」トレーニングコースの第1段階が終了しました!受講生たちは経験豊かな先輩方から多くの知識を吸収しました。🎓",gradient:"from-sky-200 via-blue-200 to-indigo-200",summary:"第1期トレーニングコース「React Plus Developer K1」の第1段階終了の報告。",content:["🎓 「React Plus Developer K1」トレーニングコース 第1段階修了 🎓","約2ヶ月間にわたって実施された、当社初のトレーニングコース「React Plus Developer K1」の第1段階が無事に終了しました。","短い期間ながら、受講生たちは現場で活躍する経験豊富なエンジニアからの直接指導を受け、JavaScript、React、およびReact Nativeに関する多くの専門知識を熱心に学び、自らのスキルを飛躍的に向上させました。"]},{id:1,title:"トークショー開催:「Reactjsの未来とデベロッパーの機会」",date:"2020å¹´3月8日",category:"ニュース",imageUrl:"https://reactplus.s3.amazonaws.com/uploads/post/cover_image/1/ReactPlusKhoaHoc2.png",firstImage:"https://reactplus.s3.amazonaws.com/uploads/post/first_image/1/img3.png",excerpt:"トークショー「Reactjsの未来とデベロッパーの機会」を開催。最新の技術トレンドとReactの強みを解説し、多くのプログラマーに新たなキャリアの方向性を示しました。🎤",gradient:"from-fuchsia-200 via-purple-200 to-indigo-200",summary:"React技術の将来性と開発者向けのキャリアチャンスをテーマにしたトークショーの開催報告。",content:["🎤 トークショー開催:「Reactjsの未来とデベロッパーの機会」 🎤","IT業界において卓越した進歩と称され、世界中の開発者から広く支持されている「Reactjs」および「React Native」は、日々の開発に新たな時代を切り開く「未来のテクノロジー」となっています。","今回のトークショーでは、これらの技術が将来的により堅牢なエコシステムにどのように進化していくか、そしてデベロッパーにとってどのようなキャリアステップやビジネスチャンスが広がっているのかについて、熱く語り合われました。"]}];function eD(t){return typeof window<"u"&&typeof DOMParser<"u"?new DOMParser().parseFromString(`<!doctype html><body>${t}`,"text/html").body.textContent||"":t.replace(/&#(\d+);/g,(e,n)=>String.fromCharCode(Number(n))).replace(/&#x([0-9a-fA-F]+);/g,(e,n)=>String.fromCharCode(parseInt(n,16))).replace(/&nbsp;/g," ").replace(/&quot;/g,'"').replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&Agrave;/g,"À").replace(/&agrave;/g,"à").replace(/&Atilde;/g,"Ã").replace(/&atilde;/g,"ã").replace(/&Aring;/g,"Å").replace(/&aring;/g,"Ã¥").replace(/&Egrave;/g,"È").replace(/&egrave;/g,"è").replace(/&Igrave;/g,"Ì").replace(/&igrave;/g,"ì").replace(/&Ograve;/g,"Ò").replace(/&ograve;/g,"ò").replace(/&Ugrave;/g,"Ù").replace(/&ugrave;/g,"ù").replace(/&Acirc;/g,"Â").replace(/&acirc;/g,"â").replace(/&Ecirc;/g,"Ê").replace(/&ecirc;/g,"ê").replace(/&Ocirc;/g,"Ô").replace(/&ocirc;/g,"ô").replace(/&Uacute;/g,"Ú").replace(/&uacute;/g,"ú").replace(/&Iacute;/g,"Í").replace(/&iacute;/g,"í").replace(/&Oacute;/g,"Ó").replace(/&oacute;/g,"ó").replace(/&Aacute;/g,"Á").replace(/&aacute;/g,"á").replace(/&Eacute;/g,"É").replace(/&eacute;/g,"é").replace(/&Yacute;/g,"Ý").replace(/&yacute;/g,"ý").replace(/&hellip;/g,"...").replace(/&mdash;/g,"—").replace(/&ndash;/g,"–").replace(/&ldquo;/g,"“").replace(/&rdquo;/g,"”").replace(/&lsquo;/g,"‘").replace(/&rsquo;/g,"’").replace(/&laquo;/g,"«").replace(/&raquo;/g,"»").replace(/&apos;/g,"'")}function _f(t){if(!t)return[];let e=t.replace(/<style[^>]*>[\s\S]*?<\/style>/gi,"").replace(/<script[^>]*>[\s\S]*?<\/script>/gi,"");e=e.replace(/<img[^>]+src="([^"]+)"[^>]*>/gi,`[IMAGE:$1]
9484`),e=e.replace(/<li[^>]*>/gi,"- ").replace(/<\/li>/gi,`
9485`),e=e.replace(/<\/p>/gi,`
9486`).replace(/<br\s*\/?>/gi,`
9487`),e=e.replace(/<[^>]+>/g,""),e=eD(e),e=e.replace(/&bull;/gi,"• "),e=e.replace(/\u00a0/g," ");let n=e.split(`
9488`).map(i=>i.trim()).filter(i=>i.length>0);n=n.filter(i=>!/^\[\s*English\s+Below\s*\]$/i.test(i));const s=n.findIndex((i,r)=>r>0&&(i==="_"||i==="—"||i==="---"));return s!==-1&&(n=n.slice(0,s)),n}function nD(t){if(!t)return"";const e=new Date(t);if(!isNaN(e.getTime()))return`${["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][e.getMonth()]} ${e.getDate()}, ${e.getFullYear()}`;if(t.includes("/")){const n=t.split("/");if(n.length===3){const[s,i,r]=n;return`${["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][parseInt(i)-1]} ${parseInt(s)}, ${r}`}}return t}const Ko={All:{endpoint:"",category:"All",typeId:""},Event:{endpoint:"events",category:"Event",typeId:"0"},0:{endpoint:"events",category:"Event",typeId:"0"},News:{endpoint:"blogs",category:"News",typeId:"1"},1:{endpoint:"blogs",category:"News",typeId:"1"},Blog:{endpoint:"blogs",category:"News",typeId:"1"},Charity:{endpoint:"charity_stories",category:"Charity",typeId:"2"},2:{endpoint:"charity_stories",category:"Charity",typeId:"2"},Culture:{endpoint:"cultures",category:"Culture",typeId:"3"},3:{endpoint:"cultures",category:"Culture",typeId:"3"},Career:{endpoint:"knowledges",category:"Career",typeId:"4"},4:{endpoint:"knowledges",category:"Career",typeId:"4"},AiBlog:{endpoint:"",category:"AiBlog",typeId:"ai"},ai:{endpoint:"",category:"AiBlog",typeId:"ai"},5:{endpoint:"",category:"AiBlog",typeId:"ai"}};function yp(t){if(Array.isArray(t))return t;if(!t||typeof t!="object")return[];const e=Object.keys(t);return e.length>0&&e.every(n=>!isNaN(Number(n)))?Object.values(t):t.news||t.events||t.blogs||t.charity_stories||t.cultures||t.knowledges||t.posts||t.volunteers||t.trainings||[]}function aD(t,e){return t?e==="ai"||e==="ai_blog"||e==="5"?!0:/^\s*<!DOCTYPE|^\s*<html|^\s*<meta|<style\b|class=["'][^"']*\b(page-frame|rp-article)\b/i.test(t):!1}function Vl(t,e,n){const s=t.cover_image?.url||t.first_image?.url||"/photo-1552820728-8b83bb6b773f.avif";let i,r=t.title;if(t.introduction){const f=_f(t.introduction);if(f.length>0){i=f;const h=f.find(v=>!v.startsWith("[IMAGE:"));h?r=h:r=f[0]}}else if(t.content){const f=_f(t.content);if(f.length>0){const h=f.find(v=>!v.startsWith("[IMAGE:"));h&&(r=h)}}const c=_f(t.content),g=e||{event:"Event",events:"Event",news:"News",blog:"News",blogs:"News",charity_story:"Charity",charity_stories:"Charity",culture:"Culture",cultures:"Culture",knowledge:"Career",knowledges:"Career",career:"Career",ai:"AiBlog",ai_blog:"AiBlog",0:"Event",1:"News",2:"Charity",3:"Culture",4:"Career",5:"AiBlog"}[t.type_post]||"News",_=t.type_post||n||"1";return{id:t.id,title:t.title,date:nD(t.start_date_string||t.start_date),category:g,type_post:String(_),imageUrl:s,excerpt:r,gradient:"from-blue-200 via-purple-200 to-pink-200",summary:r,summaryContent:i,firstImage:t.first_image?.url||void 0,content:c.length>0?c:void 0,rawHtml:aD(t.content,t.type_post||n)?t.content:void 0}}async function p1(t=999,e){try{const n=e!=null?String(e):"All";if(n==="AiBlog"||n==="ai"||n==="5"){const p=`https://api.reactplus.vn/api/v1/posts?per_page=${t}`,g=await fetch(p);if(!g.ok)throw new Error(`HTTP error! status: ${g.status}`);const _=await g.json(),f=yp(_);return!f||!Array.isArray(f)?[]:f.filter(v=>v.type_post==="ai"||v.type_post==="ai_blog"||v.type_post==="5").map(v
9488=>Vl(v,"AiBlog","ai"))}if(n!=="All"&&Ko[n]&&Ko[n].endpoint){const p=Ko[n],g=`https://api.reactplus.vn/api/v1/posts/${p.endpoint}?per_page=${t}`,_=await fetch(g);if(!_.ok)throw new Error(`HTTP error! status: ${_.status}`);const f=await _.json(),h=yp(f);return!h||!Array.isArray(h)?[]:h.map(v=>Vl(v,p.category,p.typeId))}const s=[Ko.Event,Ko.News,Ko.Charity,Ko.Culture,Ko.Career],i=await Promise.allSettled([...s.map(async p=>{const g=`https://api.reactplus.vn/api/v1/posts/${p.endpoint}?per_page=${t}`,_=await fetch(g);if(!_.ok)return[];const f=await _.json(),h=yp(f);return!h||!Array.isArray(h)?[]:h.map(v=>Vl(v,p.category,p.typeId))}),(async()=>{const p=`https://api.reactplus.vn/api/v1/posts?per_page=${t}`,g=await fetch(p);if(!g.ok)return[];const _=await g.json(),f=yp(_);return!f||!Array.isArray(f)?[]:f.map(h=>Vl(h))})()]),r=[],c=new Set;for(const p of i)if(p.status==="fulfilled")for(const g of p.value)c.has(g.id)||(c.add(g.id),r.push(g));return r}catch(n){throw console.error("Error fetching news from API:",n),n}}async function sD(t){try{const n=(await p1(999)).find(i=>i.id===t);if(n)return n;const s=await fetch(`https://api.reactplus.vn/api/v1/posts/${t}`);if(s.ok){const i=await s.json(),r=i.post||i;if(r&&r.id)return Vl(r)}return null}catch(e){return console.error("Error fetching news item by ID:",e),null}}let ql=null,ff=!1,Pl=null;async function Z6(){return ql||(ff&&Pl||(ff=!0,Pl=(async()=>{try{return ql=await p1(999),ql}catch(t){return console.error("Failed to fetch Vietnamese news from API:",t),[]}finally{ff=!1,Pl=null}})()),Pl)}const g1={ja:tD};async function ug(t,e){if(t==="ja")return g1.ja;if(e&&e!=="All")try{return await p1(999,e)}catch(n){return console.error("Failed to fetch news for typePost:",e,n),[]}return await Z6()}function oD(t){return t==="ja"?g1.ja:ql||[]}async function iD(t,e){if(e==="ja")return g1.ja.find(c=>c.id===t);const s=(await Z6()).find(r=>r.id===t);return s||await sD(t)||void 0}function tA(t,e){return function(){return t.apply(e,arguments)}}const{toString:rD}=Object.prototype,{getPrototypeOf:ai}=Object,{iterator:Nc,toStringTag:eA}=Symbol,pc=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),nA=t=>typeof t=="string"&&(t==="__proto__"||t==="constructor"||t==="prototype"),aA=(t,e,n)=>t===Object.prototype||!n&&e===null,uD=t=>{if(!Object.isExtensible(t))return!1;const e=Object.getOwnPropertyNames(t);return Object.getOwnPropertySymbols&&e.push(...Object.getOwnPropertySymbols(t)),e.every(n=>{if(nA(n))return!1;const s=Object.getOwnPropertyDescriptor(t,n);return!!s&&s.configurable&&s.writable===!0})},gc=(t,e)=>{let n=t;const s=[];for(;n!=null;){if(s.indexOf(n)!==-1)return!1;s.push(n);const i=ai(n);if(aA(n,i,n===t))return!1;if(pc(n,e))return!0;n=i}return!1},lD=(t,e)=>t!=null&&gc(t,e)?t[e]:void 0,cD=t=>{if(t==null||typeof t!="object"&&typeof t!="function")return t;const e=ai(t);if(e===null&&uD(t))return t;const n=Object.create(null),s=Object.create(null),i=[];let r=t;for(;r!=null&&i.indexOf(r)===-1;){i.push(r);const c=r===t?e:ai(r);if(aA(r,c,r===t))break;const p=Object.getOwnPropertyNames(r);Object.getOwnPropertySymbols&&p.push(...Object.getOwnPropertySymbols(r));for(const g of p)nA(g)||pc(s,g)||(n[g]=t[g],s[g]=!0);r=c}return n},m1=(t=>e=>{const n=rD.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),ds=t=>(t=t.toLowerCase(),e=>m1(e)===t),Hg=t=>e=>typeof e===t,{isArray:Ki}=Array,Wi=Hg("undefined");function Su(t){return t!==null&&!Wi(t)&&t.constructor!==null&&!Wi(t.constructor)&&Ea(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const sA=ds("ArrayBuffer");function dD(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&sA(t.buffer),e}const pD=Hg("string"),Ea=Hg("function"),oA=Hg("number"),wu=t=>t!==null&&typeof t=="object",gD=t=>t===!0||t===!1,Gp=t=>{if(!wu(t))return!1;const e=ai(t);return(e===null||e===Object.prototype||ai(e)===null)&&!gc(t,eA)&&!gc(t,Nc)},mD=t=>{if(!wu(t)||Su(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},hD=ds("Date"),_D=ds("File"),fD=t=>!!(t&&typeof t.uri<"u"),kD=t=>t&&typeof t.getParts<"u",vD=ds("Blob"),yD=ds("FileList"),bD=ds("Set"),xD=t=>wu(t)&&Ea(t.pipe);function AD(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}const db=AD(),pb=typeof db.FormData<"u"?db.FormData:void 0,CD=t=>{if(!t)return!1;if(pb&&t instanceof pb)return!0;const e=ai(t);if(!e||e===Object.prototype||!Ea(t.append))return!1;const n=m1(t);return n==="formdata"||n==="object"&&Ea(t.toString)&&t.toString()==="[object FormData]"},SD=ds("URLSearchParams"),[wD,ED,ID,ND]=["ReadableStream","Request","Response","Headers"].map(ds),RD=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Rc(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t>"u")return;let s,i;if(typeof t!="object"&&(t=[t]),Ki(t))for(s=0,i=t.length;s<i;s++)e.call(null,t[s],s,t);else{if(Su(t))return;const r=n?Object.getOwnPropertyNames(t):Object.keys(t),c=r.length;let p;for(s=0;s<c;s++)p=r[s],e.call(null,t[p],p,t)}}function iA(t,e){if(Su(t))return null;e=e.toLowerCase();const n=Object.keys(t);let s=n.length,i;for(;s-- >0;)if(i=n[s],e===i.toLowerCase())return i;return null}const Mi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,rA=t=>!Wi(t)&&t!==Mi;function qk(...t){const{caseless:e,skipUndefined:n}=rA(this)&&this||{},s={},i=(r,c)=>{if(c==="__proto__"||c==="constructor"||c==="prototype")return;const p=e&&typeof c=="string"&&iA(s,c)||c,g=pc(s,p)?s[p]:void 0;Gp(g)&&Gp(r)?s[p]=qk(g,r):Gp(r)?s[p]=qk({},r):Ki(r)?s[p]=r.slice():(!n||!Wi(r))&&(s[p]=r)};for(let r=0,c=t.length;r<c;r++){const p=t[r];if(!p||Su(p)||(Rc(p,i),typeof p!="object"||Ki(p)))continue;const g=Object.getOwnPropertySymbols(p);for(let _=0;_<g.length;_++){const f=g[_];HD.call(p,f)&&i(p[f],f)}}return s}const TD=(t,e,n,{allOwnKeys:s}={})=>(Rc(e,(i,r)=>
vendor: 4,509 bytes, lines 9488-9489
9488{n&&Ea(i)?Object.defineProperty(t,r,{__proto__:null,value:tA(i,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(t,r,{__proto__:null,value:i,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:s}),t),jD=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),PD=(t,e,n,s)=>{t.prototype=Object.create(e.prototype,s),Object.defineProperty(t.prototype,"constructor",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(t,"super",{__proto__:null,value:e.prototype}),n&&Object.assign(t.prototype,n)},MD=(t,e,n,s)=>{let i,r,c;const p={};if(e=e||{},t==null)return e;do{for(i=Object.getOwnPropertyNames(t),r=i.length;r-- >0;)c=i[r],(!s||s(c,t,e))&&!p[c]&&(e[c]=t[c],p[c]=!0);t=n!==!1&&ai(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},LD=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;const s=t.indexOf(e,n);return s!==-1&&s===n},OD=t=>{if(!t)return null;if(Ki(t))return t;let e=t.length;if(!oA(e))return null;const n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},DD=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&ai(Uint8Array)),zD=(t,e)=>{const s=(t&&t[Nc]).call(t);let i;for(;(i=s.next())&&!i.done;){const r=i.value;e.call(t,r[0],r[1])}},BD=(t,e)=>{let n;const s=[];for(;(n=t.exec(e))!==null;)s.push(n);return s},$D=ds("HTMLFormElement"),GD=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,s,i){return s.toUpperCase()+i}),{propertyIsEnumerable:HD}=Object.prototype,FD=ds("RegExp"),uA=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),s={};Rc(n,(i,r)=>{let c;(c=e(i,r,t))!==!1&&(s[r]=c||i)}),Object.defineProperties(t,s)},UD=t=>{uA(t,(e,n)=>{if(Ea(t)&&["arguments","caller","callee"].includes(n))return!1;const s=t[n];if(Ea(s)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},VD=(t,e)=>{const n={},s=i=>{i.forEach(r=>{n[r]=!0})};return Ki(t)?s(t):s(String(t).split(e)),n},qD=()=>{},KD=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function WD(t){return!!(t&&Ea(t.append)&&t[eA]==="FormData"&&t[Nc])}const XD=t=>{const e=new WeakSet,n=s=>{if(wu(s)){if(e.has(s))return;if(Su(s))return s;if(!("toJSON"in s)){e.add(s);let i;if(bD(s)){i=[];for(const r of s){const c=n(r);!Wi(c)&&i.push(c)}}else i=Ki(s)?[]:{},Rc(s,(r,c)=>{const p=n(r);!Wi(p)&&(i[c]=p)});return e.delete(s),i}}return s};return n(t)},YD=ds("AsyncFunction"),QD=t=>t&&(wu(t)||Ea(t))&&Ea(t.then)&&Ea(t.catch),lA=((t,e)=>t?setImmediate:e?((n,s)=>(Mi.addEventListener("message",({source:i,data:r})=>{i===Mi&&r===n&&s.length&&s.shift()()},!1),i=>{s.push(i),Mi.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Ea(Mi.postMessage)),JD=typeof queueMicrotask<"u"?queueMicrotask.bind(Mi):typeof process<"u"&&process.nextTick||lA,cA=t=>t!=null&&Ea(t[Nc]),ZD=t=>t!=null&&gc(t,Nc)&&cA(t),X={isArray:Ki,isArrayBuffer:sA,isBuffer:Su,isFormData:CD,isArrayBufferView:dD,isString:pD,isNumber:oA,isBoolean:gD,isObject:wu,isPlainObject:Gp,isEmptyObject:mD,isReadableStream:wD,isRequest:ED,isResponse:ID,isHeaders:ND,isUndefined:Wi,isDate:hD,isFile:_D,isReactNativeBlob:fD,isReactNative:kD,isBlob:vD,isRegExp:FD,isFunction:Ea,isStream:xD,isURLSearchParams:SD,isTypedArray:DD,isFileList:yD,forEach:Rc,merge:qk,extend:TD,trim:RD,stripBOM:jD,inherits:PD,toFlatObject:MD,kindOf:m1,kindOfTest:ds,endsWith:LD,toArray:OD,forEachEntry:zD,matchAll:BD,isHTMLForm:$D,hasOwnProperty:pc,hasOwnProp:pc,hasOwnInPrototypeChain:gc,getSafeProp:lD,toSafeFlatObject:cD,reduceDescriptors:uA,freezeMethods:UD,toObjectSet:VD,toCamelCase:GD,noop:qD,toFiniteNumber:KD,findKey:iA,global:Mi,isContextDefined:rA,isSpecCompliantForm:WD,toJSONObject:XD,isAsyncFn:YD,isThenable:QD,setImmediate:lA,asap:JD,isIterable:cA,isSafeIterable:ZD},tz=X.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),ez=t=>{const e={};let n,s,i;return t&&t.split(`
9489`).forEach(function(c){i=c.indexOf(":"),n=c.substring(0,i).trim().toLowerCase(),s=c.substring(i+1).trim();const p=X.hasOwnProp(e,n);!n||p&&X.hasOwnProp(tz,n)||(n==="set-cookie"?p?e[n].push(s):e[n]=[s]:e[n]=p?e[n]+", "+s:s)}),e};function nz(t){let e=0,n=t.length;for(;e<n;){const s=t.charCodeAt(e);if(s!==9&&s!==32)break;e+=1}for(;n>e;){const s=t.charCodeAt(n-1);if(s!==9&&s!==32)break;n-=1}return e===0&&n===t.length?t:t.slice(e,n)}
9489const az=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),sz=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function h1(t,e){return X.isArray(t)?t.map(n=>h1(n,e)):nz(String(t).replace(e,""))}const oz=t=>h1(t,az),iz=t=>h1(t,sz);function dA(t){const e=Object.create(null);return X.forEach(t.toJSON(),(n,s)=>{e[s]=iz(n)}),e}const gb=Symbol("internals");function Ml(t){return t&&String(t).trim().toLowerCase()}function Hp(t){return t===!1||t==null?t:X.isArray(t)?t.map(Hp):oz(String(t))}function rz(t){const e=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let s;for(;s=n.exec(t);)e[s[1]]=s[2];return e}const uz=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/;function kf(t){let e=0,n=t.length;for(;e<n;){const s=t.charCodeAt(e);if(s!==9&&s!==32)break;e+=1}for(;n>e;){const s=t.charCodeAt(n-1);if(s!==9&&s!==32)break;n-=1}return e===0&&n===t.length?t:t.slice(e,n)}function lz(t){const e=t.length-1;if(e<1||t.charCodeAt(0)!==34||t.charCodeAt(e)!==34)return t;let n="";for(let s=1;s<e;s++){const i=t.charCodeAt(s);if(i===34||i===92&&(s+=1,s>=e))return t;n+=t[s]}return n}function cz(t){const e=Object.create(null),n=String(t);let s=0,i=!1,r=!1;function c(p){const g=kf(n.slice(s,p)),_=g.indexOf("=");if(_<1)return;const f=kf(g.slice(0,_));if(!uz.test(f))return;const h=f.toLowerCase();if(h==="__proto__"||h==="constructor"||h==="prototype")return;const v=kf(g.slice(_+1));e[h]=lz(v)}for(let p=0;p<n.length;p++){const g=n.charCodeAt(p);i?r?r=!1:g===92?r=!0:g===34&&(i=!1):g===34?i=!0:(g===44||g===59)&&(c(p),s=p+1)}return c(n.length),e}const dz=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function vf(t,e,n,s,i){if(X.isFunction(s))return s.call(this,e,n);if(i&&(e=n),!!X.isString(e)){if(X.isString(s))return e.indexOf(s)!==-1;if(X.isRegExp(s))return s.test(e)}}function pz(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,s)=>n.toUpperCase()+s)}function gz(t,e){const n=X.toCamelCase(" "+e);["get","set","has"].forEach(s=>{Object.defineProperty(t,s+n,{__proto__:null,value:function(i,r,c){return this[s].call(this,e,i,r,c)},configurable:!0})})}let ia=class{constructor(e){e&&this.set(e)}set(e,n,s){const i=this;function r(p,g,_){const f=Ml(g);if(!f)return;const h=X.findKey(i,f);(!h||i[h]===void 0||_===!0||_===void 0&&i[h]!==!1)&&(i[h||g]=Hp(p))}const c=(p,g)=>X.forEach(p,(_,f)=>r(_,f,g));if(X.isPlainObject(e)||e instanceof this.constructor)c(e,n);else if(X.isString(e)&&(e=e.trim())&&!dz(e))c(ez(e),n);else if(X.isObject(e)&&X.isSafeIterable(e)){let p=Object.create(null),g,_;for(const f of e){if(!X.isArray(f))throw new TypeError("Object iterator must return a key-value pair");_=f[0],X.hasOwnProp(p,_)?(g=p[_],p[_]=X.isArray(g)?[...g,f[1]]:[g,f[1]]):p[_]=f[1]}c(p,n)}else e!=null&&r(n,e,s);return this}get(e,n){if(e=Ml(e),e){const s=X.findKey(this,e);if(s){const i=this[s];if(!n)return i;if(n===!0)return rz(i);if(X.isFunction(n))return n.call(this,i,s);if(X.isRegExp(n))return n.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,n){if(e=Ml(e),e){const s=X.findKey(this,e);return!!(s&&this[s]!==void 0&&(!n||vf(this,this[s],s,n)))}return!1}delete(e,n){const s=this;let i=!1;function r(c){if(c=Ml(c),c){const p=X.findKey(s,c);p&&(!n||vf(s,s[p],p,n))&&(delete s[p],i=!0)}}return X.isArray(e)?e.forEach(r):r(e),i}clear(e){const n=Object.keys(this);let s=n.length,i=!1;for(;s--;){const r=n[s];(!e||vf(this,this[r],r,e,!0))&&(delete this[r],i=!0)}return i}normalize(e){const n=this,s={};return X.forEach(this,(i,r)=>{const c=X.findKey(s,r);if(c){n[c]=Hp(i),delete n[r];return}const p=e?pz(r):String(r).trim();p!==r&&delete n[r],n[p]=Hp(i),s[p]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const n=Object.create(null);return X.forEach(this,(s,i)=>{s!=null&&s!==!1&&(n[i]=e&&X.isArray(s)?s.join(", "):s)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,n])=>e+": "+n).join(`
9490`)}getSetCookie(){const e=this.get("set-cookie");return X.isArray(e)?e:e==null||e===!1?[]:[e]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static parseParameters(e){return cz(e)}static concat(e,...n){const s=new this(e);
9490return n.forEach(i=>s.set(i)),s}static accessor(e){const s=(this[gb]=this[gb]={accessors:{}}).accessors,i=this.prototype;function r(c){const p=Ml(c);s[p]||(gz(i,c),s[p]=!0)}return X.isArray(e)?e.forEach(r):r(e),this}};ia.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);X.reduceDescriptors(ia.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(s){this[n]=s}}});X.freezeMethods(ia);const lg="[REDACTED ****]";function mz(t){if(X.hasOwnProp(t,"toJSON"))return!0;let e=Object.getPrototypeOf(t);for(;e&&e!==Object.prototype;){if(X.hasOwnProp(e,"toJSON"))return!0;e=Object.getPrototypeOf(e)}return!1}function hz(t,e){const n=new Set(e.map(r=>String(r).toLowerCase())),s=[],i=r=>{if(r===null||typeof r!="object"||X.isBuffer(r))return r;if(s.indexOf(r)!==-1)return;r instanceof ia&&(r=r.toJSON()),s.push(r);let c;if(X.isArray(r))c=[],r.forEach((p,g)=>{const _=i(p);X.isUndefined(_)||(c[g]=_)});else{if(!X.isPlainObject(r)&&mz(r))return s.pop(),r;c=Object.create(null);for(const[p,g]of Object.entries(r)){const _=n.has(p.toLowerCase())?lg:i(g);X.isUndefined(_)||(c[p]=_)}}return s.pop(),c};return i(t)}function mb(t){try{return String(t)}catch{return""}}function _z(t){return t.errors.map(n=>{try{return n&&n.message?mb(n.message):mb(n)}catch{return""}}).filter(Boolean).join("; ")||t.name||"AggregateError"}let St=class pA extends Error{static from(e,n,s,i,r,c){let p=e.message;!p&&X.isArray(e.errors)&&e.errors.length&&(p=_z(e));const g=new pA(p,n||e.code,s,i,r);return Object.defineProperty(g,"cause",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),g.name=e.name,e.status!=null&&g.status==null&&(g.status=e.status),c&&Object.assign(g,c),g}constructor(e,n,s,i,r){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,n&&(this.code=n),s&&(this.config=s),i&&(this.request=i),r&&(this.response=r,this.status=r.status)}toJSON(){const e=this.config,n=e&&X.hasOwnProp(e,"redact")?e.redact:void 0,s=X.isArray(n)&&n.length>0?hz(e,n):X.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:s,code:this.code,status:this.status}}};St.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE";St.ERR_BAD_OPTION="ERR_BAD_OPTION";St.ECONNABORTED="ECONNABORTED";St.ETIMEDOUT="ETIMEDOUT";St.ECONNREFUSED="ECONNREFUSED";St.ERR_NETWORK="ERR_NETWORK";St.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS";St.ERR_DEPRECATED="ERR_DEPRECATED";St.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE";St.ERR_BAD_REQUEST="ERR_BAD_REQUEST";St.ERR_CANCELED="ERR_CANCELED";St.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT";St.ERR_INVALID_URL="ERR_INVALID_URL";St.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const fz=null,gA=100;function Kk(t){return X.isPlainObject(t)||X.isArray(t)}function mA(t){return X.endsWith(t,"[]")?t.slice(0,-2):t}function yf(t,e,n){return t?t.concat(e).map(function(i,r){return i=mA(i),!n&&r?"["+i+"]":i}).join(n?".":""):e}function kz(t){return X.isArray(t)&&!t.some(Kk)}const vz=X.toFlatObject(X,{},null,function(e){return/^is[A-Z]/.test(e)});function Fg(t,e,n){if(!X.isObject(t))throw new TypeError("target must be an object");e=e||new FormData;const s=(E,I)=>{const j=X.getSafeProp(n,E);return X.isUndefined(j)?I:j},i=s("metaTokens",!0),r=s("visitor")||x,c=s("dots",!1),p=s("indexes",!1),g=s("Blob")||typeof Blob<"u"&&Blob,_=s("maxDepth",gA),f=g&&X.isSpecCompliantForm(e),h=[];if(!X.isFunction(r))throw new TypeError("visitor must be a function");function v(E){if(E===null)return"";if(X.isDate(E))return E.toISOString();if(X.isBoolean(E))return E.toString();if(!f&&X.isBlob(E))throw new St("Blob is not supported. Use a Buffer instead.");if(X.isArrayBuffer(E)||X.isTypedArray(E)){if(f&&typeof g=="function")return new g([E]);throw new St("Blob is not supported. Use a Buffer instead.",St.ERR_NOT_SUPPORT)}return E}function b(E){if(E>_)throw new St("Object is too deeply nested ("+E+" levels). Max depth: "+_,St.ERR_FORM_DATA_DEPTH_EXCEEDED)}function S(E,I){if(_===1/0)return JSON.stringify(E);const j=[];return JSON.stringify(E,function(P,N){if(!X.isObject(N))return N;for(;j.length&&j[j.length-1]!==this;)j.pop();return j.push(N),b(I+j.length-1),N})}function x(E,I,j){let T=E;if(X.isReactNative(e)&&X.isReactNativeBlob(E))return e.append(yf(j,I,c),v(E)),!1;if(E&&!j&&typeof E=="object"){if(X.endsWith(I,"{}"))I=i?I:I.slice(0,-2),E=S(E,1);else if(X.isArray(E)&&kz(E)||(X.isFileList(E)||X.endsWith(I,"[]"))&&(T=X.toArray(E)))return I=mA(I),T.forEach(function(N,D){!(X.isUndefined(N)||N===null)&&e.append(p===!0?yf([I],D,c):p===null?I:I+"[]",v(N))}),!1}return Kk(E)?!0:(e.append(yf(j,I,c),v(E)),!1)}const w=Object.assign(vz,{defaultVisitor:x,convertValue:v,isVisitable:Kk});function A(E,I,j=0){if(!X.isUndefined(E)){if(b(j),h.indexOf(E)!==-1)throw new Error("Circular reference detected in "+I.join("."));
9490h.push(E),X.forEach(E,function(P,N){(!(X.isUndefined(P)||P===null)&&r.call(e,P,X.isString(N)?N.trim():N,I,w))===!0&&A(P,I?I.concat(N):[N],j+1)}),h.pop()}}if(!X.isObject(t))throw new TypeError("data must be an object");return A(t),e}function hb(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(t).replace(/[!'()~]|%20/g,function(s){return e[s]})}function _1(t,e){this._pairs=[],t&&Fg(t,this,e)}const hA=_1.prototype;hA.append=function(e,n){this._pairs.push([e,n])};hA.toString=function(e){const n=e?s=>e.call(this,s,hb):hb;return this._pairs.map(function(i){return n(i[0])+"="+n(i[1])},"").join("&")};function yz(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function _A(t,e,n){if(!e)return t;t=t||"";const s=X.isFunction(n)?{serialize:n}:n,i=X.getSafeProp(s,"encode")||yz,r=X.getSafeProp(s,"serialize");let c;if(r?c=r(e,s):c=X.isURLSearchParams(e)?e.toString():new _1(e,s).toString(i),c){const p=t.indexOf("#");p!==-1&&(t=t.slice(0,p)),t+=(t.indexOf("?")===-1?"?":"&")+c}return t}const Ll=Symbol("internals");function fA(t){return t?t.length:0}function _b(t){if(t)for(;t.length&&t[t.length-1]===null;)t.pop()}function Ol(t,e){const n=t.handlers,s=fA(n);n!==e.handlersRef?(e.handlersRef=n,e.handlerEntries.clear()):s!==e.handlersLength&&(s?e.handlerEntries.forEach(function(r,c){n[r.index]!==r.handler&&e.handlerEntries.delete(c)}):e.handlerEntries.clear()),e.handlersLength=s}class fb{constructor(){this.handlers=[],this[Ll]={handlersRef:this.handlers,handlersLength:this.handlers.length,handlerEntries:new Map,iterationDepth:0,nextId:0}}use(e,n,s){const i={fulfilled:e,rejected:n,synchronous:s?s.synchronous:!1,runWhen:s?s.runWhen:null},r=this[Ll];this.handlers==null&&(this.handlers=[]),Ol(this,r);const c=r.nextId++;return this.handlers.push(i),r.handlerEntries.set(c,{handler:i,index:this.handlers.length-1}),r.handlersLength=this.handlers.length,c}eject(e){const n=this[Ll];Ol(this,n);const s=n.handlerEntries.get(e);if(s){if(n.handlerEntries.delete(e),this.handlers[s.index]!==s.handler)return;this.handlers[s.index]=null,n.iterationDepth||(_b(this.handlers),n.handlersLength=this.handlers.length)}}clear(){this.handlers&&(this.handlers=[],Ol(this,this[Ll]))}forEach(e){const n=this[Ll];Ol(this,n),n.iterationDepth++;try{X.forEach(this.handlers,function(i){i!==null&&e(i)})}finally{--n.iterationDepth||(Ol(this,n),_b(this.handlers),n.handlersLength=fA(this.handlers))}}}const f1={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},bz=typeof URLSearchParams<"u"?URLSearchParams:_1,xz=typeof FormData<"u"?FormData:null,Az=typeof Blob<"u"?Blob:null,Cz={isBrowser:!0,classes:{URLSearchParams:bz,FormData:xz,Blob:Az},protocols:["http","https","file","blob","url","data"]},k1=typeof window<"u"&&typeof document<"u",Wk=typeof navigator=="object"&&navigator||void 0,Sz=k1&&(!Wk||["ReactNative","NativeScript","NS"].indexOf(Wk.product)<0),wz=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Ez=k1&&window.location.href||"http://localhost",Iz=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:k1,hasStandardBrowserEnv:Sz,hasStandardBrowserWebWorkerEnv:wz,navigator:Wk,origin:Ez},Symbol.toStringTag,{value:"Module"})),$n={...Iz,...Cz};function Nz(t,e){return Fg(t,new $n.classes.URLSearchParams,{visitor:function(n,s,i,r){return $n.isNode&&X.isBuffer(n)?(this.append(s,n.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)},...e})}const kb=gA;function kA(t){if(t>kb)throw new St("FormData field is too deeply nested ("+t+" levels). Max depth: "+kb,St.ERR_FORM_DATA_DEPTH_EXCEEDED)}function Rz(t){const e=[],n=/[^.[\]]+|\[([^.[\]]*)]/g;let s;for(;(s=n.exec(t))!==null;)kA(e.length),e.push(s[0]==="[]"?"":s[1]||s[0]);return e}function Tz(t){const e={},n=Object.keys(t);let s;const i=n.length;let r;for(s=0;s<i;s++)r=n[s],e[r]=t[r];return e}function vA(t){function e(n,s,i,r){kA(r);let c=n[r++];if(c==="__proto__")return!0;const p=Number.isFinite(+c),g=r>=n.length;return c=!c&&X.isArray(i)?i.length:c,g?(X.hasOwnProp(i,c)?i[c]=X.isArray(i[c])?i[c].concat(s):[i[c],s]:i[c]=s,!p):((!X.hasOwnProp(i,c)||!X.isObject(i[c]))&&(i[c]=[]),e(n,s,i[c],r)&&X.isArray(i[c])&&(i[c]=Tz(i[c])),!p)}if(X.isFormData(t)&&X.isFunction(t.entries)){const n={};
vendor: 4,072 bytes, line 9490
9490return X.forEachEntry(t,(s,i)=>{e(Rz(s),i,n,0)}),n}return null}const yA=Object.freeze(["get","delete","head","options","post","put","patch","purge","link","unlink","query"]),Vr=(t,e)=>t!=null&&X.hasOwnProp(t,e)?t[e]:void 0;function jz(t,e,n){if(X.isString(t))try{return(e||JSON.parse)(t),X.trim(t)}catch(s){if(s.name!=="SyntaxError")throw s}return(n||JSON.stringify)(t)}const Tc={transitional:f1,adapter:["xhr","http","fetch"],transformRequest:[function(e,n){const s=n.getContentType()||"",i=s.indexOf("application/json")>-1,r=X.isObject(e);if(r&&X.isHTMLForm(e)&&(e=new FormData(e)),X.isFormData(e))return i?JSON.stringify(vA(e)):e;if(X.isArrayBuffer(e)||X.isBuffer(e)||X.isStream(e)||X.isFile(e)||X.isBlob(e)||X.isReadableStream(e))return e;if(X.isArrayBufferView(e))return e.buffer;if(X.isURLSearchParams(e))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let p;if(r){const g=Vr(this,"formSerializer");if(s.indexOf("application/x-www-form-urlencoded")>-1)return Nz(e,g).toString();if((p=X.isFileList(e))||s.indexOf("multipart/form-data")>-1){const _=Vr(this,"env"),f=_&&_.FormData;return Fg(p?{"files[]":e}:e,f&&new f,g)}}return r||i?(n.setContentType("application/json",!1),jz(e)):e}],transformResponse:[function(e){const n=Vr(this,"transitional")||Tc.transitional,s=n&&n.forcedJSONParsing,i=Vr(this,"responseType"),r=i==="json";if(X.isResponse(e)||X.isReadableStream(e))return e;if(e&&X.isString(e)&&(s&&!i||r)){const p=!(n&&n.silentJSONParsing)&&r;try{return JSON.parse(e,Vr(this,"parseReviver"))}catch(g){if(p)throw g.name==="SyntaxError"?St.from(g,St.ERR_BAD_RESPONSE,this,null,Vr(this,"response")):g}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:$n.classes.FormData,Blob:$n.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};X.forEach(yA,t=>{Tc.headers[t]={}});function bf(t,e){const n=this||Tc,s=e||n,i=ia.from(s.headers);let r=s.data;return X.forEach(t,function(p){r=p.call(n,r,i.normalize(),e?e.status:void 0)}),i.normalize(),r}function bA(t){return!!(t&&t.__CANCEL__)}let jc=class extends St{constructor(e,n,s){super(e??"canceled",St.ERR_CANCELED,n,s),this.name="CanceledError",this.__CANCEL__=!0}};function xA(t,e,n){const s=n.config.validateStatus;!n.status||!s||s(n.status)?t(n):e(new St("Request failed with status code "+n.status,n.status>=400&&n.status<500?St.ERR_BAD_REQUEST:St.ERR_BAD_RESPONSE,n.config,n.request,n))}const Pz=/[\t\n\r]/g;function AA(t){if(typeof t!="string")return t;let e=0;for(;e<t.length&&t.charCodeAt(e)<=32;)e++;return t.slice(e).replace(Pz,"")}function xf(t){const e=/^([-+\w]{1,25}):(?:\/\/)?/.exec(t);return e&&e[1]||""}function Mz(t,e){t=t||10;const n=new Array(t),s=new Array(t);let i=0,r=0,c;return e=e!==void 0?e:1e3,function(g){const _=Date.now(),f=s[r];c||(c=_),n[i]=g,s[i]=_;let h=r,v=0;for(;h!==i;)v+=n[h++],h=h%t;if(i=(i+1)%t,i===r&&(r=(r+1)%t),_-c<e)return;const b=f&&_-f;return b?Math.round(v*1e3/b):void 0}}function Lz(t,e){let n=0,s=1e3/e,i,r;const c=(f,h=Date.now())=>{n=h,i=null,r&&(clearTimeout(r),r=null),t(...f)};return[(...f)=>{const h=Date.now(),v=h-n;v>=s?c(f,h):(i=f,r||(r=setTimeout(()=>{r=null,c(i)},s-v)))},()=>i&&c(i),(...f)=>c(f)]}const cg=(t,e,n=3)=>{let s=0;const i=Mz(50,250);return Lz(r=>{if(!r||!X.isNumber(r.loaded))return;const c=r.loaded,p=r.lengthComputable?r.total:void 0,g=Math.max(0,p!=null?Math.min(c,p):c),_=Math.max(0,g-s),f=i(_);s=Math.max(s,g);const h={loaded:g,total:p,progress:p?g/p:void 0,bytes:_,rate:f||void 0,estimated:f&&p?(p-g)/f:void 0,event:r,lengthComputable:p!=null,[e?"download":"upload"]:!0};t(h)},n)},vb=(t,e)=>{const n=t!=null;return[s=>e[0]({lengthComputable:n,total:t,loaded:s}),e[1]]},yb=(t,e=X.asap)=>(...n)=>e(()=>t(...n)),Oz=$n.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,$n.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL($n.origin),$n.navigator&&/(msie|trident)/i.test($n.navigator.userAgent)):()=>
9490!0,Dz=$n.hasStandardBrowserEnv?{write(t,e,n,s,i,r,c){if(typeof document>"u")return;const p=[`${t}=${encodeURIComponent(e)}`];X.isNumber(n)&&p.push(`expires=${new Date(n).toUTCString()}`),X.isString(s)&&p.push(`path=${s}`),X.isString(i)&&p.push(`domain=${i}`),r===!0&&p.push("secure"),X.isString(c)&&p.push(`SameSite=${c}`),document.cookie=p.join("; ")},read(t){if(typeof document>"u")return null;const e=document.cookie.split(";");for(let n=0;n<e.length;n++){const s=e[n].replace(/^\s+/,""),i=s.indexOf("=");if(i!==-1&&s.slice(0,i)===t)try{return decodeURIComponent(s.slice(i+1))}catch{return s.slice(i+1)}}return null},remove(t){this.write(t,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function zz(t){return typeof t!="string"?!1:/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function Bz(t,e){if(!e)return t;let n=t.length;for(;n>0&&t.charCodeAt(n-1)===47;)n--;return t.slice(0,n)+"/"+e.replace(/^\/+/,"")}const $z=/^https?:(?!\/\/)/i;function Gz(t){return t&&t.replace(/(^|&)([^=&]*=)?[^&]+/g,(e,n,s="")=>`${n}${s}${lg}`)}function Hz(t){const e=t.replace(/^(https?:\/{0,2})[^/?#]*@/i,`$1${lg}@`),n=e.indexOf("#"),i=(n===-1?e:e.slice(0,n)).replace(/([?&][^=&#]*=)[^&#]*/g,`$1${lg}`);return n===-1?i:`${i}#${Gz(e.slice(n+1))}`}function bb(t,e){if(typeof t=="string"){const n=AA(t);if($z.test(n))throw new St(`Invalid URL ${JSON.stringify(Hz(n))}: missing "//" after protocol`,St.ERR_INVALID_URL,e)}}function CA(t,e,n,s){bb(e,s);let i=!zz(e);return t&&(i||n===!1)?(bb(t,s),Bz(t,e)):e}const xb=t=>t instanceof ia?{...t}:t,Fz=t=>Object.getOwnPropertySymbols&&Object.getOwnPropertyDescriptor?Object.keys(t).concat(Object.getOwnPropertySymbols(t).filter(e=>Object.getOwnPropertyDescriptor(t,e).enumerable)):Object.keys(t);function Xi(t,e){t=t||{},e=e||{};const n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function s(f,h,v,b){return X.isPlainObject(f)&&X.isPlainObject(h)?X.merge.call({caseless:b},f,h):X.isPlainObject(h)?X.merge({},h):X.isArray(h)?h.slice():h}function i(f,h,v,b){if(X.isUndefined(h)){if(!X.isUndefined(f))return s(void 0,f,v,b)}else return s(f,h,v,b)}function r(f,h){if(!X.isUndefined(h))return s(void 0,h)}function c(f,h){if(X.isUndefined(h)){if(!X.isUndefined(f))return s(void 0,f)}else return s(void 0,h)}function p(f){const h=X.hasOwnProp(e,"transitional")?e.transitional:void 0;if(!X.isUndefined(h))if(X.isPlainObject(h)){if(X.hasOwnProp(h,f))return h[f]}else return;const v=X.hasOwnProp(t,"transitional")?t.transitional:void 0;if(X.isPlainObject(v)&&X.hasOwnProp(v,f))return v[f]}function g(f,h,v){if(X.hasOwnProp(e,v))return s(f,h);if(X.hasOwnProp(t,v))return s(void 0,f)}const _={url:r,method:r,data:r,baseURL:c,transformRequest:c,transformResponse:c,paramsSerializer:c,timeout:c,timeoutErrorMessage:c,withCredentials:c,withXSRFToken:c,adapter:c,responseType:c,xsrfCookieName:c,xsrfHeaderName:c,onUploadProgress:c,onDownloadProgress:c,decompress:c,maxContentLength:c,maxBodyLength:c,beforeRedirect:c,transport:c,httpAgent:c,httpsAgent:c,cancelToken:c,socketPath:c,allowedSocketPaths:c,responseEncoding:c,validateStatus:g,headers:(f,h,v)=>i(xb(f),xb(h),v,!0)};return X.forEach(Fz({...t,...e}),function(h){if(h==="__proto__"||h==="constructor"||h==="prototype")return;const v=X.hasOwnProp(_,h)?_[h]:i,b=X.hasOwnProp(t,h)?t[h]:void 0,S=X.hasOwnProp(e,h)?e[h]:void 0,x=v(b,S,h);X.isUndefined(x)&&v!==g||(n[h]=x)}),X.hasOwnProp(e,"validateStatus")&&X.isUndefined(e.validateStatus)&&p("validateStatusUndefinedResolves")===!1&&(X.hasOwnProp(t,"validateStatus")?n.validateStatus=s(void 0,t.validateStatus):delete n.val
9490idateStatus),n}const Uz=["content-type","content-length"];function Vz(t,e,n){if(n!=="content-only"){t.set(e);return}Object.entries(e||{}).forEach(([s,i])=>{Uz.includes(s.toLowerCase())&&t.set(s,i)})}const qz=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,n)=>String.fromCharCode(parseInt(n,16)));function SA(t){const e=Xi({},t),n=v=>X.hasOwnProp(e,v)?e[v]:void 0,s=n("data");let i=n("withXSRFToken");const r=n("xsrfHeaderName"),c=n("xsrfCookieName");let p=n("headers");const g=n("auth"),_=n("baseURL"),f=n("allowAbsoluteUrls"),h=n("url");if(e.headers=p=ia.from(p),e.url=_A(CA(_,h,f,e),n("params"),n("paramsSerializer")),g){const v=X.getSafeProp(g,"username")||"",b=X.getSafeProp(g,"password")||"";try{p.set("Authorization","Basic "+btoa(v+":"+(b?qz(b):"")))}catch(S){throw St.from(S,St.ERR_BAD_OPTION_VALUE,t)}}if(X.isFormData(s)){const v=X.getSafeProp(s,"getHeaders");$n.hasStandardBrowserEnv||$n.hasStandardBrowserWebWorkerEnv||X.isReactNative(s)?p.setContentType(void 0):X.isFunction(v)&&Vz(p,v.call(s),n("formDataHeaderPolicy"))}if($n.hasStandardBrowserEnv&&(X.isFunction(i)&&(i=i(e)),i===!0||i==null&&Oz(e.url))){const b=r&&c&&Dz.read(c);b&&p.set(r,b)}return e}const Kz=typeof XMLHttpRequest<"u",Wz=Kz&&function(t){return new Promise(function(n,s){const i=SA(t);let r=i.data;const c=ia.from(i.headers).normalize();let{responseType:p,onUploadProgress:g,onDownloadProgress:_}=i,f,h,v,b,S,x;function w(){b&&b(),S&&S(),i.cancelToken&&i.cancelToken.unsubscribe(f),i.signal&&i.signal.removeEventListener("abort",f)}let A=new XMLHttpRequest;A.open(i.method.toUpperCase(),i.url,!0),A.timeout=i.timeout;function E(j){if(!A)return;if(A.status===0&&(xf(AA(i.url))||xf($n.origin))!=="file"&&!(A.responseURL&&A.responseURL.startsWith("file:"))){s(new St("Request aborted",St.ECONNABORTED,t,A)),w(),A=null;return}try{j?x&&x(j):S&&S()}catch(D){setTimeout(()=>{throw D})}if(!A)return;const T=ia.from("getAllResponseHeaders"in A&&A.getAllResponseHeaders()),N={data:!p||p==="text"||p==="json"?A.responseText:A.response,status:A.status,statusText:A.statusText,headers:T,config:t,request:A};xA(function(F){n(F),w()},function(F){s(F),w()},N),A=null}"onloadend"in A?A.onloadend=E:A.onreadystatechange=function(){!A||A.readyState!==4||A.status===0&&!(A.responseURL&&A.responseURL.startsWith("file:"))||setTimeout(E)},A.onabort=function(){A&&(s(new St("Request aborted",St.ECONNABORTED,t,A)),w(),A=null)},A.onerror=function(T){const P=T&&T.message?T.message:"Network Error",N=new St(P,St.ERR_NETWORK,t,A);N.event=T||null,s(N),w(),A=null},A.ontimeout=function(){let T=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const P=i.transitional||f1;i.timeoutErrorMessage&&(T=i.timeoutErrorMessage),s(new St(T,P.clarifyTimeoutError?St.ETIMEDOUT:St.ECONNABORTED,t,A)),w(),A=null},r===void 0&&c.setContentType(null),"setRequestHeader"in A&&X.forEach(dA(c),function(T,P){A.setRequestHeader(P,T)}),X.isUndefined(i.withCredentials)||(A.withCredentials=!!i.withCredentials),p&&p!=="json"&&(A.responseType=i.responseType),_&&([v,S,x]=cg(_,!0),A.addEventListener("progress",v)),g&&A.upload&&([h,b]=cg(g),A.upload.addEventListener("progress",h),A.upload.addEventListener("loadend",b)),(i.cancelToken||i.signal)&&(f=j=>{A&&(s(!j||j.type?new jc(null,t,A):j),A.abort(),w(),A=null)},i.cancelToken&&i.cancelToken.subscribe(f),i.signal&&(i.signal.aborted?f():i.signal.addEventListener("abort",f)));const I=xf(i.url);if(I&&!$n.protocols.includes(I)){s(new St("Unsupported protocol "+I+":",St.ERR_BAD_REQUEST,t)),w();return}A.send(r||null)})},Xz=(t,e)=>{if(t=t?t.filter(Boolean):[],!e&&!t.length)return;const n=new AbortController;let s=!1;const i=function(g){if(!s){s=!0,c();const _=g instanceof Error?g:this.reason;n.abort(_ instanceof St?_:new jc(_ instanceof Error?_.message:_))}};let r=e&&setTimeout(()=>{r=null,i(new St(`timeout of ${e}ms exceeded`,St.ETIMEDOUT))},e);const c=()=>{t&&(r&&clearTimeout(r),r=null,t.forEach(g=>{g.unsubscribe?g.unsubscribe(i):g.removeEventListener("abort",i)}),t=null)};t.forEach(g=>{if(!s){if(g.aborted){i.call(g);return}g.addEventListener("abort",i,{once:!0})}});const{signal:p}=n;return p.unsubscribe=()=>X.asap(c),p},Yz=function*(t,e){let n=t.byteLength;if(n<e){yield t;return}let s=0,i;for(;s<n;)i=s+e,yield t.slice(s,i),s=i},Qz=async function*(t,e){for await(const n of Jz(t))yield*Yz(n,e)},Jz=async function*(t){if(t[Symbol.asyncIterator]){yield*t;return}const e=t.getReader();try{for(;;){const{done:n,value:s}=await e.read();if(n)break;yield s}}finally{await e.cancel()}},Ab=(t,e,n,s)=>{const i=Qz(t,e);let r=0,c,p=g=>{c||(c=!0,s&&s(g))};return new ReadableStream({async pull(g){try{const{done:_,value:f}=await i.next();if(_){p(),g.close();return}let h=f.byteLength;if(n){let v=r+=h;n(v)}g.enqueue(new Uint8Array(f))}catch(_){throw p(_),_}},cancel(g){return p(g),i.return()}},{highWaterMark:2})},Cb=t=>t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102,wA=(t,e,n)=>e+2<n&&Cb(t.charCodeAt(e+1))&&Cb(t.charCodeAt(e+2)),Sb=t=>t<=57?t-48:(t&223)-55,Zz=t=>t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===43||t===47||t===45||t===95,tB=t=>t===9||t===10||t===12||t===13||t===32,eB=t=>{const e=Math.floor(t/4),n=t%4;return e*3+(n===2?1:n===3?2:0)},nB=t=>{const e=t.length;let n=0;return e>0&&t.charCodeAt(e-1)===61&&(n++,e>1&&t.charCodeAt(e-2)===61&&n++),Math.floor((e-n)*3/4)},aB=t=>{const e=t.length;let n=0,s=0,i=!1;for(let r=0;r<e;r++){let c=t.charCodeAt(r);if(c===37&&wA(t,r,e)&&(c=Sb(t.charCodeAt(r+1))*16+Sb(t.charCodeAt(r+2)),r+=2),!tB(c)){if
9490(c===61){s++;continue}if(!Zz(c)||s>0){i=!0;continue}n++}}return i||s>2||s>0&&(n+s)%4!==0||n%4===1?nB(t):eB(n)},sB=(t,e)=>{if(!t||typeof t!="string"||!t.startsWith("data:"))return 0;const n=t.indexOf(",");if(n<0)return 0;const s=t.slice(5,n),i=t.slice(n+1);if(/;base64/i.test(s))return e(i);let c=0;for(let p=0,g=i.length;p<g;p++){const _=i.charCodeAt(p);if(_===37&&wA(i,p,g))c+=1,p+=2;else if(_<128)c+=1;else if(_<2048)c+=2;else if(_>=55296&&_<=56319&&p+1<g){const f=i.charCodeAt(p+1);f>=56320&&f<=57343?(c+=4,p++):c+=3}else c+=3}return c};function oB(t){const e=typeof t=="string"?t.indexOf("#"):-1;return sB(e===-1?t:t.slice(0,e),aB)}const v1="1.20.0",wb=64*1024,iB={cache:"default",redirect:"follow",referrer:"about:client",referrerPolicy:"",mode:"cors",integrity:"",keepalive:!1,priority:"auto",window:null},{isFunction:bp}=X,rB=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,n)=>String.fromCharCode(parseInt(n,16))),Eb=t=>{if(!X.isString(t))return t;try{return decodeURIComponent(t)}catch{return t}},Ib=(t,...e)=>{try{return!!t(...e)}catch{return!1}},uB=t=>{const e=t.indexOf("://");let n=t;return e!==-1&&(n=n.slice(e+3)),n.includes("@")||n.includes(":")},lB=t=>{const e=X.global!==void 0&&X.global!==null?X.global:globalThis,{ReadableStream:n,TextEncoder:s}=e;t=X.merge.call({skipUndefined:!0},{Request:e.Request,Response:e.Response},t);const{fetch:i,Request:r,Response:c}=t,p=i?bp(i):typeof fetch=="function",g=bp(r),_=bp(c);if(!p)return!1;const f=p&&bp(n),h=p&&(typeof s=="function"?(A=>E=>A.encode(E))(new s):async A=>new Uint8Array(await new r(A).arrayBuffer())),v=g&&f&&Ib(()=>{let A=!1;const E=new r($n.origin,{body:new n,method:"POST",get duplex(){return A=!0,"half"}}),I=E.headers.has("Content-Type");return E.body!=null&&E.body.cancel(),A&&!I}),b=_&&f&&Ib(()=>X.isReadableStream(new c("").body)),S={stream:b&&(A=>A.body)};p&&["text","arrayBuffer","blob","formData","stream"].forEach(A=>{!S[A]&&(S[A]=(E,I)=>{let j=E&&E[A];if(j)return j.call(E);throw new St(`Response type '${A}' is not supported`,St.ERR_NOT_SUPPORT,I)})});const x=async A=>{if(A==null)return 0;if(X.isBlob(A))return A.size;if(X.isSpecCompliantForm(A))return(await new r($n.origin,{method:"POST",body:A}).arrayBuffer()).byteLength;if(X.isArrayBufferView(A)||X.isArrayBuffer(A))return A.byteLength;if(X.isURLSearchParams(A)&&(A=A+""),X.isString(A))return(await h(A)).byteLength},w=async(A,E)=>{const I=X.toFiniteNumber(A.getContentLength());return I??x(E)};return async A=>{let{url:E,method:I,data:j,signal:T,cancelToken:P,timeout:N,onDownloadProgress:D,onUploadProgress:F,responseType:B,headers:L,withCredentials:$="same-origin",fetchOptions:q,maxContentLength:Q,maxBodyLength:V,maxRedirects:U}=SA(A);const H=X.isNumber(Q)&&Q>-1,st=X.isNumber(V)&&V>-1,lt=W=>X.hasOwnProp(A,W)?A[W]:void 0;let M=i||fetch;B=B?(B+"").toLowerCase():"text";let gt=Xz([T,P&&P.toAbortSignal()],N),rt=null;const O=gt&&gt.unsubscribe&&(()=>{gt.unsubscribe()});let z,Y=null;const it=()=>new St("Request body larger than maxBodyLength limit",St.ERR_BAD_REQUEST,A,rt);try{let W;const ut=lt("auth");if(ut){const pt=X.getSafeProp(ut,"username")||"",Bt=X.getSafeProp(ut,"password")||"";W={username:pt,password:Bt}}if(uB(E)){const pt=new URL(E,$n.origin);if(!W&&(pt.username||pt.password)){const Bt=Eb(pt.username),ne=Eb(pt.password);W={username:Bt,password:ne}}(pt.username||pt.password)&&(pt.username="",pt.password="",E=pt.href)}if(W&&(L.delete("authorization"),L.set("Authorization","Basic "+btoa(rB((W.username||"")+":"+(W.password||""))))),H&&typeof E=="string"&&E.startsWith("data:")&&oB(E)>Q)throw new St("maxContentLength size of "+Q+" exceeded",St.ERR_BAD_RESPONSE,A,rt);if(st&&I!=="get"&&I!=="head"){const pt=await x(j);if(typeof pt=="number"&&isFinite(pt)&&(z=pt,pt>V))throw it()}const ht=st&&(X.isReadableStream(j)||X.isStream(j)),yt=(pt,Bt,ne)=>Ab(pt,wb,Xt=>{if(st&&Xt>V)throw Y=it();Bt&&Bt(Xt)},ne);if(v&&I!=="get"&&I!=="head"&&(F||ht)){if(z=z??await w(L,j),z!==0||ht){let pt=new r(E,{method:"POST",body:j,duplex:"half"}),Bt;if(X.isFormData(j)&&(Bt=pt.headers.get("content-type"))&&L.setContentType(Bt),pt.body){const[ne,Xt]=F&&vb(z,cg(yb(F)))||[];j=yt(pt.body,ne,Xt)}}}else if(ht&&!g&&f&&I!=="get"&&I!=="head")j=yt(j);else if(ht&&g&&!v&&I!=="get"&&I!=="head")throw new St("Stream request bodies are not supported by the current fetch implementation",St.ERR_NOT_SUPPORT,A,rt);X.isString($)||($=$?"include":"omit");
vendor: 5,021 bytes, lines 9490-9492
9490const ft=g&&"credentials"in r.prototype;if(X.isFormData(j)){const pt=L.getContentType();pt&&/^multipart\/form-data/i.test(pt)&&!/boundary=/i.test(pt)&&L.delete("content-type")}L.set("User-Agent","axios/"+v1,!1);const mt=q==null?q:Object.assign(Object.create(null),q);mt&&(delete mt.body,delete mt.headers,delete mt.method,delete mt.signal,delete mt.duplex,delete mt.credentials);const wt=Object.assign(Object.create(null),mt,{signal:gt,method:I.toUpperCase(),headers:dA(L.normalize()),body:j,duplex:"half",credentials:ft?$:void 0});g&&(X.forEach(iB,(pt,Bt)=>{wt[Bt]===void 0&&(wt[Bt]=pt)}),wt.signal===void 0&&(wt.signal=null),wt.body===void 0&&(wt.body=null)),U===0&&(wt.redirect="manual",mt&&(mt.redirect="manual")),rt=g&&new r(E,wt);let It=await(g?M(rt,mt):M(E,wt));const Pt=ia.from(It.headers);if(H){const pt=X.toFiniteNumber(Pt.getContentLength());if(pt!=null&&pt>Q)throw new St("maxContentLength size of "+Q+" exceeded",St.ERR_BAD_RESPONSE,A,rt)}const Nt=b&&(B==="stream"||B==="response");if(b&&It.body&&(D||H||Nt&&O)){const pt={};["status","statusText","headers"].forEach(ue=>{pt[ue]=It[ue]});const Bt=X.toFiniteNumber(Pt.getContentLength()),[ne,Xt]=D&&vb(Bt,cg(yb(D),!0))||[];let Ut=0;const Se=ue=>{if(H&&(Ut=ue,Ut>Q))throw new St("maxContentLength size of "+Q+" exceeded",St.ERR_BAD_RESPONSE,A,rt);ne&&ne(ue)};It=new c(Ab(It.body,wb,Se,()=>{Xt&&Xt(),O&&O()}),pt)}B=B||"text";let kt=await S[X.findKey(S,B)||"text"](It,A);if(H&&!b&&!Nt){let pt;if(kt!=null&&(typeof kt.byteLength=="number"?pt=kt.byteLength:typeof kt.size=="number"?pt=kt.size:typeof kt=="string"&&(pt=typeof s=="function"?new s().encode(kt).byteLength:kt.length)),typeof pt=="number"&&pt>Q)throw new St("maxContentLength size of "+Q+" exceeded",St.ERR_BAD_RESPONSE,A,rt)}return!Nt&&O&&O(),await new Promise((pt,Bt)=>{xA(pt,Bt,{data:kt,headers:ia.from(It.headers),status:It.status,statusText:It.statusText,config:A,request:rt})})}catch(W){if(O&&O(),gt&&gt.aborted&&gt.reason instanceof St){const ut=gt.reason;throw ut.config=A,rt&&(ut.request=rt),W!==ut&&Object.defineProperty(ut,"cause",{__proto__:null,value:W,writable:!0,enumerable:!1,configurable:!0}),ut}if(Y)throw rt&&!Y.request&&(Y.request=rt),Y;if(W instanceof St)throw rt&&!W.request&&(W.request=rt),W;if(W&&W.name==="TypeError"&&/Load failed|fetch/i.test(W.message)){const ut=new St("Network Error",St.ERR_NETWORK,A,rt,W&&W.response);throw Object.defineProperty(ut,"cause",{__proto__:null,value:W.cause||W,writable:!0,enumerable:!1,configurable:!0}),ut}throw St.from(W,W&&W.code,A,rt,W&&W.response)}}},cB=new Map,EA=t=>{let e=t&&t.env||{};const{fetch:n,Request:s,Response:i}=e,r=[s,i,n];let c=r.length,p=c,g,_,f=cB;for(;p--;)g=r[p],_=f.get(g),_===void 0&&f.set(g,_=p?new Map:lB(e)),f=_;return _};EA();const y1={http:fz,xhr:Wz,fetch:{get:EA}};X.forEach(y1,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{__proto__:null,value:e})}catch{}Object.defineProperty(t,"adapterName",{__proto__:null,value:e})}});const Nb=t=>`- ${t}`,dB=t=>X.isFunction(t)||t===null||t===!1;function pB(t,e){t=X.isArray(t)?t:[t];const{length:n}=t;let s,i;const r={};for(let c=0;c<n;c++){s=t[c];let p;if(i=s,!dB(s)&&(i=y1[(p=String(s)).toLowerCase()],i===void 0))throw new St(`Unknown adapter '${p}'`);if(i&&(X.isFunction(i)||(i=i.get(e))))break;r[p||"#"+c]=i}if(!i){const c=Object.entries(r).map(([g,_])=>`adapter ${g} `+(_===!1?"is not supported by the environment":"is not available in the build"));let p=n?c.length>1?`since :
9491`+c.map(Nb).join(`
9492`):" "+Nb(c[0]):"as no adapter specified";throw new St("There is no suitable adapter to dispatch the request "+p,St.ERR_NOT_SUPPORT)}return i}const IA={getAdapter:pB,adapters:y1};function Af(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new jc(null,t)}function Cf(t){const e=X.toSafeFlatObject(t);return Af(e),e.headers=ia.from(X.getSafeProp(e,"headers")),e.data=bf.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),IA.getAdapter(e.adapter||Tc.adapter,e)(e).then(function(i){Af(e),e.response=i;try{i.data=bf.call(e,e.transformResponse,i)}finally{delete e.response}return i.headers=ia.from(i.headers),i},function(i){if(!bA(i)&&(Af(e),i&&i.response)){e.response=i.response;try{i.response.data=bf.call(e,e.transformResponse,i.response)}finally{delete e.response}i.response.headers=ia.from(i.response.headers)}return Promise.reject(i)})}const Ug={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{Ug[t]=function(s){return typeof s===t||"a"+(e<1?"n ":" ")+t}});const Rb={};Ug.transitional=function(e,n,s){function i(r,c){return"[Axios v"+v1+"] Transitional option '"+r+"'"+c+(s?". "+s:"")}return(r,c,p)=>{if(e===!1)throw new St(i(c," has been removed"+(n?" in "+n:"")),St.ERR_DEPRECATED);return n&&!Rb[c]&&(Rb[c]=!0,console.warn(i(c," has been deprecated since v"+n+" and will be removed in the near future"))),e?e(r,c,p):!0}};Ug.spelling=function(e){return(n,s)=>(console.warn(`${s} is likely a misspelling of ${e}
9492`),!0)};function gB(t,e,n){if(typeof t!="object"||t===null)throw new St("options must be an object",St.ERR_BAD_OPTION_VALUE);const s=Object.keys(t);let i=s.length;for(;i-- >0;){const r=s[i],c=Object.prototype.hasOwnProperty.call(e,r)?e[r]:void 0;if(c){const p=t[r],g=p===void 0||c(p,r,t);if(g!==!0)throw new St("option "+r+" must be "+g,St.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new St("Unknown option "+r,St.ERR_BAD_OPTION)}}const Fp={assertOptions:gB,validators:Ug},na=Fp.validators;let $i=class{constructor(e){this.defaults=e||{},this.interceptors={request:new fb,response:new fb}}async request(e,n){try{return await this._request(e,n)}catch(s){if(s instanceof Error)try{let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const r=i.stack;let c="";if(typeof r=="string"){const p=r.indexOf(`
9493`);c=p===-1?"":r.slice(p+1)}if(!s.stack)s.stack=c;else if(c){const p=c.indexOf(`
9494`),g=p===-1?-1:c.indexOf(`
9495`,p+1),_=g===-1?"":c.slice(g+1);String(s.stack).endsWith(_)||(s.stack+=`
9496`+c)}}catch{}throw s}}_request(e,n){typeof e=="string"?(n=n||{},n.url=e):n=e||{},n=Xi(this.defaults,n);const{transitional:s,paramsSerializer:i,headers:r}=n;s!==void 0&&Fp.assertOptions(s,{silentJSONParsing:na.transitional(na.boolean),forcedJSONParsing:na.transitional(na.boolean),clarifyTimeoutError:na.transitional(na.boolean),legacyInterceptorReqResOrdering:na.transitional(na.boolean),advertiseZstdAcceptEncoding:na.transitional(na.boolean),validateStatusUndefinedResolves:na.transitional(na.boolean)},!1),i!=null&&(X.isFunction(i)?n.paramsSerializer={serialize:i}:Fp.assertOptions(i,{encode:na.function,serialize:na.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Fp.assertOptions(n,{baseUrl:na.spelling("baseURL"),withXsrfToken:na.spelling("withXSRFToken")},!0),n.method=(X.getSafeProp(n,"method")||X.getSafeProp(this.defaults,"method")||"get").toLowerCase();let c=r&&X.merge(r.common,r[n.method]);r&&X.forEach(yA.concat("common"),S=>{delete r[S]}),n.headers=ia.concat(c,r);const p=[];let g=!0;this.interceptors.request.forEach(function(x){if(typeof x.runWhen=="function"&&x.runWhen(n)===!1)return;g=g&&x.synchronous;const w=n.transitional||f1;w&&w.legacyInterceptorReqResOrdering?p.unshift(x.fulfilled,x.rejected):p.push(x.fulfilled,x.rejected)});const _=[];this.interceptors.response.forEach(function(x){_.push(x.fulfilled,x.rejected)});let f,h=0,v;if(!g){const S=[Cf.bind(this),void 0];for(S.unshift(...p),S.push(..._),v=S.length,f=Promise.resolve(n);h<v;)f=f.then(S[h++],S[h++]);return f}v=p.length;let b=n;for(;h<v;){const S=p[h++],x=p[h++];try{b=S?S(b):b}catch(w){if(!x){f=Promise.reject(w);break}try{const A=x.call(this,w);X.isThenable(A)&&(f=Promise.resolve(A).then(()=>Cf.call(this,b)))}catch(A){f=Promise.reject(A)}break}}if(!f)try{f=Cf.call(this,b)}catch(S){f=Promise.reject(S)}for(h=0,v=_.length;h<v;)f=f.then(_[h++],_[h++]);return f}getUri(e){e=Xi(this.defaults,e);const n=CA(e.baseURL,e.url,e.allowAbsoluteUrls,e);return _A(n,e.params,e.paramsSerializer)}};X.forEach(["delete","get","head","options"],function(e){$i.prototype[e]=function(n,s){return this.request(Xi(s||{},{method:e,url:n,data:s&&X.hasOwnProp(s,"data")?s.data:void 0}))}});X.forEach(["post","put","patch","query"],function(e){function n(s){return function(r,c,p){return this.request(Xi(p||{},{method:e,headers:s?{"Content-Type":"multipart/form-data"}:{},url:r,data:c}))}}$i.prototype[e]=n(),e!=="query"&&($i.prototype[e+"Form"]=n(!0))});let mB=class NA{constructor(e){if(typeof e!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(r){n=r});const s=this;this.promise.then(i=>{if(!s._listeners)return;let r=s._listeners.length;for(;r-- >0;)s._listeners[r](i);s._listeners=null}),this.promise.then=i=>{let r;const c=new Promise(p=>{s.subscribe(p),r=p}).then(i);return c.cancel=function(){s.unsubscribe(r)},c},e(function(r,c,p){s.reason||(s.reason=new jc(r,c,p),n(s.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const e=new AbortController,n=s=>{e.abort(s)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new NA(function(i){e=i}),cancel:e}}};function hB(t){return function(n){return t.apply(null,n)}}function _B(t){return X.isObject(t)&&t.isAxiosError===!0}const Up={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,Re
9496setContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,ContentTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,UnprocessableContent:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerReturnsAnUnknownError:520,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Up).forEach(([t,e])=>{Up[e]===void 0&&(Up[e]=t)});function RA(t){const e=new $i(t),n=tA($i.prototype.request,e);return X.extend(n,$i.prototype,e,{allOwnKeys:!0}),X.extend(n,e,null,{allOwnKeys:!0}),n.create=function(i){return RA(Xi(t,i))},n}const fn=RA(Tc);fn.Axios=$i;fn.CanceledError=jc;fn.CancelToken=mB;fn.isCancel=bA;fn.VERSION=v1;fn.toFormData=Fg;fn.AxiosError=St;fn.Cancel=fn.CanceledError;fn.all=function(e){return Promise.all(e)};fn.spread=hB;fn.isAxiosError=_B;fn.mergeConfig=Xi;fn.AxiosHeaders=ia;fn.formToJSON=t=>vA(X.isHTMLForm(t)?new FormData(t):t);fn.getAdapter=IA.getAdapter;fn.HttpStatusCode=Up;fn.default=fn;const{Axios:Yq,AxiosError:Qq,CanceledError:Jq,isCancel:Zq,CancelToken:tK,VERSION:eK,all:nK,Cancel:aK,isAxiosError:sK,spread:oK,toFormData:iK,AxiosHeaders:rK,HttpStatusCode:uK,formToJSON:lK,getAdapter:cK,mergeConfig:dK,create:pK}=fn;function fB(){const{t,i18n:e}=De(),n="core.forTheCommunity",[s,i]=y.useState([]),[r,c]=y.useState(null);y.useEffect(()=>{e.language==="ja"&&r===null&&fn.get("https://open.er-api.com/v6/latest/VND").then(g=>{g.data?.rates?.JPY&&c(g.data.rates.JPY)}).catch(g=>console.error("Failed to fetch JPY rate",g))},[e.language,r]);const p=g=>typeof g!="string"?"":g.startsWith("http")?g:g.replace(/^\/assets\//,"/");return y.useEffect(()=>{(async()=>{const _=e.language||"en";try{const f=await ug(_),h=f.filter(v=>v.type_post==="charity_story"||v.category==="charity_story"||v.category==="charity"||v.type_post==="charity").map(v=>({id:v.id,date:v.date||v.start_date||v.start_date_string||"",title:v.title,image:p(v.imageUrl||v.cover_image?.url||v.first_image?.url||""),slug:v.url_seo||v.id.toString()}));if(h.length===0&&_==="ja"){const b=(await ug("en")).filter(x=>x.type_post==="charity_story"||x.category==="charity_story"||x.category==="charity"||x.type_post==="charity").map(x=>x.id),S=f.filter(x=>b.includes(x.id)).map(x=>({id:x.id,date:x.date,title:x.title,image:p(x.imageUrl||""),slug:x.id.toString()}));i(S.length>0?S:h)}else i(h)}catch(f){console.error("Failed to load charity stories",f)}})()},[e.language]),e.language,l.jsx("div",{className:"for-community-page van-hoa-page",children:l.jsxs("div",{className:"main",children:[l.jsxs("div",{className:"village-react-top",children:[l.jsx("h1",{className:"village-title",children:t(`${n}.storiesTitle`)}),l.jsx("div",{className:"village-react-text",dangerouslySetInnerHTML:{__html:t(`${n}.description`)}})]}),l.jsx("div",{className:"stats-container",children:l.jsx("div",{className:"container max-w-[1200px] mx-auto px-4"})}),l.jsx("div",{className:"featured-statement",children:l.jsx("div",{className:"featured-text",dangerouslySetInnerHTML:{__html:t(`${n}.description2`)}})}),s&&s.length>0&&l.jsx("div",{className:"stories-section",children:l.jsx("div",{className:"container max-w-[1600px] mx-auto px-6 md:px-12 lg:px-24 2xl:px-32",children:l.jsx("div",{className:"stories-grid",children:s.map(g=>l.jsxs(Wt,{to:`/news/${g.id}`,className:"story-card",children:[l.jsx("img",{src:g.image,alt:g.title,className:"story-image"}),l.jsxs("div",{className:"story-info",children:[l.jsx("p",{className:"story-title",children:g.title}),g.date&&l.jsx("div",{className:"story-date",children:g.date})]})]},g.id))})})}),l.jsx("div",{className:"spacer",style:{marginBottom:"120px"}})]})})}function kB(){const{t}=De(),e=new Date().getUTCFullYear(),n=[{title:t("sidebar.aboutUs"),links:[{label:t("sidebar.companyInformation"),to:"/about/company-information"},{label:t("sidebar.ourExpert"),to:"/about/our-expert"},{label:t("sidebar.companyCulture"),to:"/about/company-culture"},{label:t("sidebar.forTheCommunity"),to:"/about/for-the-community"}]},{title:t("sidebar.coreValues"),links:[{label:t("sidebar.coreValueTechnology"),to:"/core-values/ai-capabilities"},{label:t("sidebar.coreValueSolutions"),to:"/core-values/ai-solutions"},{label:t("sidebar.coreValueServices"),to:"/core-values/fintech"}
9496,{label:t("sidebar.aiEnhanced"),to:"/core-values/ai-driven-development"}]},{title:t("sidebar.products"),links:[{label:"Alternative Data AI Scoring",subLinks:[{label:"Atobar AI",to:"/products/atobar-ai"},{label:"AD Housing",to:"/products/ad-housing"},{label:"AD Passport",to:"/products/ad-passport"},{label:"Live now, Pay later",to:"/products/live-now-pay-later"}]},{label:"AppOS",to:"/products/appos"},{label:"CVAgent",to:"/products/cv-agent"},{label:"BrSE.ai",href:"https://brse.ai/"},{label:"GenSlide.jp",href:"https://genslide.jp/"}]},{title:t("sidebar.helpCenter"),links:[{label:t("sidebar.privacyPolicy"),to:"/privacy-policy"},{label:t("sidebar.contactUs"),to:"/contact"}]}];return l.jsxs("footer",{children:[l.jsx("div",{className:"mx-auto max-w-7xl px-6 pb-8 pt-16 lg:px-8",children:l.jsx("div",{className:"grid grid-cols-1 gap-8 md:grid-cols-4",children:n.map((s,i)=>l.jsxs("div",{className:"footer-column",children:[l.jsx("h3",{style:{fontSize:"14px",fontWeight:"400",marginBottom:"10px",color:"#aaaaaa"},children:s.title}),l.jsx("ul",{className:"space-y-3",style:{listStyle:"none"},children:s.links.map((r,c)=>l.jsxs("li",{children:[r.href?l.jsx("a",{href:r.href,target:"_blank",rel:"noopener noreferrer",style:{fontSize:"14px",fontWeight:"400"},children:r.label}):r.to?l.jsx(Wt,{to:r.to,style:{fontSize:"14px",fontWeight:"400"},children:r.label}):l.jsx("div",{style:{fontSize:"14px",fontWeight:"500",color:"#333",marginBottom:"4px"},children:r.label}),r.subLinks&&l.jsx("ul",{style:{listStyle:"none",paddingLeft:"12px",marginTop:"4px",borderLeft:"1px solid #eee"},className:"space-y-2",children:r.subLinks.map((p,g)=>l.jsx("li",{children:l.jsx(Wt,{to:p.to,style:{fontSize:"13px",fontWeight:"400",color:"#666"},children:p.label})},g))})]},c))})]},i))})}),l.jsx("div",{className:"mx-auto max-w-7xl px-6 pb-8 pt-16 lg:px-8",children:l.jsxs("div",{className:"md:flex md:items-center md:justify-between",children:[l.jsxs("div",{className:"flex space-x-6 md:order-1",children:[l.jsxs("a",{href:"https://www.youtube.com/@reactplusjsc9462",className:"text-slate-400 hover:text-slate-500",children:[l.jsx("span",{className:"sr-only",children:"YouTube"}),l.jsx("svg",{className:"h-5 w-5",fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:l.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M19.812 5.418c.861.23 1.538.907 1.768 1.768C21.998 8.746 22 12 22 12s0 3.255-.418 4.814a2.504 2.504 0 0 1-1.768 1.768c-1.56.419-7.814.419-7.814.419s-6.255 0-7.814-.419a2.505 2.505 0 0 1-1.768-1.768C2 15.255 2 12 2 12s0-3.255.417-4.814a2.507 2.507 0 0 1 1.768-1.768C5.744 5 11.998 5 11.998 5s6.255 0 7.814.418ZM15.194 12 10 15V9l5.194 3Z"})})]}),l.jsxs("a",{href:"https://www.facebook.com/reactplus.jsc",className:"text-slate-400 hover:text-slate-500",children:[l.jsx("span",{className:"sr-only",children:"Facebook"}),l.jsx("svg",{className:"h-5 w-5",fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:l.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987
9496h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z"})})]})]}),l.jsxs("p",{className:"mt-8 text-xs leading-5 text-slate-500 md:order-2 md:mt-0",children:["© ",e," ",t("footer.copyright")," ",t("footer.allRights")]})]})})]})}const an=t=>{const e=y.useRef(t);return e.current=t,y.useCallback((...s)=>e.current?.(...s),[])};function us(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}const Tb=us()?y.useLayoutEffect:y.useEffect,sa=(t,e)=>{const n=y.useRef(!0);Tb(()=>t(n.current),e),Tb(()=>(n.current=!1,()=>{n.current=!0}),[])},vB=(t,e)=>{sa(n=>{if(!n)return t()},e)},yB=t=>{const e=y.useRef(!1),[n,s]=y.useState(t);y.useEffect(()=>(e.current=!1,()=>{e.current=!0}),[]);function i(r,c){c&&e.current||s(r)}return[n,i]};function lu(t,e){const[n,s]=y.useState(t),i=e!==void 0?e:n;return sa(r=>{r||s(e)},[e]),[i,s]}let TA=t=>+setTimeout(t,16),jA=t=>clearTimeout(t);typeof window<"u"&&"requestAnimationFrame"in window&&(TA=t=>window.requestAnimationFrame(t),jA=t=>window.cancelAnimationFrame(t));let jb=0;const b1=new Map;function PA(t){b1.delete(t)}const Va=(t,e=1)=>{jb+=1;const n=jb;function s(i){if(i===0)PA(n),t();else{const r=TA(()=>{s(i-1)});b1.set(n,r)}}return s(e),n};Va.cancel=t=>{const e=b1.get(t);return PA(t),jA(e)};function bB(){return{..._8}.useId}let Pb=0;const Mb=bB(),x1=Mb?(function(e){const n=Mb();return e||n}):(function(e){const[n,s]=y.useState("ssr-id");return y.useEffect(()=>{const i=Pb;Pb+=1,s(`rc_unique_${i}`)},[]),e||n});function Vg(t,e,n){const s=y.useRef({});return(!("value"in s.current)||n(s.current.condition,e))&&(s.current.value=t(),s.current.condition=e),s.current.value}function xB(t){const[,e]=y.useReducer(r=>r+1,0),n=y.useRef(t),s=an(()=>n.current),i=an(r=>{n.current=typeof r=="function"?r(n.current):r,e()});return[s,i]}var Sf={exports:{}},$e={};var Lb;function AB(){if(Lb)return $e;Lb=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),r=Symbol.for("react.consumer"),c=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),_=Symbol.for("react.suspense_list"),f=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),v=Symbol.for("react.view_transition"),b=Symbol.for("react.client.reference");function S(x){if(typeof x=="object"&&x!==null){var w=x.$$typeof;switch(w){case t:switch(x=x.type,x){case n:case i:case s:case g:case _:case v:return x;default:switch(x=x&&x.$$typeof,x){case c:case p:case h:case f:return x;case r:return x;default:return w}}case e:return w}}}return $e.ContextConsumer=r,$e.ContextProvider=c,$e.Element=t,$e.ForwardRef=p,$e.Fragment=n,$e.Lazy=h,$e.Memo=f,$e.Portal=e,$e.Profiler=i,$e.StrictMode=s,$e.Suspense=g,$e.SuspenseList=_,$e.isContextConsumer=function(x){return S(x)===r},$e.isContextProvider=function(x){return S(x)===c},$e.isElement=function(x){return typeof x=="object"&&x!==null&&x.$$typeof===t},$e.isForwardRef=function(x){return S(x)===p},$e.isFragment=function(x){return S(x)===n},$e.isLazy=function(x){return S(x)===h},$e.isMemo=function(x){return S(x)===f},$e.isPortal=function(x){return S(x)===e},$e.isProfiler=function(x){return S(x)===i},$e.isStrictMode=function(x){return S(x)===s},$e.isSuspense=function(x){return S(x)===g},$e.isSuspenseList=function(x){return S(x)===_},$e.isValidElementType=function(x){return typeof x=="string"||typeof x=="function"||x===n||x===i||x===s||x===g||x===_||x===v||typeof x=="object"&&x!==null&&(x.$$typeof===h||x.$$typeof===f||x.$$typeof===c||x.$$typeof===r||x.$$typeof===p||x.$$typeof===b||x.getModuleId!==void 0)},$e.typeOf=S,$e}var Ob;function CB(){return Ob||(Ob=1,Sf.exports=AB()),Sf.exports}var wf=CB();const SB=Symbol.for("react.element"),wB=Symbol.for("react.transitional.element"),EB=Symbol.for("react.fragment");function MA(t){return t&&typeof t=="object"&&(t.$$typeof===SB||t.$$typeof===wB)&&t.type===EB}const IB=Number(y.version.split(".")[0]),NB=(t,e)=>{typeof t=="function"?t(e):typeof t=="object"&&t&&"current"in t&&(t.current=e)},Pc=(...t)=>{const e=t.filter(Boolean);return e.length<=1?e[0]:n=>{t.forEach(s=>{NB(s,n)})}},Mc=(...t)=>Vg(()=>Pc(...t),t,(e,n)=>e.length!==n.length||e.every((s,i)=>s!==n[i])),Lc=t=>{if(!t)return!1;if(A1(t)&&IB>=19)return!0;const e=wf.isMemo(t)?t.type.type:t.type;return!(typeof e=="function"&&!e.prototype?.render&&e.$$typeof!==wf.ForwardRef||typeof t=="function"&&!t.prototype?.render&&t.$$typeof!==wf.ForwardRef)};function A1(t){return y.isValidElement(t)&&!MA(t)}const RB=t=>A1(t)&&Lc(t),Eu=t=>
9496{if(t&&A1(t)){const e=t;return e.props.propertyIsEnumerable("ref")?e.props.ref:e.ref}return null};function TB(t,e){if(!t)return!1;if(t.contains)return t.contains(e);let n=e;for(;n;){if(n===t)return!0;n=n.parentNode}return!1}const Db="data-rc-order",zb="data-rc-priority",jB="rc-util-key",Xk=new Map;function LA({mark:t}={}){return t?t.startsWith("data-")?t:`data-${t}`:jB}function qg(t){return t.attachTo?t.attachTo:document.querySelector("head")||document.body}function PB(t){return t==="queue"?"prependQueue":t?"prepend":"append"}function C1(t){return Array.from((Xk.get(t)||t).children).filter(e=>e.tagName==="STYLE")}function OA(t,e={}){if(!us())return null;const{csp:n,prepend:s,priority:i=0}=e,r=PB(s),c=r==="prependQueue",p=document.createElement("style");p.setAttribute(Db,r),c&&i&&p.setAttribute(zb,`${i}`),n?.nonce&&(p.nonce=n?.nonce),p.innerHTML=t;const g=qg(e),{firstChild:_}=g;if(s){if(c){const f=(e.styles||C1(g)).filter(h=>{if(!["prepend","prependQueue"].includes(h.getAttribute(Db)))return!1;const v=Number(h.getAttribute(zb)||0);return i>=v});if(f.length)return g.insertBefore(p,f[f.length-1].nextSibling),p}g.insertBefore(p,_)}else g.appendChild(p);return p}function DA(t,e={}){let{styles:n}=e;return n||=C1(qg(e)),n.find(s=>s.getAttribute(LA(e))===t)}function mc(t,e={}){const n=DA(t,e);n&&qg(e).removeChild(n)}function MB(t,e){const n=Xk.get(t);if(!n||!TB(document,n)){const s=OA("",e),{parentNode:i}=s;Xk.set(t,i),t.removeChild(s)}}function Gi(t,e,n={}){const s=qg(n),i=C1(s),r={...n,styles:i};MB(s,r);const c=DA(e,r);if(c)return r.csp?.nonce&&c.nonce!==r.csp?.nonce&&(c.nonce=r.csp?.nonce),c.innerHTML!==t&&(c.innerHTML=t),c;const p=OA(t,r);return p.setAttribute(LA(r),e),p}function _u(t){return t instanceof HTMLElement||t instanceof SVGElement}function S1(t){return t&&typeof t=="object"&&_u(t.nativeElement)?t.nativeElement:_u(t)?t:null}const zA=(t=>{if(!t)return!1;if(t instanceof Element){if(t.offsetParent)return!0;if(t.getBBox){const{width:e,height:n}=t.getBBox();if(e||n)return!0}if(t.getBoundingClientRect){const{width:e,height:n}=t.getBoundingClientRect();if(e||n)return!0}}return!1});function Bb(t,e=!1){if(zA(t)){const n=t.nodeName.toLowerCase(),s=["input","select","textarea","button"].includes(n)||t.isContentEditable||n==="a"&&!!t.getAttribute("href"),i=t.getAttribute("tabindex"),r=Number(i);let c=null;return i&&!Number.isNaN(r)?c=r:s&&c===null&&(c=0),s&&t.disabled&&(c=null),c!==null&&(c>=0||e&&c<0)}return!1}function LB(t,e=!1){const n=[...t.querySelectorAll("*")].filter(s=>Bb(s,e));return Bb(t,e)&&n.unshift(t),n}function BA(t){return t?.getRootNode?.()}function OB(t){return BA(t)instanceof ShadowRoot}function Yk(t){return OB(t)?BA(t):null}const ys={TAB:9,ENTER:13,ESC:27,SPACE:32,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40};function DB(t){const e=`rc-scrollbar-measure-${Math.random().toString(36).substring(7)}`,n=document.createElement("div");n.id=e;const s=n.style;s.position="absolute",s.left="0",s.top="0",s.width="100px",s.height="100px",s.overflow="scroll";let i,r;if(t){const g=getComputedStyle(t);s.scrollbarColor=g.scrollbarColor,s.scrollbarWidth=g.scrollbarWidth;const _=getComputedStyle(t,"::-webkit-scrollbar"),f=parseInt(_.width,10),h=parseInt(_.height,10);try{const v=f?`width: ${_.width};`:"",b=h?`height: ${_.height};`:"";Gi(`
9497#${e}::-webkit-scrollbar {
9498${v}
9499${b}
9500}`,e)}catch(v){console.error(v),i=f,r=h}}document.body.appendChild(n);const c=t&&i&&!Number.isNaN(i)?i:n.offsetWidth-n.clientWidth,p=t&&r&&!Number.isNaN(r)?r:n.offsetHeight-n.clientHeight;return document.body.removeChild(n),mc(e),{width:c,height:p}}function zB(t){return typeof document>"u"||!t||!(t instanceof Element)?{width:0,height:0}:DB(t)}let Qk={};const BB=t=>{};function $B(t,e){}function GB(t,e){}function HB(){Qk={}}function $A(t,e,n){!e&&!Qk[n]&&(t(!1,n),Qk[n]=!0)}function Ia(t,e){$A($B,t,e)}function FB(t,e){$A(GB,t,e)}Ia.preMessage=BB;Ia.resetWarned=HB;Ia.noteOnce=FB;function hc(t,e,n=!1){const s=new Set;function i(r,c,p=1){const g=s.has(r);if(Ia(!g,"Warning: There may be circular references"),g)return!1;if(r===c)return!0;if(n&&p>1)return!1;s.add(r);const _=p+1;if(Array.isArray(r)){if(!Array.isArray(c)||r.length!==c.length)return!1;for(let f=0;f<r.length;f++)if(!i(r[f],c[f],_))return!1;return!0}if(r&&c&&typeof r=="object"&&typeof c=="object"){const f=Object.keys(r);return f.length!==Object.keys(c).length?!1:f.every(h=>i(r[h],c[h],_))}return!1}return i(t,e)}function UB(t){return t!=null}function Qo(t){return UB(t)&&t!==!1&&t!==""}var Dl={exports:{}},$b;function VB(){if($b)return Dl.exports;$b=1,Dl.exports=s,Dl.exports.isMobile=s,Dl.exports.default=s;const t=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|redmi|series[46]0|samsungbrowser.*mobile|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,e=/CrOS/,n=/android|ipad|playbook|silk/i;function s(i){i||(i={});let r=i.ua;if(!r&&typeof navigator<"u"&&(r=navigator.userAgent),r&&r.headers&&typeof r.headers["user-agent"]=="string"&&(r=r.headers["user-agent"]),typeof r!="string")return!1;let c=t.test(r)&&!e.test(r)||!!i.tablet&&n.test(r);return!c&&i.tablet&&i.featureDetect&&navigator&&navigator.maxTouchPoints>1&&r.indexOf("Macintosh")!==-1&&r.indexOf("Safari")!==-1&&(c=!0),c}return Dl.exports}var qB=VB();const KB=Cg(qB);let Ef;const WB=()=>(typeof Ef>"u"&&(Ef=KB()),Ef);function Kg(t,e){const n=Object.assign({},t);return Array.isArray(e)&&e.forEach(s=>{delete n[s]}),n}function Yi(t,e={}){let n=[];return Gt.Children.forEach(t,s=>{s==null&&!e.keepEmpty||(Array.isArray(s)?n=n.concat(Yi(s)):MA(s)&&s.props?n=n.concat(Yi(s.props.children,e)):n.push(s))}),n}function is(t,e){let n=t;for(let s=0;s<e.length;s+=1){if(n==null)return;n=n[e[s]]}return n}function GA(t,e,n,s){if(!e.length)return n;const[i,...r]=e;let c;return!t&&typeof i=="number"?c=[]:Array.isArray(t)?c=[...t]:c={...t},s&&n===void 0&&r.length===1?delete c[i][r[0]]:c[i]=GA(c[i],r,n,s),c}function Ha(t,e,n,s=!1){return e.length&&s&&n===void 0&&!is(t,e.slice(0,-1))?t:GA(t,e,n,s)}function XB(t){return typeof t=="object"&&t!==null&&Object.getPrototypeOf(t)===Object.prototype}function Gb(t){return Array.isArray(t)?[]:{}}const YB=typeof Reflect>"u"?Object.keys:Reflect.ownKeys;function QB(t,e={}){const{prepareArray:n}=e,s=n||(()=>[]);let i=Gb(t[0]);return t.forEach(r=>{function c(p,g){const _=new Set(g),f=is(r,p),h=Array.isArray(f);if(h||XB(f)){if(!_.has(f)){_.add(f);const v=is(i,p);h?i=Ha(i,p,s(v,f)):(!v||typeof v!="object")&&(i=Ha(i,p,Gb(f))),YB(f).forEach(b=>{Object.getOwnPropertyDescriptor(f,b).enumerable&&c([...p,b],_)})}}else i=Ha(i,p,f)}c([])}),i}function su(...t){return QB(t)}const JB=y.createContext({}),Jk=y.createContext(null);function ZB({children:t,onBatchResize:e}){const n=y.useRef(0),s=y.useRef([]),i=y.useContext(Jk),r=y.useCallback((c,p,g)=>{n.current+=1;const _=n.current;s.current.push({size:c,element:p,data:g}),Promise.resolve().then(()=>{_===n.current&&(e?.(s.current),s.current=[])}),i?.(c,p,g)},[e,i]);return y.createElement(Jk.Provider,{value:r},t)}const Zo=new Map;function t$(t){t.forEach(e=>{const{target:n}=e;Zo.get(n)?.forEach(s=>s(n))})}let If;function HA(){return If||(If=new ResizeObserver(t$)),If}function e$(t,e){Zo.has(t)||(Zo.set(t,new Set),HA().observe(t)),Zo.get(t).add(e)}function n$(t,e){Zo.has(t)&&(Zo.get(t).delete(e),Zo.get(t).size||(HA().unobserve(t),Zo.delete(t)))}function FA(t,e,n,s){const i=y.useRef({width:-1,height:-1,offsetWidth:-1,offsetHeight:-1}),r=an(g=>{const{width:_,height:f}=g.getBoundingClientRect(),{offsetWidth:h,offsetHeight:v}=g,b=Math.floor(_),S=Math.floor(f);if(i.current.width!==b||i.current.height!==S||i.current.offsetWidth!==h||i.current.offsetHeight!==v){const x={width:b,height:S,offsetWidth:h,offsetHeight:v};i.current=x;const w=h===Math.round(_)?_:h,A=v===Math.round(f)?f:v,E={...x,offsetWidth:w,offsetHeight:A};s?.(E,g),Promise.resolve().then(()=>{n?.(E,g)})}}),c=typeof e=="function",p=y.useRef(0);y.useEffect(()=>{const g=c?e():e;return g&&t?e$(g,r):t&&c&&(p.current+=1),()=>{g&&n$(g,r)}},[t,c?p.current:e])}function a$(t,e){const{children:n,disabled:s,onResize:i,data:r}=t,c=y.useRef(null),p=y.useContext(Jk),g=typeof n=="function",_=g?n(c):n,f=!g&&y.isValidElement(_)&&Lc(_),h=f?Eu(_):null,v=Mc(h,c),b=()=>S1(c.current);return y.useImperativeHandle(e,()=>b()),FA(!s,b,i,(S,x)=>{p?.(S,x,r)}),f?y.cloneElement(_,{ref:v}):_}const s$=y.forwardRef(a$);function Zk(){return Zk=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},Zk.apply(this,arguments)}const o$="rc-observer-key";function i$(t,e){const{children:n}=t;return(typeof n=="function"?[n]:Yi(n)).map((i,r)=>{const c=i?.key||`${o$}-${r}`;return y.createElement(s$,Zk({},t,{key:c,ref:r===0?e:void 0}),i)})}const Hi=y.forwardRef(i$);Hi.Collection=ZB;function t0(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,s=Array(e);n<e;n++)s[n]=t[n];return s}function r$(t){if(Array.isArray(t))return t0(t)}function u$(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function UA(t,e){if(t){if(typeof t=="string")return t0(t,e);var n={}.toString.call(t).slice(8,-1);return n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set"?Array.from(t):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t0(t,e):void 0}}function l$(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
9501In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function e0(t){return r$(t)||u$(t)||UA(t)||l$()}const Hb="ant",w1="anticon",c$=["outlined","borderless","filled","underlined"],d$=(t,e)=>e||(t?`${Hb}-${t}`:Hb),Jn=y.createContext({getPrefixCls:d$,iconPrefixCls:w1}),{Consumer:gK}=Jn,Fb={};function Oc(t){const e=y.useContext(Jn),{getPrefixCls:n,direction:s,getPopupContainer:i,renderEmpty:r}=e,c=e[t];return{classNames:Fb,styles:Fb,...c,getPrefixCls:n,direction:s,getPopupContainer:i,renderEmpty:r}}function _c(t){for(var e=0,n,s=0,i=t.length;i>=4;++s,i-=4)n=t.charCodeAt(s)&255|(t.charCodeAt(++s)&255)<<8|(t.charCodeAt(++s)&255)<<16|(t.charCodeAt(++s)&255)<<24,n=(n&65535)*1540483477+((n>>>16)*59797<<16),n^=n>>>24,e=(n&65535)*1540483477+((n>>>16)*59797<<16)^(e&65535)*1540483477+((e>>>16)*59797<<16);switch(i){case 3:e^=(t.charCodeAt(s+2)&255)<<16;case 2:e^=(t.charCodeAt(s+1)&255)<<8;case 1:e^=t.charCodeAt(s)&255,e=(e&65535)*1540483477+((e>>>16)*59797<<16)}return e^=e>>>13,e=(e&65535)*1540483477+((e>>>16)*59797<<16),((e^e>>>15)>>>0).toString(36)}const p$="%";function n0(t){return t.join(p$)}let Ub=0;class g${instanceId;constructor(e){this.instanceId=e}cache=new Map;updateTimes=new Map;extracted=new Set;get(e){return this.opGet(n0(e))}opGet(e){return this.cache.get(e)||null}update(e,n){return this.opUpdate(n0(e),n)}opUpdate(e,n){const s=this.cache.get(e),i=n(s);i===null?(this.cache.delete(e),this.updateTimes.delete(e)):(this.cache.set(e,i),this.updateTimes.set(e,Ub),Ub+=1)}}const E1="data-token-hash",fo="data-css-hash",Fi="__cssinjs_instance__";function m$(){const t=Math.random().toString(12).slice(2);if(typeof document<"u"&&document.head&&document.body){const e=document.body.querySelectorAll(`style[${fo}]`)||[],{firstChild:n}=document.head;Array.from(e).forEach(i=>
9501{i[Fi]||=t,i[Fi]===t&&document.head.insertBefore(i,n)});const s={};Array.from(document.querySelectorAll(`style[${fo}]`)).forEach(i=>{const r=i.getAttribute(fo);s[r]?i[Fi]===t&&i.parentNode?.removeChild(i):s[r]=!0})}return new g$(t)}const Dc=y.createContext({hashPriority:"low",cache:m$(),defaultCache:!0,autoPrefix:!1});function h$(t,e){if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++)if(t[n]!==e[n])return!1;return!0}class dg{static MAX_CACHE_SIZE=20;static MAX_CACHE_OFFSET=5;cache;keys;cacheCallTimes;constructor(){this.cache=new Map,this.keys=[],this.cacheCallTimes=0}size(){return this.keys.length}internalGet(e,n=!1){let s={map:this.cache};return e.forEach(i=>{s?s=s?.map?.get(i):s=void 0}),s?.value&&n&&(s.value[1]=this.cacheCallTimes++),s?.value}get(e){return this.internalGet(e,!0)?.[0]}has(e){return!!this.internalGet(e)}set(e,n){if(!this.has(e)){if(this.size()+1>dg.MAX_CACHE_SIZE+dg.MAX_CACHE_OFFSET){const[i]=this.keys.reduce((r,c)=>{const[,p]=r;return this.internalGet(c)[1]<p?[c,this.internalGet(c)[1]]:r},[this.keys[0],this.cacheCallTimes]);this.delete(i)}this.keys.push(e)}let s=this.cache;e.forEach((i,r)=>{if(r===e.length-1)s.set(i,{value:[n,this.cacheCallTimes++]});else{const c=s.get(i);c?c.map||(c.map=new Map):s.set(i,{map:new Map}),s=s.get(i).map}})}deleteByPath(e,n){const s=e.get(n[0]);if(n.length===1)return s.map?e.set(n[0],{map:s.map}):e.delete(n[0]),s.value?.[0];const i=this.deleteByPath(s.map,n.slice(1));return(!s.map||s.map.size===0)&&!s.value&&e.delete(n[0]),i}delete(e){if(this.has(e))return this.keys=this.keys.filter(n=>!h$(n,e)),this.deleteByPath(this.cache,e)}}let Vb=0;class VA{derivatives;id;constructor(e){this.derivatives=Array.isArray(e)?e:[e],this.id=Vb,e.length===0&&(e.length>0,void 0),Vb+=1}getDerivativeToken(e){return this.derivatives.reduce((n,s)=>s(e,n),void 0)}}const Nf=new dg;function a0(t){const e=Array.isArray(t)?t:[t];return Nf.has(e)||Nf.set(e,new VA(e)),Nf.get(e)}const _$=new WeakMap,Rf={};function f$(t,e){let n=_$;for(let s=0;s<e.length;s+=1){const i=e[s];n.has(i)||n.set(i,new WeakMap),n=n.get(i)}return n.has(Rf)||n.set(Rf,t()),n.get(Rf)}const qb=new WeakMap;function sc(t){let e=qb.get(t)||"";return e||(Object.keys(t).forEach(n=>{const s=t[n];e+=n,s instanceof VA?e+=s.id:s&&typeof s=="object"?e+=sc(s):e+=s}),e=_c(e),qb.set(t,e)),e}function k$(t,e){return _c(`${e}_${sc(t)}`)}const s0=us();function Ot(t){return typeof t=="number"?`${t}px`:t}function qA(t){const{hashCls:e,hashPriority:n="low"}=t||{};if(!e)return"";const s=`.${e}`;return n==="low"?`:where(${s})`:s}const v$=t=>t!=null;function I1(t,e){const n=typeof e=="function"?e():e;return n?{...t,csp:{...t.csp,nonce:n}}:t}const Vp=(t,e="")=>`--${e?`${e}-`:""}${t}`.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z0-9]+)/g,"$1-$2").replace(/([a-z])([A-Z0-9])/g,"$1-$2").toLowerCase(),y$=(t,e,n)=>{const{hashCls:s,hashPriority:i="low",scope:r}=n||{};if(!Object.keys(t).length)return"";const c=`${qA({hashCls:s,hashPriority:i})}.${e}`,p=[r].flat().filter(Boolean);return`${p.length?p.map(_=>`${c}.${_}`).join(", "):c}{${Object.entries(t).map(([_,f])=>`${_}:${f};`).join("")}}`},KA=(t,e,n)=>{const{hashCls:s,hashPriority:i="low",prefix:r,unitless:c,ignore:p,preserve:g}=n||{},_={},f={};return Object.entries(t).forEach(([h,v])=>{if(g?.[h])f[h]=v;else if((typeof v=="string"||typeof v=="number")&&!p?.[h]){const b=Vp(h,r);_[b]=typeof v=="number"&&!c?.[h]?`${v}px`:String(v),f[h]=`var(${b})`}}),[f,y$(_,e,{scope:n?.scope,hashCls:s,hashPriority:i})]},xp=new Map;function N1(t,e,n,s,i){const{cache:r}=y.useContext(Dc),c=[t,...e],p=n0(c),g=h=>{r.opUpdate(p,v=>{const[b=0,S]=v||[void 0,void 0],w=S||n(),A=[b,w];return h?h(A):A})};y.useMemo(()=>{g()},[p]);const f=r.opGet(p)[1];return y.useInsertionEffect(()=>(g(([h,v])=>[h+1,v]),xp.has(p)||(i?.(f),xp.set(p,!0),Promise.resolve().then(()=>{xp.delete(p)})),()=>{r.opUpdate(p,h=>{const[v=0,b]=h||[];return v-1===0?(s?.(b,!1),xp.delete(p),null):[v-1,b]})}),[p]),f}const b$={},x$="css",Ti=new Map;function A$(t){Ti.set(t,(Ti.get(t)||0)+1)}function C$(t,e){typeof document<"u"&&document.querySelectorAll(`style[${E1}="${t}"]`).forEach(s=>{s[Fi]===e&&s.parentNode?.removeChild(s)})}const S$=-1;function w$(t,e){Ti.set(t,(Ti.get(t)||0)-1);const n=new Set;
9501Ti.forEach((s,i)=>{s<=0&&n.add(i)}),Ti.size-n.size>S$&&n.forEach(s=>{C$(s,e),Ti.delete(s)})}const E$=(t,e,n,s)=>{let r={...n.getDerivativeToken(t),...e};return s&&(r=s(r)),r},I$="token";function N$(t,e,n){const{cache:{instanceId:s},container:i,hashPriority:r}=y.useContext(Dc),{salt:c="",override:p=b$,formatToken:g,getComputedToken:_,cssVar:f,nonce:h}=n,v=f$(()=>Object.assign({},...e),e),b=sc(v),S=sc(p),x=sc(f);return N1(I$,[c,t.id,b,S,x],()=>{const A=_?_(v,p,t):E$(v,p,t,g),E={...A},I=`${c}_${f.prefix}`,j=_c(I),T=`${x$}-${j}`;E._tokenKey=k$(E,I);const[P,N]=KA(A,f.key,{prefix:f.prefix,ignore:f.ignore,unitless:f.unitless,preserve:f.preserve,hashPriority:r,hashCls:f.hashed?T:void 0});return P._hashId=j,A$(f.key),[P,T,E,N,f.key]},([,,,,A])=>{w$(A,s)},([,,,A,E])=>{if(!A)return;let I={mark:fo,prepend:"queue",attachTo:i,priority:-999};I=I1(I,h);const j=Gi(A,_c(`css-var-${E}`),I);j[Fi]=s,j.setAttribute(E1,E)})}var R$={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},Qe="-ms-",oc="-moz-",Ne="-webkit-",WA="comm",R1="rule",T1="decl",T$="@import",j$="@namespace",XA="@keyframes",P$="@layer",M$=Math.abs,ic=String.fromCharCode,o0=Object.assign;function L$(t,e){return Nn(t,0)^45?(((e<<2^Nn(t,0))<<2^Nn(t,1))<<2^Nn(t,2))<<2^Nn(t,3):0}function YA(t){return t.trim()}function _o(t,e){return(t=e.exec(t))?t[0]:t}function de(t,e,n){return t.replace(e,n)}function Tf(t,e){return t.indexOf(e)}function Nn(t,e){return t.charCodeAt(e)|0}function Qi(t,e,n){return t.slice(e,n)}function xs(t){return t.length}function QA(t){return t.length}function Kl(t,e){return e.push(t),t}function O$(t,e){return t.map(e).join("")}function Kb(t,e){return t.filter(function(n){return!_o(n,e)})}var Wg=1,fu=1,JA=0,ls=0,Cn=0,Iu="";function Xg(t,e,n,s,i,r,c,p){return{value:t,root:e,parent:n,type:s,props:i,children:r,line:Wg,column:fu,length:c,return:"",siblings:p}}function Yo(t,e){return o0(Xg("",null,null,"",null,null,0,t.siblings),t,{length:-t.length},e)}function qr(t){for(;t.root;)t=Yo(t.root,{children:[t]});Kl(t,t.siblings)}function D$(){return Cn}function z$(){return Cn=ls>0?Nn(Iu,--ls):0,fu--,Cn===10&&(fu=1,Wg--),Cn}function ws(){return Cn=ls<JA?Nn(Iu,ls++):0,fu++,Cn===10&&(fu=1,Wg++),Cn}function ti(){return Nn(Iu,ls)}function qp(){return ls}function Yg(t,e){return Qi(Iu,t,e)}function fc(t){switch(t){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function B$(t){return Wg=fu=1,JA=xs(Iu=t),ls=0,[]}function $$(t){return Iu="",t}function jf(t){return YA(Yg(ls-1,i0(t===91?t+2:t===40?t+1:t)))}function G$(t){for(;(Cn=ti())&&Cn<33;)ws();return fc(t)>2||fc(Cn)>3?"":" "}function H$(t,e){for(;--e&&ws()&&!(Cn<48||Cn>102||Cn>57&&Cn<65||Cn>70&&Cn<97););return Yg(t,qp()+(e<6&&ti()==32&&ws()==32))}function i0(t){for(;ws();)switch(Cn){case t:return ls;case 34:case 39:t!==34&&t!==39&&i0(Cn);break;case 40:t===41&&i0(t);break;case 92:ws();break}return ls}function F$(t,e){for(;ws()&&t+Cn!==57;)if(t+Cn===84&&ti()===47)break;return"/*"+Yg(e,ls-1)+"*"+ic(t===47?t:ws())}function U$(t){for(;!fc(ti());)ws();return Yg(t,ls)}function Wb(t){return $$(Kp("",null,null,null,[""],t=B$(t),0,[0],t))}function Kp(t,e,n,s,i,r,c,p,g){for(var _=0,f=0,h=c,v=0,b=0,S=0,x=1,w=1,A=1,E=0,I=0,j="",T=i,P=r,N=s,D=j;w;)switch(S=I,I=ws()){case 40:S!=108&&Nn(D,h-1)==58?(E++,D+="("):D+=jf(I);break;case 41:E--,D+=")";break;case 34:case 39:case 91:D+=jf(I);break;case 9:case 10:case 13:case 32:if(E>0){D+=ic(I);break}D+=G$(S);break;case 92:D+=H$(qp()-1,7);continue;case 47:switch(ti()){case 42:case 47:Kl(V$(F$(ws(),qp()),e,n,g),g),(fc(S||1)==5||fc(ti()||1)==5)&&xs(D)&&Qi(D,-1,void 0)!==" "&&(D+=" ");break;default:D+="/"}break;case 123*x:p[_++]=xs(D)*A;case 125*x:case 59:case 0:if(E>0&&I){D+=ic(I);break}switch(I){case 0:case 125:w=0;case 59+f:A==-1&&(D=de(D,/\f/g,"")),b>0&&(xs(D)-h||x===0)&&Kl(b>32?Yb(D+";",s,n,h-1,g):Yb(de(D," ","")+";",s,n,h-2,g),g);break;case 59:D+=";";default:if(Kl(N=Xb(D,e,n,_,f,i,p,j,T=[],P=[],h,r),r),I===123)if(f===0)Kp(D,e,N,N,T,r,h,p,P);else{switch(v){case 99:if(Nn(D,3)===110)break;case 108:if(Nn(D,2)===97)break;default:f=0;case 100:case 109:case 115:}f?Kp(t,N,N,s&&Kl(Xb(t,N,N,0,0,i,p,j,i,T=[],h,P),P),i,P,h,p,s?T:P):Kp(D,N,N,N,[""],P,0,p,P)}}_=f=b=0,x=A=1,j=D="",h=c;break;case 58:h=1+xs(D),b=S;default:if(x<1){if(I==123)--x;else if(I==125&&x++==0&&z$()==125)continue}
vendor: 1,239 bytes, line 9501
9501switch(D+=ic(I),I*x){case 38:A=f>0?1:(D+="\f",-1);break;case 44:if(E>0)break;p[_++]=(xs(D)-1)*A,A=1;break;case 64:ti()===45&&(D+=jf(ws())),v=ti(),f=h=xs(j=D+=U$(qp())),I++;break;case 45:S===45&&xs(D)==2&&(x=0)}}return r}function Xb(t,e,n,s,i,r,c,p,g,_,f,h){for(var v=i-1,b=i===0?r:[""],S=QA(b),x=0,w=0,A=0;x<s;++x)for(var E=0,I=Qi(t,v+1,v=M$(w=c[x])),j=t;E<S;++E)(j=YA(w>0?b[E]+" "+I:de(I,/&\f/g,b[E])))&&(g[A++]=j);return Xg(t,e,n,i===0?R1:p,g,_,f,h)}function V$(t,e,n,s){return Xg(t,e,n,WA,ic(D$()),Qi(t,2,-2),0,s)}function Yb(t,e,n,s,i){return Xg(t,e,n,T1,Qi(t,0,s),Qi(t,s+1,-1),s,i)}function ZA(t,e,n){switch(L$(t,e)){case 5103:return Ne+"print-"+t+t;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:case 6391:case 5879:case 5623:case 6135:case 4599:return Ne+t+t;case 4855:return Ne+t.replace("add","source-over").replace("substract","source-out").replace("intersect","source-in").replace("exclude","xor")+t;case 4789:return oc+t+t;case 5349:case 4246:case 4810:case 6968:case 2756:return Ne+t+oc+t+Qe+t+t;case 5936:switch(Nn(t,e+11)){case 114:return Ne+t+Qe+de(t,/[svh]\w+-[tblr]{2}/,"tb")+t;
vendor: 4,155 bytes, line 9501
9501case 108:return Ne+t+Qe+de(t,/[svh]\w+-[tblr]{2}/,"tb-rl")+t;case 45:return Ne+t+Qe+de(t,/[svh]\w+-[tblr]{2}/,"lr")+t}case 6828:case 4268:case 2903:return Ne+t+Qe+t+t;case 6165:return Ne+t+Qe+"flex-"+t+t;case 5187:return Ne+t+de(t,/(\w+).+(:[^]+)/,Ne+"box-$1$2"+Qe+"flex-$1$2")+t;case 5443:return Ne+t+Qe+"flex-item-"+de(t,/flex-|-self/g,"")+(_o(t,/flex-|baseline/)?"":Qe+"grid-row-"+de(t,/flex-|-self/g,""))+t;case 4675:return Ne+t+Qe+"flex-line-pack"+de(t,/align-content|flex-|-self/g,"")+t;case 5548:return Ne+t+Qe+de(t,"shrink","negative")+t;case 5292:return Ne+t+Qe+de(t,"basis","preferred-size")+t;case 6060:return Ne+"box-"+de(t,"-grow","")+Ne+t+Qe+de(t,"grow","positive")+t;case 4554:return Ne+de(t,/([^-])(transform)/g,"$1"+Ne+"$2")+t;case 6187:return de(de(de(t,/(zoom-|grab)/,Ne+"$1"),/(image-set)/,Ne+"$1"),t,"")+t;case 5495:case 3959:return de(t,/(image-set\([^]*)/,Ne+"$1$`$1");case 4968:return de(de(t,/(.+:)(flex-)?(.*)/,Ne+"box-pack:$3"+Qe+"flex-pack:$3"),/space-between/,"justify")+Ne+t+t;case 4200:if(!_o(t,/flex-|baseline/))return Qe+"grid-column-align"+Qi(t,e)+t;break;case 2592:case 3360:return Qe+de(t,"template-","")+t;case 4384:case 3616:return n&&n.some(function(s,i){return e=i,_o(s.props,/grid-\w+-end/)})?~Tf(t+(n=n[e].value),"span")?t:Qe+de(t,"-start","")+t+Qe+"grid-row-span:"+(~Tf(n,"span")?_o(n,/\d+/):+_o(n,/\d+/)-+_o(t,/\d+/))+";":Qe+de(t,"-start","")+t;case 4896:case 4128:return n&&n.some(function(s){return _o(s.props,/grid-\w+-start/)})?t:Qe+de(de(t,"-end","-span"),"span ","")+t;case 4095:case 3583:case 4068:case 2532:return de(t,/(.+)-inline(.+)/,Ne+"$1$2")+t;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(xs(t)-1-e>6)switch(Nn(t,e+1)){case 109:if(Nn(t,e+4)!==45)break;case 102:return de(t,/(.+:)(.+)-([^]+)/,"$1"+Ne+"$2-$3$1"+oc+(Nn(t,e+3)==108?"$3":"$2-$3"))+t;case 115:return~Tf(t,"stretch")?ZA(de(t,"stretch","fill-available"),e,n)+t:t}break;case 5152:case 5920:return de(t,/(.+?):(\d+)(\s*\/\s*(span)?\s*(\d+))?(.*)/,function(s,i,r,c,p,g,_){return Qe+i+":"+r+_+(c?Qe+i+"-span:"+(p?g:+g-+r)+_:"")+t});case 4949:if(Nn(t,e+6)===121)return de(t,":",":"+Ne)+t;break;case 6444:switch(Nn(t,Nn(t,14)===45?18:11)){case 120:return de(t,/(.+:)([^;\s!]+)(;|(\s+)?!.+)?/,"$1"+Ne+(Nn(t,14)===45?"inline-":"")+"box$3$1"+Ne+"$2$3$1"+Qe+"$2box$3")+t;case 100:return de(t,":",":"+Qe)+t}break;case 5719:case 2647:case 2135:case 3927:case 2391:return de(t,"scroll-","scroll-snap-")+t}return t}function kc(t,e){for(var n="",s=0;s<t.length;s++)n+=e(t[s],s,t,e)||"";return n}function Qb(t,e,n,s){switch(t.type){case P$:if(t.children.length)break;case T$:case j$:case T1:return t.return=t.return||t.value;case WA:return"";case XA:return t.return=t.value+"{"+kc(t.children,s)+"}";case R1:if(!xs(t.value=t.props.join(",")))return""}return xs(n=kc(t.children,s))?t.return=t.value+"{"+n+"}":""}function q$(t){var e=QA(t);return function(n,s,i,r){for(var c="",p=0;p<e;p++)c+=t[p](n,s,i,r)||"";return c}}function K$(t,e,n,s){if(t.length>-1&&!t.return)switch(t.type){case T1:t.return=ZA(t.value,t.length,n);return;case XA:return kc([Yo(t,{value:de(t.value,"@","@"+Ne)})],s);case R1:if(t.length)return O$(n=t.props,function(i){switch(_o(i,s=/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":qr(Yo(t,{props:[de(i,/:(read-\w+)/,":"+oc+"$1")]})),qr(Yo(t,{props:[i]})),o0(t,{props:Kb(n,s)});break;case"::placeholder":qr(Yo(t,{props:[de(i,/:(plac\w+)/,":"+Ne+"input-$1")]})),qr(Yo(t,{props:[de(i,/:(plac\w+)/,":"+oc+"$1")]})),qr(Yo(t,{props:[de(i,/:(plac\w+)/,Qe+"input-$1")]})),qr(Yo(t,{props:[i]})),o0(t,{props:Kb(n,s)});break}return""})}}const Jb="data-ant-cssinjs-cache-path",t4="_FILE_STYLE__";let Ui,e4=!0;function W$(){if(!Ui&&(Ui={},us())){const t=document.createElement("div");t.className=Jb,t.style.position="fixed",t.style.visibility="hidden",t.style.top="-9999px",document.body.appendChild(t);let e=getComputedStyle(t).content||"";e=e.replace(/^"/,"").replace(/"$/,""),e.split(";").forEach(s=>{const[i,r]=s.split(":");Ui[i]=r});const n=document.querySelector(`style[${Jb}]`);n&&(e4=!1,n.parentNode?.removeChild(n)),document.body.removeChild(t)}}
9501function X$(t){return W$(),!!Ui[t]}function Y$(t){const e=Ui[t];let n=null;if(e&&us())if(e4)n=t4;else{const s=document.querySelector(`style[${fo}="${Ui[t]}"]`);s?n=s.innerHTML:delete Ui[t]}return[n,e]}const Q$="_skip_check_",n4="_multi_value_";function Pf(t,e){return(e?kc(Wb(t),q$([K$,Qb])):kc(Wb(t),Qb)).replace(/\{%%%\:[^;];}/g,";")}function J$(t){return typeof t=="object"&&t&&(Q$ in t||n4 in t)}function Zb(t,e,n="high"){if(!e)return t;const s=qA({hashCls:e,hashPriority:n});return t.split(",").map(r=>{const c=r.trim().split(/\s+/);let p=c[0]||"";const g=p.match(/^\w+/)?.[0]||"";return p=`${g}${s}${p.slice(g.length)}`,[p,...c.slice(1)].join(" ")}).join(",")}const r0=(t,e={},{root:n,injectHash:s,parentSelectors:i}={root:!0,parentSelectors:[]})=>{const{hashId:r,layer:c,path:p,hashPriority:g,transformers:_=[],linters:f=[]}=e;let h="",v={};function b(w){const A=w.getName(r);if(!v[A]){const[E]=r0(w.style,e,{root:!1,parentSelectors:i});v[A]=`@keyframes ${w.getName(r)}${E}`}}function S(w,A=[]){return w.forEach(E=>{Array.isArray(E)?S(E,A):E&&A.push(E)}),A}return S(Array.isArray(t)?t:[t]).forEach(w=>{const A=typeof w=="string"&&!n?{}:w;if(typeof A=="string")h+=`${A}
9502`;else if(A._keyframe)b(A);else{const E=_.reduce((I,j)=>j?.visit?.(I)||I,A);
9502Object.keys(E).forEach(I=>{const j=E[I];if(typeof j=="object"&&j&&(I!=="animationName"||!j._keyframe)&&!J$(j)){let T=!1,P=I.trim(),N=!1;(n||s)&&r?P.startsWith("@")?T=!0:P==="&"?P=Zb("",r,g):P=Zb(I,r,g):n&&!r&&(P==="&"||P==="")&&(P="",N=!0);const[D,F]=r0(j,e,{root:N,injectHash:T,parentSelectors:[...i,P]});v={...v,...F},h+=`${P}${D}`}else{let T=function(N,D){const F=N.replace(/[A-Z]/g,L=>`-${L.toLowerCase()}`);let B=D;!R$[N]&&typeof B=="number"&&B!==0&&(B=`${B}px`),N==="animationName"&&D?._keyframe&&(b(D),B=D.getName(r)),h+=`${F}:${B};`};const P=j?.value??j;typeof j=="object"&&j?.[n4]&&Array.isArray(P)?P.forEach(N=>{T(I,N)}):v$(P)&&T(I,P)}})}}),n?c&&(h&&(h=`@layer ${c.name} {${h}}`),c.dependencies&&(v[`@layer ${c.name}`]=c.dependencies.map(w=>`@layer ${w}, ${c.name};`).join(`
9503`))):h=`{${h}}`,[h,v]};function a4(t,e){return _c(`${t.join("%")}${e}`)}const Z$="style";function u0(t,e){const{path:n,hashId:s,layer:i,nonce:r,clientOnly:c,order:p=0}=t,{mock:g,hashPriority:_,container:f,transformers:h,linters:v,cache:b,layer:S,autoPrefix:x}=y.useContext(Dc),w=[s||""];S&&w.push("layer"),w.push(...n);let A=s0;N1(Z$,w,()=>{const E=w.join("|");if(X$(E)){const[D,F]=Y$(E);if(D)return[D,F,{},c,p]}const I=e(),[j,T]=r0(I,{hashId:s,hashPriority:_,layer:S?i:void 0,path:n.join("-"),transformers:h,linters:v}),P=Pf(j,x||!1),N=a4(w,P);return[P,N,T,c,p]},(E,I)=>{const[,j]=E;I&&s0&&mc(j,{mark:fo,attachTo:f})},E=>{const[I,j,T,,P]=E;if(A&&I!==t4){let N={mark:fo,prepend:S?!1:"queue",attachTo:f,priority:P};N=I1(N,r);const D=[],F=[];Object.keys(T).forEach(L=>{L.startsWith("@layer")?D.push(L):F.push(L)}),D.forEach(L=>{Gi(Pf(T[L],x||!1),`_layer-${L}`,{...N,prepend:!0})});const B=Gi(I,j,N);B[Fi]=b.instanceId,F.forEach(L=>{Gi(Pf(T[L],x||!1),`_effect-${L}`,N)})}})}const tG="cssVar",eG=(t,e)=>{const{key:n,prefix:s,unitless:i,ignore:r,token:c,hashId:p,scope:g,nonce:_}=t,{cache:{instanceId:f},container:h,hashPriority:v}=y.useContext(Dc),{_tokenKey:b}=c,S=Array.isArray(g)?g.join("@@"):g,x=[...t.path,n,S,b];return N1(tG,x,()=>{const A=e(),[E,I]=KA(A,n,{prefix:s,unitless:i,ignore:r,scope:g,hashPriority:v,hashCls:p}),j=a4(x,I);return[E,I,j,n]},([,,A])=>{s0&&mc(A,{mark:fo,attachTo:h})},([,A,E])=>{if(!A)return;let I={mark:fo,prepend:"queue",attachTo:h,priority:-999};I=I1(I,_);const j=Gi(A,E,I);j[Fi]=f,j.setAttribute(E1,n)})};class ps{name;style;constructor(e,n){this.name=e,this.style=n}getName(e=""){return e?`${e}-${this.name}`:this.name}_keyframe=!0}function Kr(t){return t.notSplit=!0,t}Kr(["borderTop","borderBottom"]),Kr(["borderTop"]),Kr(["borderBottom"]),Kr(["borderLeft","borderRight"]),Kr(["borderLeft"]),Kr(["borderRight"]);function Es(t){"@babel/helpers - typeof";return Es=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Es(t)}function nG(t){if(Array.isArray(t))return t}function aG(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var s,i,r,c,p=[],g=!0,_=!1;try{if(r=(n=n.call(t)).next,e===0){if(Object(n)!==n)return;g=!1}else for(;!(g=(s=r.call(n)).done)&&(p.push(s.value),p.length!==e);g=!0);}catch(f){_=!0,i=f}finally{try{if(!g&&n.return!=null&&(c=n.return(),Object(c)!==c))return}finally{if(_)throw i}}return p}}function sG(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
9504In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function s4(t,e){return nG(t)||aG(t,e)||UA(t,e)||sG()}function oG(t,e){if(Es(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var s=n.call(t,e);if(Es(s)!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function o4(t){var e=oG(t,"string");return Es(e)=="symbol"?e:e+""}function qs(t,e,n){return(e=o4(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function tx(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,s)}return n}function Sa(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};
9504e%2?tx(Object(n),!0).forEach(function(s){qs(t,s,n[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):tx(Object(n)).forEach(function(s){Object.defineProperty(t,s,Object.getOwnPropertyDescriptor(n,s))})}return t}function j1(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function iG(t,e){for(var n=0;n<e.length;n++){var s=e[n];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(t,o4(s.key),s)}}function P1(t,e,n){return e&&iG(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t}function Wp(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function l0(t,e){return l0=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,s){return n.__proto__=s,n},l0(t,e)}function rG(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&l0(t,e)}function pg(t){return pg=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},pg(t)}function i4(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(i4=function(){return!!t})()}function uG(t,e){if(e&&(Es(e)=="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Wp(t)}function lG(t){var e=i4();return function(){var n,s=pg(t);if(e){var i=pg(this).constructor;n=Reflect.construct(s,arguments,i)}else n=s.apply(this,arguments);return uG(this,n)}}var cG=P1(function t(){j1(this,t)}),r4="CALC_UNIT",dG=new RegExp(r4,"g");function Mf(t){return typeof t=="number"?"".concat(t).concat(r4):t}var pG=(function(t){rG(n,t);var e=lG(n);function n(s,i){var r;j1(this,n),r=e.call(this),qs(Wp(r),"result",""),qs(Wp(r),"unitlessCssVar",void 0),qs(Wp(r),"lowPriority",void 0);var c=Es(s);return r.unitlessCssVar=i,s instanceof n?r.result="(".concat(s.result,")"):c==="number"?r.result=Mf(s):c==="string"&&(r.result=s),r}return P1(n,[{key:"add",value:function(i){return i instanceof n?this.result="".concat(this.result," + ").concat(i.getResult()):(typeof i=="number"||typeof i=="string")&&(this.result="".concat(this.result," + ").concat(Mf(i))),this.lowPriority=!0,this}},{key:"sub",value:function(i){return i instanceof n?this.result="".concat(this.result," - ").concat(i.getResult()):(typeof i=="number"||typeof i=="string")&&(this.result="".concat(this.result," - ").concat(Mf(i))),this.lowPriority=!0,this}},{key:"mul",value:function(i){return this.lowPriority&&(this.result="(".concat(this.result,")")),i instanceof n?this.result="".concat(this.result," * ").concat(i.getResult(!0)):(typeof i=="number"||typeof i=="string")&&(this.result="".concat(this.result," * ").concat(i)),this.lowPriority=!1,this}},{key:"div",value:function(i){return this.lowPriority&&(this.result="(".concat(this.result,")")),i instanceof n?this.result="".concat(this.result," / ").concat(i.getResult(!0)):(typeof i=="number"||typeof i=="string")&&(this.result="".concat(this.result," / ").concat(i)),this.lowPriority=!1,this}},{key:"getResult",value:function(i){return this.lowPriority||i?"(".concat(this.result,")"):this.result}},{key:"equal",value:function(i){var r=this,c=i||{},p=c.unit,g=!0;return typeof p=="boolean"?g=p:Array.from(this.unitlessCssVar).some(function(_){return r.result.includes(_)})&&(g=!1),this.result=this.result.replace(dG,g?"px":""),typeof this.lowPriority<"u"?"calc(".concat(this.result,")"):this.result}}]),n})(cG),gG=function(e,n){var s=pG;return function(i){return new s(i,n)}},ex=function(e,n){return"".concat([n,e.replace(/([A-Z]+)([A-Z][a-z]+)/g,"$1-$2").replace(/([a-z])([A-Z])/g,"$1-$2")].filter(Boolean).join("-"))};function nx(t,e,n,s){var i=Sa({},e[t]);if(s!=null&&s.deprecatedTokens){var r=s.deprecatedTokens;r.forEach(function(p){var g=s4(p,2),_=g[0],f=g[1];if(i!=null&&i[_]||i!=null&&i[f]){var h;(h=i[f])!==null&&h!==void 0||(i[f]=i?.[_])}})}var c=Sa(Sa({},n),i);
9504return Object.keys(c).forEach(function(p){c[p]===e[p]&&delete c[p]}),c}var u4=typeof CSSINJS_STATISTIC<"u",c0=!0;function Nu(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];if(!u4)return Object.assign.apply(Object,[{}].concat(e));c0=!1;var s={};return e.forEach(function(i){if(Es(i)==="object"){var r=Object.keys(i);r.forEach(function(c){Object.defineProperty(s,c,{configurable:!0,enumerable:!0,get:function(){return i[c]}})})}}),c0=!0,s}var ax={};function mG(){}var hG=function(e){var n,s=e,i=mG;return u4&&typeof Proxy<"u"&&(n=new Set,s=new Proxy(e,{get:function(c,p){if(c0){var g;(g=n)===null||g===void 0||g.add(p)}return c[p]}}),i=function(c,p){var g;ax[c]={global:Array.from(n),component:Sa(Sa({},(g=ax[c])===null||g===void 0?void 0:g.component),p)}}),{token:s,keys:n,flush:i}};function sx(t,e,n){if(typeof n=="function"){var s;return n(Nu(e,(s=e[t])!==null&&s!==void 0?s:{}))}return n??{}}function _G(t){return{max:function(){for(var n=arguments.length,s=new Array(n),i=0;i<n;i++)s[i]=arguments[i];return"max(".concat(s.map(function(r){return Ot(r)}).join(","),")")},min:function(){for(var n=arguments.length,s=new Array(n),i=0;i<n;i++)s[i]=arguments[i];return"min(".concat(s.map(function(r){return Ot(r)}).join(","),")")}}}var fG=1e3*60*10,kG=(function(){function t(){j1(this,t),qs(this,"map",new Map),qs(this,"objectIDMap",new WeakMap),qs(this,"nextID",0),qs(this,"lastAccessBeat",new Map),qs(this,"accessBeat",0)}return P1(t,[{key:"set",value:function(n,s){this.clear();var i=this.getCompositeKey(n);this.map.set(i,s),this.lastAccessBeat.set(i,Date.now())}},{key:"get",value:function(n){var s=this.getCompositeKey(n),i=this.map.get(s);return this.lastAccessBeat.set(s,Date.now()),this.accessBeat+=1,i}},{key:"getCompositeKey",value:function(n){var s=this,i=n.map(function(r){return r&&Es(r)==="object"?"obj_".concat(s.getObjectID(r)):"".concat(Es(r),"_").concat(r)});return i.join("|")}},{key:"getObjectID",value:function(n){if(this.objectIDMap.has(n))return this.objectIDMap.get(n);var s=this.nextID;return this.objectIDMap.set(n,s),this.nextID+=1,s}},{key:"clear",value:function(){var n=this;if(this.accessBeat>1e4){var s=Date.now();this.lastAccessBeat.forEach(function(i,r){s-i>fG&&(n.map.delete(r),n.lastAccessBeat.delete(r))}),this.accessBeat=0}}}]),t})(),ox=new kG;function vG(t,e){return Gt.useMemo(function(){var n=ox.get(e);if(n)return n;var s=t();return ox.set(e,s),s},e)}var yG=function(){return{}};function bG(t){var e=t.useCSP,n=e===void 0?yG:e,s=t.useToken,i=t.usePrefix,r=t.getResetStyles,c=t.getCommonStyle,p=t.getCompUnitless;function g(v,b,S,x){var w=Array.isArray(v)?v[0]:v;function A(D){return"".concat(String(w)).concat(D.slice(0,1).toUpperCase()).concat(D.slice(1))}var E=x?.unitless||{},I=typeof p=="function"?p(v):{},j=Sa(Sa({},I),{},qs({},A("zIndexPopup"),!0));
9504Object.keys(E).forEach(function(D){j[A(D)]=E[D]});var T=Sa(Sa({},x),{},{unitless:j,prefixToken:A}),P=f(v,b,S,T),N=_(w,S,T);return function(D){var F=arguments.length>1&&arguments[1]!==void 0?arguments[1]:D,B=P(D,F),L=x?.extraCssVarPrefixCls,$=typeof L=="function"?L({prefixCls:D,rootCls:F}):L,q=N($!=null&&$.length?[F].concat(e0($)):F);return[B,q]}}function _(v,b,S){var x=S.unitless,w=S.prefixToken,A=S.ignore;return function(E){var I=s(),j=I.cssVar,T=I.realToken,P=n();return eG({path:[v],prefix:j.prefix,key:j.key,unitless:x,ignore:A,token:T,scope:E,nonce:function(){return P.nonce}},function(){var N=sx(v,T,b),D=nx(v,T,N,{deprecatedTokens:S?.deprecatedTokens});return N&&Object.keys(N).forEach(function(F){D[w(F)]=D[F],delete D[F]}),D}),j?.key}}function f(v,b,S){var x=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},w=Array.isArray(v)?v:[v,v],A=s4(w,1),E=A[0],I=w.join("-"),j=t.layer||{name:"antd"};return function(T){var P=arguments.length>1&&arguments[1]!==void 0?arguments[1]:T,N=s(),D=N.theme,F=N.realToken,B=N.hashId,L=N.token,$=N.cssVar,q=N.zeroRuntime,Q=y.useMemo(function(){return q},[]);if(Q)return B;var V=i(),U=V.rootPrefixCls,H=V.iconPrefixCls,st=n(),lt="css",M=vG(function(){var Y=new Set;return Object.keys(x.unitless||{}).forEach(function(it){Y.add(Vp(it,$.prefix)),Y.add(Vp(it,ex(E,$.prefix)))}),gG(lt,Y)},[lt,E,$?.prefix]),gt=_G(),rt=gt.max,O=gt.min,z={theme:D,token:L,hashId:B,nonce:function(){return st.nonce},clientOnly:x.clientOnly,layer:j,order:x.order||-999};return typeof r=="function"&&u0(Sa(Sa({},z),{},{clientOnly:!1,path:["Shared",U]}),function(){return r(L,{prefix:{rootPrefixCls:U,iconPrefixCls:H},csp:st})}),u0(Sa(Sa({},z),{},{path:[I,T,H]}),function(){if(x.injectStyle===!1)return[];var Y=hG(L),it=Y.token,W=Y.flush,ut=sx(E,F,S),ht=".".concat(T),yt=nx(E,F,ut,{deprecatedTokens:x.deprecatedTokens});ut&&Es(ut)==="object"&&Object.keys(ut).forEach(function(It){ut[It]="var(".concat(Vp(It,ex(E,$.prefix)),")")});var ft=Nu(it,{componentCls:ht,prefixCls:T,iconCls:".".concat(H),antCls:".".concat(U),calc:M,max:rt,min:O},ut),mt=b(ft,{hashId:B,prefixCls:T,rootPrefixCls:U,iconPrefixCls:H});W(E,yt);var wt=typeof c=="function"?c(ft,T,P,x.resetFont):null;return[x.resetStyle===!1?null:wt,mt]}),B}}function h(v,b,S){var x=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},w=f(v,b,S,Sa({resetStyle:!1,order:-998},x)),A=function(I){var j=I.prefixCls,T=I.rootCls,P=T===void 0?j:T;return w(j,P),null};return A}return{genStyleHooks:g,genSubStyleComponent:h,genComponentStyleHook:f}}const xG=["blue","purple","cyan","green","magenta","pink","red","orange","yellow","volcano","geekblue","lime","gold"];function AG(t){return(t+8)/t}function CG(t){const e=Array.from({length:10}).map((n,s)=>{const i=s-1,r=t*Math.E**(i/5),c=s>1?Math.floor(r):Math.ceil(r);return Math.floor(c/2)*2});return e[1]=t,e.map(n=>({size:n,lineHeight:AG(n)}))}const SG="6.6.4",l4={blue:"#1677FF",purple:"#722ED1",cyan:"#13C2C2",green:"#52C41A",magenta:"#EB2F96",pink:"#EB2F96",red:"#F5222D",orange:"#FA8C16",yellow:"#FADB14",volcano:"#FA541C",geekblue:"#2F54EB",gold:"#FAAD14",lime:"#A0D911"},vc={...l4,colorPrimary:"#1677ff",colorSuccess:"#52c41a",colorWarning:"#faad14",colorError:"#ff4d4f",colorInfo:"#1677ff",colorLink:"",colorTextBase:"",colorBgBase:"",fontFamily:`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
9505'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
9506'Noto Color Emoji'`,fontFamilyCode:"'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace",fontSize:14,lineWidth:1,lineType:"solid",motionUnit:.1,motionBase:0,motionEaseOutCirc:"cubic-bezier(0.08, 0.82, 0.17, 1)",motionEaseInOutCirc:"cubic-bezier(0.78, 0.14, 0.15, 0.86)",motionEaseOut:"cubic-bezier(0.215, 0.61, 0.355, 1)",motionEaseInOut:"cubic-bezier(0.645, 0.045, 0.355, 1)",motionEaseOutBack:"cubic-bezier(0.12, 0.4, 0.29, 1.46)",motionEaseInBack:"cubic-bezier(0.71, -0.46, 0.88, 0.6)",motionEaseInQuint:"cubic-bezier(0.755, 0.05, 0.855, 0.06)",motionEaseOutQuint:"cubic-bezier(0.23, 1, 0.32, 1)",borderRadius:6,sizeUnit:4,sizeStep:4,sizePopupArrow:16,controlHeight:32,zIndexBase:0,zIndexPopupBase:1e3,opacityImage:1,wireframe:!1,focusOutline:!0,motion:!0};function wG(t,{generateColorPalettes:e,generateNeutralColorPalettes:n}){const{colorSuccess:s,colorWarning:i,colorError:r,colorInfo:c,colorPrimary:p,colorBgBase:g,colorTextBase:_}=t,f=e(p),h=e(s),v=e(i),b=e(r),S=e(c),x=n(g,_),w=t.colorLink||t.colorInfo,A=e(w),E=new oa(b[1]).mix(new oa(b[3]),50).toHexString(),I={};return xG.forEach(j=>{const T=t[j];if(T){const P=e(T);I[`${j}Hover`]=P[5],I[`${j}Active`]=P[7]}}),{...x,colorPrimaryBg:f[1],colorPrimaryBgHover:f[2],colorPrimaryBorder:f[3],colorPrimaryBorderHover:f[4],colorPrimaryHover:f[5],colorPrimary:f[6],colorPrimaryActive:f[7],colorPrimaryTextHover:f[8],colorPrimaryText:f[9],colorPrimaryTextActive:f[10],colorSuccessBg:h[1],colorSuccessBgHover:h[2],colorSuccessBorder:h[3],colorSuccessBorderHover:h[4],colorSuccessHover:h[4],colorSuccess:h[6],colorSuccessActive:h[7],colorSuccessTextHover:h[8],colorSuccessText:h[9],colorSuccessTextActive:h[10],colorErrorBg:b[1],colorErrorBgHover:b[2],colorErrorBgFilledHover:E,colorErrorBgActive:b[3],colorErrorBorder:b[3],colorErrorBorderHover:b[4],colorErrorHover:b[5],colorError:b[6],colorErrorActive:b[7],colorErrorTextHover:b[8],colorErrorText:b[9],colorErrorTextActive:b[10],colorWarningBg:v[1],colorWarningBgHover:v[2],colorWarningBorder:v[3],colorWarningBorderHover:v[4],colorWarningHover:v[4],colorWarning:v[6],colorWarningActive:v[7],colorWarningTextHover:v[8],colorWarningText:v[9],colorWarningTextActive:v[10],colorInfoBg:S[1],colorInfoBgHover:S[2],colorInfoBorder:S[3],colorInfoBorderHover:S[4],colorInfoHover:S[4],colorInfo:S[6],colorInfoActive:S[7],colorInfoTextHover:S[8],colorInfoText:S[9],colorInfoTextActive:S[10],colorLinkHover:A[4],colorLink:A[6],colorLinkActive:A[7],...I,colorBgMask:new oa("#000").setA(.45).toRgbString(),colorWhite:"#fff"}}const EG=t=>{let e=t,n=t,s=t,i=t;return t<6&&t>=5?e=t+1:t<16&&t>=6?e=t+2:t>=16&&(e=16),t<7&&t>=5?n=4:t<8&&t>=7?n=5:t<14&&t>=8?n=6:t<16&&t>=14?n=7:t>=16&&(n=8),t<6&&t>=2?s=1:t>=6&&(s=2),t>4&&t<8?i=4:t>=8&&(i=6),{borderRadius:t,borderRadiusXS:s,borderRadiusSM:n,borderRadiusLG:e,borderRadiusOuter:i}};function IG(t){const{motionUnit:e,motionBase:n,borderRadius:s,lineWidth:i}=t;return{motionDurationFast:`${(n+e).toFixed(1)}s`,motionDurationMid:`${(n+e*2).toFixed(1)}s`,motionDurationSlow:`${(n+e*3).toFixed(1)}s`,lineWidthBold:i+1,...EG(s)}}const NG=t=>{const{controlHeight:e}=t;return{controlHeightSM:e*.75,controlHeightXS:e*.5,controlHeightLG:e*1.25}},RG=t=>{const e=CG(t),n=e.map(f=>f.size),s=e.map(f=>f.lineHeight),i=n[1],r=n[0],c=n[2],p=s[1],g=s[0],_=s[2];return{fontSizeSM:r,fontSize:i,fontSizeLG:c,fontSizeXL:n[3],fontSizeHeading1:n[6],fontSizeHeading2:n[5],fontSizeHeading3:n[4],fontSizeHeading4:n[3],fontSizeHeading5:n[2],lineHeight:p,lineHeightLG:_,lineHeightSM:g,fontHeight:Math.round(p*i),fontHeightLG:Math.round(_*c),fontHeightSM:Math.round(g*r),lineHeightHeading1:s[6],lineHeightHeading2:s[5],lineHeightHeading3:s[4],lineHeightHeading4:s[3],lineHeightHeading5:s[2]}};function TG(t){const{sizeUnit:e,sizeStep:n}=t;return{sizeXXL:e*(n+8),sizeXL:e*(n+4),sizeLG:e*(n+2),sizeMD:e*(n+1),sizeMS:e*n,size:e*n,sizeSM:e*(n-1),sizeXS:e*(n-2),sizeXXS:e*(n-3)}}const ss=(t,e)=>new oa(t).setA(e).toRgbString(),Wr=(t,e)=>new oa(t).darken(e).toHexString(),jG=t=>{const e=z7(t);return{1:e[0],2:e[1],3:e[2],4:e[3],5:e[4],6:e[5],7:e[6],8:e[4],9:e[5],10:e[6]}},PG=(t,e,n)=>{const s=t||"#fff",i=e||"#000";return{colorBgBase:s,colorTextBase:i,colorShadow:n||"#000",colorText:ss(i,.88),colorTextSecondary:ss(i,.65),colorTextTertiary:ss(i,.45),colorTextQuaternary:ss(i,.25),colorFill:ss(i,.15),colorFillSecondary:ss(i,.06),colorFillTertiary:ss(i,.04),colorFillQuaternary:ss(i,.02),colorBgSolid:ss(i,1),colorBgSolidHover:ss(i,.75),colorBgSolidActive:ss(i,.95),colorBgLayout:Wr(s,4),colorBgContainer:Wr(s,0),colorBgElevated:Wr(s,0),colorBgSpotlight:ss(i,.85),colorBgBlur:"transparent",colorBorder:Wr(s,15),colorBorderDisabled:Wr(s,15),colorBorderSecondary:Wr(s,6)}};function MG(t){K_.pink=K_.magenta,W_.pink=W_.magenta;const e=Object.keys(l4).map(n=>{const s=t[n]===K_[n]?W_[n]:z7(t[n]);return Array.from({length:10},()=>1).reduce((i,r,c)=>(i[`${n}-${c+1}`]=s[c],i[`${n}${c+1}`]=s[c],i),{})}).reduce((n,s)=>(n={...n,...s},n),{});return{...t,...e,...wG(t,{generateColorPalettes:jG,generateNeutralColorPalettes:PG}),...RG(t.fontSize),...TG(t),...NG(t),...IG(t)}}const c4=a0(MG),d0={token:vc,override:{override:vc},hashed:!0},d4=Gt.createContext(d0);function Lf(t){return t>=0&&t<=255}function Ap(t,e){const{r:n,g:s,b:i,a:r}=new oa(t).toRgb();if(r<1)return t;const{r:c,g:p,b:g}=new oa(e).toRgb();for(let _=.01;_<=1;_+=.01){const f=Math.round((n-c*(1-_))/_),h=Math.round((s-p*(1-_))/_),v=Math.round((i-g*(1-_))/_);if(Lf(f)&&Lf(h)&&Lf(v))return new oa({r:f,g:h,b:v,a:Math.round(_*100)/100}).toRgbString()}return new oa({r:n,g:s,b:i,a:1}).toRgbString()}function LG(t){const{override:e,...n}=t,s={...e};
9506Object.keys(vc).forEach(w=>{delete s[w]});const i={...n,...s},r=new oa(i.colorShadow),c=r.a,p=w=>r.clone().setA(c*w).toRgbString(),g=480,_=576,f=768,h=992,v=1200,b=1600,S=1920;return i.motion===!1&&(i.motionDurationFast="0s",i.motionDurationMid="0s",i.motionDurationSlow="0s"),{...i,colorFillContent:i.colorFillSecondary,colorFillContentHover:i.colorFill,colorFillAlter:i.colorFillQuaternary,colorBgContainerDisabled:i.colorFillTertiary,colorBorderBg:i.colorBgContainer,colorSplit:Ap(i.colorBorderSecondary,i.colorBgContainer),colorTextPlaceholder:i.colorTextQuaternary,colorTextDisabled:i.colorTextQuaternary,colorTextHeading:i.colorText,colorTextLabel:i.colorTextSecondary,colorTextDescription:i.colorTextTertiary,colorTextLightSolid:i.colorWhite,colorHighlight:i.colorError,colorBgTextHover:i.colorFillSecondary,colorBgTextActive:i.colorFill,colorIcon:i.colorTextTertiary,colorIconHover:i.colorText,colorErrorOutline:Ap(i.colorErrorBg,i.colorBgContainer),colorWarningOutline:Ap(i.colorWarningBg,i.colorBgContainer),colorErrorAffix:i.colorError,colorWarningAffix:i.colorWarning,fontSizeIcon:i.fontSizeSM,lineWidthFocus:i.focusOutline===!1?0:i.lineWidth*3,lineWidth:i.lineWidth,controlOutlineWidth:i.lineWidth*2,controlInteractiveSize:i.controlHeight/2,controlItemBgHover:i.colorFillTertiary,controlItemBgActive:i.colorPrimaryBg,controlItemBgActiveHover:i.colorPrimaryBgHover,controlItemBgActiveDisabled:i.colorFill,controlTmpOutline:i.colorFillQuaternary,controlOutline:Ap(i.colorPrimaryBg,i.colorBgContainer),lineType:i.lineType,borderRadius:i.borderRadius,borderRadiusXS:i.borderRadiusXS,borderRadiusSM:i.borderRadiusSM,borderRadiusLG:i.borderRadiusLG,fontWeightStrong:600,opacityLoading:.65,linkDecoration:"none",linkHoverDecoration:"none",linkFocusDecoration:"none",controlPaddingHorizontal:12,controlPaddingHorizontalSM:8,paddingXXS:i.sizeXXS,paddingXS:i.sizeXS,paddingSM:i.sizeSM,padding:i.size,paddingMD:i.sizeMD,paddingLG:i.sizeLG,paddingXL:i.sizeXL,paddingContentHorizontalLG:i.sizeLG,paddingContentVerticalLG:i.sizeMS,paddingContentHorizontal:i.sizeMS,paddingContentVertical:i.sizeSM,paddingContentHorizontalSM:i.size,paddingContentVerticalSM:i.sizeXS,marginXXS:i.sizeXXS,marginXS:i.sizeXS,marginSM:i.sizeSM,margin:i.size,marginMD:i.sizeMD,marginLG:i.sizeLG,marginXL:i.sizeXL,marginXXL:i.sizeXXL,boxShadow:`
9507      0 6px 16px 0 ${p(.08)},
9508      0 3px 6px -4px ${p(.12)},
9509      0 9px 28px 8px ${p(.05)}
9510    `,boxShadowSecondary:`
9511      0 6px 16px 0 ${p(.08)},
9512      0 3px 6px -4px ${p(.12)},
9513      0 9px 28px 8px ${p(.05)}
9514    `,boxShadowTertiary:`
9515      0 1px 2px 0 ${p(.05)},
9516      0 1px 6px -1px ${p(.03)},
9517      0 2px 4px 0 ${p(.03)}
9518    `,screenXS:g,screenXSMin:g,screenXSMax:_-1,screenSM:_,screenSMMin:_,screenSMMax:f-1,screenMD:f,screenMDMin:f,screenMDMax:h-1,screenLG:h,screenLGMin:h,screenLGMax:v-1,screenXL:v,screenXLMin:v,screenXLMax:b-1,screenXXL:b,screenXXLMin:b,screenXXLMax:S-1,screenXXXL:S,screenXXXLMin:S,boxShadowPopoverArrow:`2px 2px 5px ${p(.05)}`,dropShadowPopover:`drop-shadow(0 6px 16px ${p(.08)}) drop-shadow(0 3px 6px ${p(.12)}) drop-shadow(0 9px 28px ${p(.05)})`,boxShadowCard:`
9519      0 1px 2px -2px ${p(.16)},
9520      0 3px 6px 0 ${p(.12)},
9521      0 5px 12px 4px ${p(.09)}
9522    `,boxShadowDrawerRight:`
9523      -6px 0 16px 0 ${p(.08)},
9524      -3px 0 6px -4px ${p(.12)},
9525      -9px 0 28px 8px ${p(.05)}
9526    `,boxShadowDrawerLeft:`
9527      6px 0 16px 0 ${p(.08)},
9528      3px 0 6px -4px ${p(.12)},
9529      9px 0 28px 8px ${p(.05)}
9530    `,boxShadowDrawerUp:`
9531      0 6px 16px 0 ${p(.08)},
9532      0 3px 6px -4px ${p(.12)},
9533      0 9px 28px 8px ${p(.05)}
9534    `,boxShadowDrawerDown:`
9535      0 -6px 16px 0 ${p(.08)},
9536      0 -3px 6px -4px ${p(.12)},
9537      0 -9px 28px 8px ${p(.05)}
9538    `,boxShadowTabsOverflowLeft:`inset 10px 0 8px -8px ${p(.08)}`,boxShadowTabsOverflowRight:`inset -10px 0 8px -8px ${p(.08)}
9538`,boxShadowTabsOverflowTop:`inset 0 10px 8px -8px ${p(.08)}`,boxShadowTabsOverflowBottom:`inset 0 -10px 8px -8px ${p(.08)}`,...s}}const p4={lineHeight:!0,lineHeightSM:!0,lineHeightLG:!0,lineHeightHeading1:!0,lineHeightHeading2:!0,lineHeightHeading3:!0,lineHeightHeading4:!0,lineHeightHeading5:!0,opacityLoading:!0,fontWeightStrong:!0,zIndexPopupBase:!0,zIndexBase:!0,opacityImage:!0},OG={motionBase:!0,motionUnit:!0},DG={screenXS:!0,screenXSMin:!0,screenXSMax:!0,screenSM:!0,screenSMMin:!0,screenSMMax:!0,screenMD:!0,screenMDMin:!0,screenMDMax:!0,screenLG:!0,screenLGMin:!0,screenLGMax:!0,screenXL:!0,screenXLMin:!0,screenXLMax:!0,screenXXL:!0,screenXXLMin:!0,screenXXLMax:!0,screenXXXL:!0,screenXXXLMin:!0},g4=(t,e,n)=>{const s=n.getDerivativeToken(t),{override:i,...r}=e;let c={...s,override:i};return c=LG(c),r&&Object.entries(r).forEach(([p,g])=>{const{theme:_,...f}=g;let h=f;_&&(h=g4({...c,...f},{override:f},_)),c[p]=h}),c};function M1(){const{token:t,hashed:e,theme:n,override:s,cssVar:i,zeroRuntime:r}=Gt.useContext(d4),{csp:c,getPrefixCls:p}=Gt.useContext(Jn),g={prefix:i?.prefix??p(),key:i?.key??"css-var-root"},_=`${SG}-${e||""}`,f=n||c4,[h,v,b]=N$(f,[vc,t],{salt:_,override:s,getComputedToken:g4,cssVar:{...g,unitless:p4,ignore:OG,preserve:DG},nonce:c?.nonce});return[f,b,e?v:"",h,g,!!r]}const L1={overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},Qg=(t,e=!1)=>({boxSizing:"border-box",margin:0,padding:0,color:t.colorText,fontSize:t.fontSize,lineHeight:t.lineHeight,listStyle:"none",fontFamily:e?"inherit":t.fontFamily}),zG=()=>({display:"inline-flex",alignItems:"center",color:"inherit",fontStyle:"normal",lineHeight:0,textAlign:"center",textTransform:"none",verticalAlign:"-0.125em",textRendering:"optimizeLegibility","-webkit-font-smoothing":"antialiased","-moz-osx-font-smoothing":"grayscale","> *":{lineHeight:1},svg:{display:"inline-block",verticalAlign:"inherit"}}),BG=new ps("loadingCircle",{"100%":{transform:"rotate(360deg)"}}),O1=()=>({"&::before":{display:"table",content:'""'},"&::after":{display:"table",clear:"both",content:'""'}}),D1=(t,e)=>({outline:`${Ot(t.lineWidthFocus)} solid ${t.colorPrimaryBorder}`,outlineOffset:e??1,transition:["outline-offset","outline"].map(n=>`${n} 0s`).join(", ")}),gg=(t,e)=>({"&:focus-visible":D1(t,e)}),$G=t=>({a:{color:t.colorLink,textDecoration:t.linkDecoration,backgroundColor:"transparent",outline:"none",cursor:"pointer",transition:`color ${t.motionDurationSlow}`,"-webkit-text-decoration-skip":"objects","&:hover":{color:t.colorLinkHover},"&:active":{color:t.colorLinkActive},"&:active, &:hover":{textDecoration:t.linkHoverDecoration,outline:0},"&:focus":{textDecoration:t.linkFocusDecoration,outline:0},...gg(t),"&[disabled]":{color:t.colorTextDisabled,cursor:"not-allowed"}}}),GG=(t,e,n,s)=>{const i=`[class^="${e}"], [class*=" ${e}"]`,r=n?`.${n}`:i,c={boxSizing:"border-box","&::before, &::after":{boxSizing:"border-box"}};let p={};return s!==!1&&(p={fontFamily:t.fontFamily,fontSize:t.fontSize}),{[r]:{...p,...c,[i]:c}}},m4=t=>({[`.${t}`]:{...zG(),"&::before":{display:"none"},"&[tabindex]":{cursor:"pointer"}},[`.${t} .${t}-icon`]:{display:"block"},[`.${t}-spin`]:{animationName:BG,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear"}}),{genStyleHooks:Jg}=bG({usePrefix:()=>{const{getPrefixCls:t,iconPrefixCls:e}=y.useContext(Jn);return{rootPrefixCls:t(),iconPrefixCls:e}},useToken:()=>{const[t,e,n,s,i,r]=M1();return{theme:t,realToken:e,hashId:n,token:s,cssVar:i,zeroRuntime:r}},useCSP:()=>{const{csp:t}=y.useContext(Jn);return t??{}},getResetStyles:(t,e)=>{const n=$G(t);return[n,{"&":n},m4(e?.prefix.iconPrefixCls??w1)]},getCommonStyle:GG,getCompUnitless:()=>p4}),h4=(t,e)=>{const n=`--${t.replace(/\./g,"")}-${e}-`;return[r=>`${n}${r}`,(r,c)=>c?`var(${n}${r}, ${c})`:`var(${n}${r})`]},HG=(t,e)=>(M1(),u0({hashId:"",path:["ant-design-icons",t],nonce:()=>e?.nonce,layer:{name:"antd"}},()=>m4(t))),_4=y.createContext({}),FG=t=>{const{children:e,...n}=t,s=y.useMemo(()=>({motion:n.motion}),[n.motion]);return y.createElement(_4.Provider,{value:s},e)},Us="none",Cp="appear",Sp="enter",wp="leave",ix="none",As="prepare",ji="start",Pi="active",z1="end",f4="prepared";function rx(t,e){const n={};return n[t.toLowerCase()]=e.toLowerCase(),n[`Webkit${t}`]=`webkit${e}`,n[`Moz${t}`]=`moz${e}`,n[`ms${t}`]=`MS${e}`,n[`O${t}`]=`o${e.toLowerCase()}`,n}function UG(t,e){const n={animationend:rx("Animation","AnimationEnd"),transitionend:rx("Transition","TransitionEnd")};return t&&("AnimationEvent"in e||delete n.animationend.animation,"TransitionEvent"in e||delete n.transitionend.transition),n}const VG=UG(us(),typeof window<"u"?window:{});let k4={};us()&&({style:k4}=document.createElement("div"));const Ep={};function v4(t){if(Ep[t])return Ep[t];const e=VG[t];if(e){const n=Object.keys(e),s=n.length;for(let i=0;i<s;i+=1){const r=n[i];if(Object.prototype.hasOwnProperty.call(e,r)&&r in k4)return Ep[t]=e[r],Ep[t]}}return""}const y4=v4("animationend"),b4=v4("transitionend"),qG=!!(y4&&b4),ux=y4||"animationend",lx=b4||"transitionend";function cx(t,e){if(!t)return null;if(typeof t=="object"){const n=e.replace(/-\w/g,s=>s[1].toUpperCase());return t[n]}return`${t}-${e}`}const KG=(t=>{const e=y.useRef();function n(i){i&&(i.removeEventListener(lx,t),i.removeEventListener(ux,t))}function s(i){e.current&&e.current!==i&&n(e.current),i&&i!==e.current&&(i.addEventListener(lx,t),i.addEventListener(ux,t),e.current=i)}return y.useEffect(()=>()=>{n(e.current),e.current=null},[]),[s,n]}),x4=us()?y.useLayoutEffect:y.useEffect,WG=(()=>{const t=y.useRef(null);function e(){Va.cancel(t.current)}function n(s,i=2){e();const r=Va(()=>{i<=1?s({isCanceled:()=>r!==t.current}):n(s,i-1)});t.current=r}return y.useEffect(()=>()=>{e()},[]),[n,e]}),XG=[As,ji,Pi,z1],YG=[As,f4],A4=!1,QG=!0;function C4(t){return t===Pi||t===z1}const JG=((t,e,n)=>{const[s,i]=yB(ix),[r,c]=WG();function p(){i(As,!0)}const g=e?YG:XG;return x4(()=>{if(s!==ix&&s!==z1){const _=g.indexOf(s),f=g[_+1],h=n(s);h===A4?i(f,!0):f&&r(v=>{function b(){v.isCanceled()||i(f,!0)}h===!0?b():Promise.resolve(h).then(b)})}},[t,s]),y.useEffect(()=>()=>{c()},[]),[p,s]});function ZG(t,e,n,{motionEnter:s=!0,motionAppear:i=!0,motionLeave:r=!0,motionDeadline:c,motionLeaveImmediately:p,onAppearPrepare:g,onEnterPrepare:_,onLeavePrepare:f,onAppearStart:h,onEnterStart:v,onLeaveStart:b,onAppearActive:S,onEnterActive:x,onLeaveActive:w,onAppearEnd:A,onEnterEnd:E,onLeaveEnd:I,onVisibleChanged:j}
9538){const[T,P]=y.useState(),[N,D]=xB(Us),[F,B]=y.useState([null,null]),L=N(),$=y.useRef(!1),q=y.useRef(null);function Q(){return n()}const V=y.useRef(!1);function U(){D(Us),B([null,null])}const H=an(ut=>{const ht=N();if(ht===Us)return;const yt=Q();if(ut&&!ut.deadline&&ut.target!==yt)return;const ft=V.current;let mt;ht===Cp&&ft?mt=A?.(yt,ut):ht===Sp&&ft?mt=E?.(yt,ut):ht===wp&&ft&&(mt=I?.(yt,ut)),ft&&mt!==!1&&U()}),[st]=KG(H),lt=ut=>{switch(ut){case Cp:return{[As]:g,[ji]:h,[Pi]:S};case Sp:return{[As]:_,[ji]:v,[Pi]:x};case wp:return{[As]:f,[ji]:b,[Pi]:w};default:return{}}},M=y.useMemo(()=>lt(L),[L]),[gt,rt]=JG(L,!t,ut=>{if(ut===As){const ht=M[As];return ht?ht(Q()):A4}return ut in M&&B([M[ut]?.(Q(),null)||null,ut]),ut===Pi&&L!==Us&&(st(Q()),c>0&&(clearTimeout(q.current),q.current=setTimeout(()=>{H({deadline:!0})},c))),ut===f4&&U(),QG}),O=C4(rt);V.current=O;const z=y.useRef(null);x4(()=>{if($.current&&z.current===e)return;P(e);const ut=$.current;$.current=!0;let ht;!ut&&e&&i&&(ht=Cp),ut&&e&&s&&(ht=Sp),(ut&&!e&&r||!ut&&p&&!e&&r)&&(ht=wp);const yt=lt(ht);ht&&(t||yt[As])?(D(ht),gt()):D(Us),z.current=e},[e]),y.useEffect(()=>{(L===Cp&&!i||L===Sp&&!s||L===wp&&!r)&&D(Us)},[i,s,r]),y.useEffect(()=>()=>{$.current=!1,clearTimeout(q.current)},[]);const Y=y.useRef(!1);y.useEffect(()=>{T&&(Y.current=!0),T!==void 0&&L===Us&&((Y.current||T)&&j?.(T),Y.current=!0)},[T,L]);let it=F[0];M[As]&&rt===ji&&(it={transition:"none",...it});const W=F[1];return[N,rt,it,T??e,!$.current&&L===Us&&t&&i?"NONE":rt===ji||rt===Pi?W===rt:!0]}function tH(t){return t?.length<2}function eH(t){let e=t;typeof t=="object"&&({transitionSupport:e}=t);function n(i,r){return!!(i.motionName&&e&&r!==!1)}const s=y.forwardRef((i,r)=>{const{visible:c=!0,removeOnLeave:p=!0,forceRender:g,children:_,motionName:f,leavedClassName:h,eventProps:v}=i,{motion:b}=y.useContext(_4),S=n(i,b),x=y.useRef();function w(){return S1(x.current)}const[A,E,I,j,T]=ZG(S,c,w,i),P=A(),N=y.useRef(j);j&&(N.current=!0);const D=y.useMemo(()=>{const L={};return Object.defineProperties(L,{nativeElement:{enumerable:!0,get:w},inMotion:{enumerable:!0,get:()=>()=>A()!==Us},enableMotion:{enumerable:!0,get:()=>()=>S}}),L},[]);y.useImperativeHandle(r,()=>D,[]);const F=y.useRef(0);T&&(F.current+=1);const B=y.useMemo(()=>{if(T==="NONE")return null;let L;const $={...v,visible:c};if(!_)L=null;else if(P===Us)j?L=_({...$},x):!p&&N.current&&h?L=_({...$,className:h},x):g||!p&&!h?L=_({...$,style:{display:"none"}},x):L=null;else{let q;E===As?q="prepare":C4(E)?q="active":E===ji&&(q="start");const Q=cx(f,`${P}-${q}`);L=_({...$,className:At(cx(f,P),{[Q]:Q&&q,[f]:typeof f=="string"}),style:I},x)}return L},[F.current]);if(tH(_)&&RB(B)){const L=Eu(B);if(L!==x)return y.cloneElement(B,{ref:Pc(L,x)})}return B});return s.displayName="CSSMotion",s}const Ru=eH(qG),nH=t=>typeof t=="number"&&!Number.isNaN(t),aH=t=>typeof t=="string",Zg=t=>t!==null&&typeof t=="object",zc=t=>typeof t=="function",p0=(t,e)=>{const n={...t};return Object.keys(e).forEach(s=>{e[s]._default?n[s]||(n[s]={}):n[s]=p0(n[s],e[s])}),n},S4=(t={},...e)=>e.filter(n=>!!n).reduce((n,s)=>(Object.keys(s).forEach(i=>{const r=t[i],c=s[i];if(r)if(Zg(c))n[i]=S4(r,n[i],c);else{const{_default:p}=r;p&&(n[i]=n[i]||{},n[i][p]=At(n[i][p],c))}else n[i]=At(n[i],c)}),n),{}),sH=(t,...e)=>y.useMemo(()=>S4.apply(void 0,[t].concat(e)),[t].concat(e)),oH=(...t)=>t.filter(e=>!!e).reduce((e,n={})=>(Object.keys(n).forEach(s=>{e[s]={...e[s],...n[s]}}),e),{}),iH=(...t)=>y.useMemo(()=>oH.apply(void 0,t),[].concat(t)),vo=(t,e="root")=>y.useMemo(()=>t?{[e]:t}:void 0,[t,e]),dx=(t,e)=>zc(t)?t(e):t,Bc=(t,e,n,s)=>{const i=t.map(g=>g?dx(g,n):void 0),r=e.map(g=>g?dx(g,n):void 0),c=sH.apply(void 0,[s].concat(e0(i))),p=iH.apply(void 0,e0(r));return y.useMemo(()=>s?[p0(c,s),p0(p,s)]:[c,p],[c,p,s])},rH=t=>`${t}-css-var`,uH=y.createContext(void 0),$a="${label} is not a valid ${type}",tm={Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"},Form:{defaultValidateMessages:{default:"Field validation error for ${label}",required:"Please enter ${label}",enum:"${label} must be one of [${enum}]",whitespace:"${label} cannot be a blank character",date:{format:"${label}
9538 date format is invalid",parse:"${label} cannot be converted to a date",invalid:"${label} is an invalid date"},types:{string:$a,method:$a,array:$a,object:$a,number:$a,date:$a,boolean:$a,integer:$a,float:$a,regexp:$a,email:$a,url:$a,hex:$a},string:{len:"${label} must be ${len} characters",min:"${label} must be at least ${min} characters",max:"${label} must be up to ${max} characters",range:"${label} must be between ${min}-${max} characters"},number:{len:"${label} must be equal to ${len}",min:"${label} must be minimum ${min}",max:"${label} must be maximum ${max}",range:"${label} must be between ${min}-${max}"},array:{len:"Must be ${len} ${label}",min:"At least ${min} ${label}",max:"At most ${max} ${label}",range:"The amount of ${label} must be between ${min}-${max}"},pattern:{mismatch:"${label} does not match the pattern ${pattern}"}}}};({...tm.Modal});let Xp=[];const px=()=>Xp.reduce((t,e)=>({...t,...e}),tm.Modal);function lH(t){if(t){const e={...t};return Xp.push(e),px(),()=>{Xp=Xp.filter(n=>n!==e),px()}}({...tm.Modal})}const w4=y.createContext(void 0),cH="internalMark",dH=t=>{const{locale:e={},children:n,_ANT_MARK__:s}=t;y.useEffect(()=>lH(e?.Modal),[e]);const i=y.useMemo(()=>({...e,exist:!0}),[e]);return y.createElement(w4.Provider,{value:i},n)},E4=y.createContext(null);let pH=!1;function gH(t){return pH}const gx=[];function mH(t,e){const[n]=y.useState(()=>us()?document.createElement("div"):null),s=y.useRef(!1),i=y.useContext(E4),[r,c]=y.useState(gx),p=i||(s.current?void 0:f=>{c(h=>[f,...h])});function g(){n.parentElement||document.body.appendChild(n),s.current=!0}function _(){n.parentElement?.removeChild(n),s.current=!1}return sa(()=>(t?i?i(g):g():_(),_),[t]),sa(()=>{r.length&&(r.forEach(f=>f()),c(gx))},[r]),[n,p]}function hH(){return document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth}const _H=`rc-util-locker-${Date.now()}`;let mx=0;function fH(t){const e=!!t,[n]=y.useState(()=>(mx+=1,`${_H}_${mx}`));sa(()=>{if(e){const s=zB(document.body).width,i=hH();Gi(`
9539html body {
9540  overflow-y: hidden;
9541  ${i?`width: calc(100% - ${s}px);`:""}
9542}`,n)}else mc(n);return()=>{mc(n)}},[e,n])}let Li=[];const kH=200;let I4=0;const N4=t=>{if(t.key==="Escape"&&!t.isComposing){if(Date.now()-I4<kH)return;const n=Li.length;for(let s=n-1;s>=0;s-=1)Li[s].onEsc({top:s===n-1,event:t})}},R4=()=>{I4=Date.now()};function vH(){window.addEventListener("keydown",N4),window.addEventListener("compositionend",R4)}function yH(){Li.length===0&&(window.removeEventListener("keydown",N4),window.removeEventListener("compositionend",R4))}function bH(t,e){const n=x1(),s=an(e),i=()=>{Li.find(c=>c.id===n)||Li.push({id:n,onEsc:s})},r=()=>{Li=Li.filter(c=>c.id!==n)};y.useMemo(()=>{t?i():t||r()},[t]),y.useEffect(()=>{if(t)return i(),vH(),()=>{r(),yH()}},[t])}const hx=t=>t===!1?!1:!us()||!t?null:typeof t=="string"?document.querySelector(t):typeof t=="function"?t():t,B1=y.forwardRef((t,e)=>{const{open:n,autoLock:s,getContainer:i,debug:r,autoDestroy:c=!0,children:p,onEsc:g}=t,[_,f]=y.useState(n),h=_||n;y.useEffect(()=>{(c||n)&&f(n)},[n,c]);const[v,b]=y.useState(()=>hx(i));y.useEffect(()=>{const T=hx(i);b(()=>T??null)});const[S,x]=mH(h&&!v),w=v??S;fH(s&&n&&us()&&(w===S||w===document.body)),bH(n,g);let A=null;p&&Lc(p)&&e&&(A=Eu(p));const E=Mc(A,e);if(!h||!us()||v===void 0)return null;const I=w===!1||gH();let j=p;return e&&(j=y.cloneElement(p,{ref:E})),y.createElement(E4.Provider,{value:x},I?j:Ng.createPortal(j,w))});function xH(t){const{prefixCls:e,align:n,arrow:s,arrowPos:i}=t,{className:r,content:c,style:p}=s||{},{x:g=0,y:_=0}=i,f=y.useRef(null);if(!n||!n.points)return null;const h={position:"absolute"};if(n.autoArrow!==!1){const v=n.points[0],b=n.points[1],S=v[0],x=v[1],w=b[0],A=b[1];S===w||!["t","b"].includes(S)?h.top=_:S==="t"?h.top=0:h.bottom=0,x===A||!["l","r"].includes(x)?h.left=g:x==="l"?h.left=0:h.right=0}return y.createElement("div",{ref:f,className:At(`${e}-arrow`,r),style:{...h,...p}},c)}function g0(){return g0=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},g0.apply(this,arguments)}function AH(t){const{prefixCls:e,open:n,zIndex:s,mask:i,motion:r,mobile:c}=t;return i?y.createElement(Ru,g0({},r,{motionAppear:!0,visible:n,removeOnLeave:!0}),({className:p})=>y.createElement("div",{style:{zIndex:s},className:At(`${e}-mask`,c&&`${e}-mobile-mask`,p)})):null}const CH=y.memo(({children:t})=>t,(t,e)=>
9542e.cache);function T4(t,e,n,s,i,r,c,p){const g="auto",_=t?{}:{left:"-1000vw",top:"-1000vh",right:g,bottom:g};if(!t&&(e||!n)){const{points:f}=s,h=s.dynamicInset||s._experimental?.dynamicInset,v=h&&f[0][1]==="r",b=h&&f[0][0]==="b";v?(_.right=i,_.left=g):(_.left=c,_.right=g),b?(_.bottom=r,_.top=g):(_.top=p,_.bottom=g)}return _}function m0(){return m0=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},m0.apply(this,arguments)}const j4=y.forwardRef((t,e)=>{const{onEsc:n,popup:s,className:i,prefixCls:r,style:c,target:p,onVisibleChanged:g,open:_,keepDom:f,fresh:h,onClick:v,mask:b,arrow:S,arrowPos:x,align:w,motion:A,maskMotion:E,mobile:I,forceRender:j,getPopupContainer:T,autoDestroy:P,portal:N,children:D,zIndex:F,onMouseEnter:B,onMouseLeave:L,onPointerEnter:$,onPointerDownCapture:q,ready:Q,offsetX:V,offsetY:U,offsetR:H,offsetB:st,onAlign:lt,onPrepare:M,onResize:gt,stretch:rt,targetWidth:O,targetHeight:z}=t,Y=typeof s=="function"?s():s,it=_||f,W=!!I,[ut,ht,yt]=y.useMemo(()=>I?[I.mask,I.maskMotion,I.motion]:[b,E,A],[I,b,E,A]),ft=T?.length>0,[mt,wt]=y.useState(!T||!ft);sa(()=>{!mt&&ft&&p&&wt(!0)},[mt,ft,p]);const It=an((kt,pt)=>{gt?.(kt,pt),lt()}),Pt=T4(W,Q,_,w,H,st,V,U);if(!mt)return null;const Nt={};return rt&&(rt.includes("height")&&z?Nt.height=z:rt.includes("minHeight")&&z&&(Nt.minHeight=z),rt.includes("width")&&O?Nt.width=O:rt.includes("minWidth")&&O&&(Nt.minWidth=O)),_||(Nt.pointerEvents="none"),y.createElement(N,{open:j||it,getContainer:T&&(()=>T(p)),autoDestroy:P,onEsc:n},y.createElement(AH,{prefixCls:r,open:_,zIndex:F,mask:ut,motion:ht,mobile:W}),y.createElement(Hi,{onResize:It,disabled:!_},kt=>y.createElement(Ru,m0({motionAppear:!0,motionEnter:!0,motionLeave:!0,removeOnLeave:!1,forceRender:j,leavedClassName:`${r}-hidden`},yt,{onAppearPrepare:M,onEnterPrepare:M,visible:_,onVisibleChanged:pt=>{A?.onVisibleChanged?.(pt),g(pt)}}),({className:pt,style:Bt},ne)=>{const Xt=At(r,pt,i,{[`${r}-mobile`]:W});return y.createElement("div",{ref:Pc(kt,e,ne),className:Xt,style:{"--arrow-x":`${x.x||0}px`,"--arrow-y":`${x.y||0}px`,...Pt,...Nt,...Bt,boxSizing:"border-box",zIndex:F,...c},onMouseEnter:B,onMouseLeave:L,onPointerEnter:$,onClick:v,onPointerDownCapture:q},S&&y.createElement(xH,{prefixCls:r,arrow:S,arrowPos:x,align:w}),y.createElement(CH,{cache:!_&&!h},Y))})),D)}),mg=y.createContext(null),P4=y.createContext(null);function _x(t){return t?Array.isArray(t)?t:[t]:[]}function SH(t,e,n){return y.useMemo(()=>{const s=_x(e??t),i=_x(n??t),r=new Set(s),c=new Set(i);return r.has("hover")&&!r.has("click")&&r.add("touch"),c.has("hover")&&!c.has("click")&&c.add("touch"),[r,c]},[t,e,n])}function wH(t=[],e=[],n){const s=(i,r)=>i[r]||"";return n?s(t,0)===s(e,0):s(t,0)===s(e,0)&&s(t,1)===s(e,1)}function M4(t,e,n,s){const{points:i}=n,r=Object.keys(t);for(let c=0;c<r.length;c+=1){const p=r[c];if(wH(t[p]?.points,i,s))return`${e}-placement-${p}`}return""}function $c(t){return t.ownerDocument.defaultView}function h0(t){const e=[];let n=t?.parentElement;const s=["hidden","scroll","clip","auto"];for(;n;){const{overflowX:i,overflowY:r,overflow:c}=$c(n).getComputedStyle(n);[i,r,c].some(p=>s.includes(p))&&e.push(n),n=n.parentElement}return e}function yc(t,e=1){return Number.isNaN(t)?e:t}function zl(t){return yc(parseFloat(t),0)}function fx(t,e){const n={...t};return(e||[]).forEach(s=>{if(s instanceof HTMLBodyElement||s instanceof HTMLHtmlElement)return;const{overflow:i,overflowClipMargin:r,borderTopWidth:c,borderBottomWidth:p,borderLeftWidth:g,borderRightWidth:_}=$c(s).getComputedStyle(s),f=s.getBoundingClientRect(),{offsetHeight:h,clientHeight:v,offsetWidth:b,clientWidth:S}=s,x=zl(c),w=zl(p),A=zl(g),E=zl(_),I=yc(Math.round(f.width/b*1e3)/1e3),j=yc(Math.round(f.height/h*1e3)/1e3),T=(b-S-A-E)*I,P=(h-v-x-w)*j,N=x*j,D=w*j,F=A*I,B=E*I;let L=0,$=0;if(i==="clip"){const H=zl(r);L=H*I,$=H*j}const q=f.x+F-L,Q=f.y+N-$,V=q+f.width+2*L-F-B-T,U=Q+f.height+2*$-N-D-P;n.left=Math.max(n.left,q),n.top=Math.max(n.top,Q),n.right=Math.min(n.right,V),n.bottom=Math.min(n.bottom,U)}),n}function kx(t,e=0){const n=`${e}`,s=n.match(/^(.*)\%$/);return s?t*(parseFloat(s[1])/100):parseFloat(n)}function vx(t,e){const[n,s]=e||[];return[kx(t.width,n),kx(t.height,s)]}function yx(t=""){return[t[0],t[1]]}function Xr(t,e){const n=e[0],s=e[1];let i,r;return n==="t"?r=t.y:n==="b"?r=t.y+t.height:r=t.y+t.height/2,s==="l"?i=t.x:s==="r"?i=t.x+t.width:i=t.x+t.width/2,{x:i,y:r}}function Wo(t,e){const n={t:"b",b:"t",l:"r",r:"l"},s=[...t];return s[e]=n[t[e]]||"c",s}function bx(t){return t.join("")}function L4(t,e,n,s,i,r,c,p){const[g,_]=y.useState({ready:!1,offsetX:0,offsetY:0,offsetR:0,offsetB:0,arrowX:0,arrowY:0,scaleX:1,scaleY:1,align:i[s]||{}}),f=y.useRef(0),h=y.useMemo(()=>!e||p?[]:h0(e),[e]),v=y.useRef({});t||(v.current={});const S=an(()=>
9542{if(e&&n&&t&&!p){let ye=function(qt,hn,un=pt){const Ta=H.x+qt,Wa=H.y+hn,Ts=Ta+W,Zs=Wa+it,ln=Math.max(Ta,un.left),tr=Math.max(Wa,un.top),er=Math.min(Ts,un.right),Et=Math.min(Zs,un.bottom);return Math.max(0,(er-ln)*(Et-tr))},Fn=function(){Ft=H.y+Qt,Ce=Ft+it,Fe=H.x+Yt,Je=Fe+W};var A=ye,E=Fn;const I=e,j=I.ownerDocument,T=$c(I),{position:P}=T.getComputedStyle(I),N=I.style.left,D=I.style.top,F=I.style.right,B=I.style.bottom,L=I.style.overflow,$=I.style.overflowX,q=I.style.overflowY,Q={...i[s],...r},V=j.createElement("div");I.parentElement?.appendChild(V),V.style.left=`${I.offsetLeft}px`,V.style.top=`${I.offsetTop}px`,V.style.position=P,V.style.height=`${I.offsetHeight}px`,V.style.width=`${I.offsetWidth}px`,I.style.left="0",I.style.top="0",I.style.right="auto",I.style.bottom="auto",I.style.overflow="hidden";let U;if(Array.isArray(n))U={x:n[0],y:n[1],width:0,height:0};else{const qt=n.getBoundingClientRect();qt.x=qt.x??qt.left,qt.y=qt.y??qt.top,U={x:qt.x,y:qt.y,width:qt.width,height:qt.height}}const H=I.getBoundingClientRect(),{height:st,width:lt}=T.getComputedStyle(I);H.x=H.x??H.left,H.y=H.y??H.top;const{clientWidth:M,clientHeight:gt,scrollWidth:rt,scrollHeight:O,scrollTop:z,scrollLeft:Y}=j.documentElement,it=H.height,W=H.width,ut=U.height,ht=U.width,yt={left:0,top:0,right:M,bottom:gt},ft={left:-Y,top:-z,right:rt-Y,bottom:O-z};let{htmlRegion:mt}=Q;const wt="visible",It="visibleFirst";mt!=="scroll"&&mt!==It&&(mt=wt);const Pt=mt===It,Nt=fx(ft,h),kt=fx(yt,h),pt=mt===wt?kt:Nt,Bt=Pt?kt:pt;I.style.left="auto",I.style.top="auto",I.style.right="0",I.style.bottom="0";const ne=I.getBoundingClientRect();I.style.left=N,I.style.top=D,I.style.right=F,I.style.bottom=B,I.style.overflow=L,I.style.overflowX=$,I.style.overflowY=q,I.parentElement?.removeChild(V);const Xt=yc(Math.round(W/parseFloat(lt)*1e3)/1e3),Ut=yc(Math.round(it/parseFloat(st)*1e3)/1e3);if(Xt===0||Ut===0||_u(n)&&!zA(n))return;const{offset:Se,targetOffset:ue}=Q;let[ge,at]=vx(H,Se);const[_t,Tt]=vx(U,ue);U.x-=_t,U.y-=Tt;const[jt,Ht]=Q.points||[],Ct=yx(Ht),bt=yx(jt),ae=Xr(U,Ct),pe=Xr(H,bt),ve={...Q};let Dt=[bt,Ct],Yt=ae.x-pe.x+ge,Qt=ae.y-pe.y+at;const Te=ye(Yt,Qt),Gn=ye(Yt,Qt,kt),Tn=Xr(U,["t","l"]),Zn=Xr(H,["t","l"]),Hn=Xr(U,["b","r"]),jn=Xr(H,["b","r"]),ua=Q.overflow||{},{adjustX:ma,adjustY:rn,shiftX:He,shiftY:zt}=ua,Mt=qt=>typeof qt=="boolean"?qt:qt>=0;let Ft,Ce,Fe,Je;Fn();const Pn=Mt(rn),Sn=bt[0]===Ct[0];if(Pn&&bt[0]==="t"&&(Ce>Bt.bottom||v.current.bt)){let qt=Qt;Sn?qt-=it-ut:qt=Tn.y-jn.y-at;const hn=ye(Yt,qt),un=ye(Yt,qt,kt);hn>Te||hn===Te&&(!Pt||un>=Gn)?(v.current.bt=!0,Qt=qt,at=-at,Dt=[Wo(Dt[0],0),Wo(Dt[1],0)]):v.current.bt=!1}if(Pn&&bt[0]==="b"&&(Ft<Bt.top||v.current.tb)){let qt=Qt;Sn?qt+=it-ut:qt=Hn.y-Zn.y-at;const hn=ye(Yt,qt),un=ye(Yt,qt,kt);hn>Te||hn===Te&&(!Pt||un>=Gn)?(v.current.tb=!0,Qt=qt,at=-at,Dt=[Wo(Dt[0],0),Wo(Dt[1],0)]):v.current.tb=!1}const Mn=Mt(ma),gn=bt[1]===Ct[1];if(Mn&&bt[1]==="l"&&(Je>Bt.right||v.current.rl)){let qt=Yt;gn?qt-=W-ht:qt=Tn.x-jn.x-ge;const hn=ye(qt,Qt),un=ye(qt,Qt,kt);hn>Te||hn===Te&&(!Pt||un>=Gn)?(v.current.rl=!0,Yt=qt,ge=-ge,Dt=[Wo(Dt[0],1),Wo(Dt[1],1)]):v.current.rl=!1}if(Mn&&bt[1]==="r"&&(Fe<Bt.left||v.current.lr)){let qt=Yt;gn?qt+=W-ht:qt=Hn.x-Zn.x-ge;const hn=ye(qt,Qt),un=ye(qt,Qt,kt);hn>Te||hn===Te&&(!Pt||un>=Gn)?(v.current.lr=!0,Yt=qt,ge=-ge,Dt=[Wo(Dt[0],1),Wo(Dt[1],1)]):v.current.lr=!1}ve.points=[bx(Dt[0]),bx(Dt[1])],Fn();const tn=He===!0?0:He;typeof tn=="number"&&(Fe<kt.left&&(Yt-=Fe-kt.left-ge,U.x+ht<kt.left+tn&&(Yt+=U.x-kt.left+ht-tn)),Je>kt.right&&(Yt-=Je-kt.right-ge,U.x>kt.right-tn&&(Yt+=U.x-kt.right+tn)));const ta=zt===!0?0:zt;typeof ta=="number"&&(Ft<kt.top&&(Qt-=Ft-kt.top-at,U.y+ut<kt.top+ta&&(Qt+=U.y-kt.top+ut-ta)),Ce>kt.bottom&&(Qt-=Ce-kt.bottom-at,U.y>kt.bottom-ta&&(Qt+=U.y-kt.bottom+ta)));const Vt=H.x+Yt,ie=Vt+W,be=H.y+Qt,wn=be+it,xe=U.x,ha=xe+ht,_a=U.y,ze=_a+ut,mn=Math.max(Vt,xe),Ra=Math.min(ie,ha),Ln=(mn+Ra)/2-Vt,Pe=Math.max(be,_a),en=Math.min(wn,ze),Rs=(Pe+en)/2-be;c?.(e,ve);let Js=ne.right-H.x-(Yt+H.width),Un=ne.bottom-H.y-(Qt+H.height);Xt===1&&(Yt=Math.floor(Yt),Js=Math.floor(Js)),Ut===1&&(Qt=Math.floor(Qt),Un=Math.floor(Un));const Zi={ready:!0,offsetX:Yt/Xt,offsetY:Qt/Ut,offsetR:Js/Xt,offsetB:Un/Ut,arrowX:Ln/Xt,arrowY:Rs/Ut,scaleX:Xt,scaleY:Ut,align:ve};_(Zi)}}),x=()=>{f.current+=1;const A=f.current;Promise.resolve().then(()=>{f.current===A&&S()})},w=()=>{_(A=>({...A,ready:!1}))};return sa(w,[s]),sa(()=>{t||w()},[t]),[g.ready,g.offsetX,g.offsetY,g.offsetR,g.offsetB,g.arrowX,g.arrowY,g.scaleX,g.scaleY,g.align,x]}function O4(){const t=y.useRef(null),e=()=>{t.current&&(clearTimeout(t.current),t.current=null)},n=(s,i)=>{e(),i===0?s():t.current=setTimeout(()=>{s()},i*1e3)};return y.useEffect(()=>()=>{e()},[]),n}function EH(t,e,n,s,i){sa(()=>
9542{if(t&&e&&n){let v=function(){s(),i()};var r=v;const c=e,p=n,g=h0(c),_=h0(p),f=$c(p),h=new Set([f,...g,..._]);return h.forEach(b=>{b.addEventListener("scroll",v,{passive:!0})}),f.addEventListener("resize",v,{passive:!0}),s(),()=>{h.forEach(b=>{b.removeEventListener("scroll",v),f.removeEventListener("resize",v)})}}},[t,e,n])}function IH(t,e,n,s,i,r,c,p){const g=y.useRef(t);g.current=t;const _=y.useRef(!1);y.useEffect(()=>{if(e&&s&&(!i||r)){const h=()=>{_.current=!1},v=x=>{g.current&&!c(x.composedPath?.()?.[0]||x.target)&&!_.current&&p(!1)},b=$c(s);b.addEventListener("pointerdown",h,!0),b.addEventListener("mousedown",v,!0),b.addEventListener("contextmenu",v,!0);const S=Yk(n);return S&&(S.addEventListener("mousedown",v,!0),S.addEventListener("contextmenu",v,!0)),()=>{b.removeEventListener("pointerdown",h,!0),b.removeEventListener("mousedown",v,!0),b.removeEventListener("contextmenu",v,!0),S&&(S.removeEventListener("mousedown",v,!0),S.removeEventListener("contextmenu",v,!0))}}},[e,n,s,i,r]);function f(){_.current=!0}return f}function NH(){const[t,e]=Gt.useState(null),[n,s]=Gt.useState(!1),[i,r]=Gt.useState(!1),c=Gt.useRef(null),p=an(_=>{_===!1?(c.current=null,s(!1)):i&&n?c.current=_:(s(!0),e(_),c.current=null,n||r(!0))}),g=an(_=>{_?(r(!1),c.current&&(e(c.current),c.current=null)):(r(!1),c.current=null)});return[p,n,t,g]}function _0(){return _0=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},_0.apply(this,arguments)}const RH=t=>{const{prefixCls:e,isMobile:n,ready:s,open:i,align:r,offsetR:c,offsetB:p,offsetX:g,offsetY:_,arrowPos:f,popupSize:h,motion:v,uniqueContainerClassName:b,uniqueContainerStyle:S}=t,x=`${e}-unique-container`,[w,A]=Gt.useState(!1),E=T4(n,s,i,r,c,p,g,_),I=Gt.useRef(E);s&&(I.current=E);const j={};return h&&(j.width=h.width,j.height=h.height),Gt.createElement(Ru,_0({motionAppear:!0,motionEnter:!0,motionLeave:!0,removeOnLeave:!1,leavedClassName:`${x}-hidden`},v,{visible:i,onVisibleChanged:T=>{A(T)}}),({className:T,style:P})=>{const N=At(x,T,b,{[`${x}-visible`]:w});return Gt.createElement("div",{className:N,style:{"--arrow-x":`${f?.x||0}px`,"--arrow-y":`${f?.y||0}px`,...I.current,...j,...P,...S}})})},TH=({children:t,postTriggerProps:e})=>{const[n,s,i,r]=NH(),c=y.useMemo(()=>!i||!e?i:e(i),[i,e]),[p,g]=y.useState(null),[_,f]=y.useState(null),h=y.useRef(null),v=an(st=>{h.current=st,_u(st)&&p!==st&&g(st)}),b=y.useRef(null),S=O4(),x=an((st,lt)=>{b.current=lt,S(()=>{n(st)},st.delay)}),w=st=>{S(()=>{b.current?.()||n(!1)},st)},A=an(st=>{r(st)}),[E,I,j,T,P,N,D,,,F,B]=L4(s,p,c?.target,c?.popupPlacement,c?.builtinPlacements||{},c?.popupAlign,void 0,!1),L=y.useMemo(()=>{if(!c)return"";const st=M4(c.builtinPlacements||{},c.prefixCls||"",F,!1);return At(st,c.getPopupClassNameFromAlign?.(F))},[F,c?.getPopupClassNameFromAlign,c?.builtinPlacements,c?.prefixCls]),$=y.useMemo(()=>({show:x,hide:w}),[]);y.useEffect(()=>{B()},[c?.target]);const q=an(()=>(B(),Promise.resolve())),Q=y.useRef({}),V=y.useContext(mg),U=y.useMemo(()=>({registerSubPopup:(st,lt)=>{Q.current[st]=lt,V?.registerSubPopup(st,lt)}}),[V]),H=c?.prefixCls;return y.createElement(P4.Provider,{value:$},t,c&&y.createElement(mg.Provider,{value:U},y.createElement(j4,{ref:v,portal:B1,onEsc:c.onEsc,prefixCls:H,popup:c.popup,className:At(c.popupClassName,L,`${H}-unique-controlled`),style:c.popupStyle,target:c.target,open:s,keepDom:!0,fresh:!0,autoDestroy:!1,onVisibleChanged:A,ready:E,offsetX:I,offsetY:j,offsetR:T,offsetB:P,onAlign:B,onPrepare:q,onResize:st=>f({width:st.offsetWidth,height:st.offsetHeight}),arrowPos:{x:N,y:D},align:F,zIndex:c.zIndex,mask:c.mask,arrow:c.arrow,motion:c.popupMotion,maskMotion:c.maskMotion,getPopupContainer:c.getPopupContainer},y.createElement(RH,{prefixCls:H,isMobile:!1,ready:E,open:s,align:F,offsetR:T,offsetB:P,offsetX:I,offsetY:j,arrowPos:{x:N,y:D},popupSize:_,motion:c.popupMotion,uniqueContainerClassName:At(c.uniqueContainerClassName,L),uniqueContainerStyle:c.uniqueContainerStyle}))))};function jH(t=B1){return y.forwardRef((n,s)=>{const{prefixCls:i="rc-trigger-popup",children:r,action:c="hover",showAction:p,hideAction:g,disabled:_=!1,popupVisible:f,defaultPopupVisible:h,onOpenChange:v,afterOpenChange:b,onPopupVisibleChange:S,afterPopupVisibleChange:x,mouseEnterDelay:w,mouseLeaveDelay:A=.1,focusDelay:E,blurDelay:I,mask:j,maskClosable:T=!0,getPopupContainer:P,forceRender:N,autoDestroy:D,popup:F,popupClassName:B,uniqueContainerClassName:L,uniqueContainerStyle:$,popupStyle:q,popupPlacement:Q,builtinPlacements:V={},popupAlign:U,zIndex:H,stretch:st,getPopupClassNameFromAlign:lt,fresh:M,unique:gt,alignPoint:rt,onPopupClick:O,onPopupAlign:z,arrow:Y,popupMotion:it,maskMotion:W,mobile:ut,...ht}=n,yt=D||!1,ft=f===void 0,mt=!!ut,wt=y.useRef({}
9542),It=y.useContext(mg),Pt=y.useMemo(()=>({registerSubPopup:(Et,le)=>{wt.current[Et]=le,It?.registerSubPopup(Et,le)}}),[It]),Nt=y.useContext(P4),kt=x1(),[pt,Bt]=y.useState(null),ne=y.useRef(null),Xt=an(Et=>{ne.current=Et,_u(Et)&&pt!==Et&&Bt(Et),It?.registerSubPopup(kt,Et)}),[Ut,Se]=y.useState(null),ue=y.useRef(null),ge=an(Et=>{const le=S1(Et);_u(le)&&Ut!==le&&(Se(le),ue.current=le)}),at={},_t=an(Et=>{const le=Ut;return le?.contains(Et)||Yk(le)?.host===Et||Et===le||pt?.contains(Et)||Yk(pt)?.host===Et||Et===pt||Object.values(wt.current).some(gs=>gs?.contains(Et)||Et===gs)}),Tt=Y?{...Y!==!0?Y:{}}:null,[jt,Ht]=lu(h||!1,f),Ct=jt||!1,bt=Ct&&!_,ae=y.useMemo(()=>{const Et=typeof r=="function"?r({open:bt}):r;return y.Children.only(Et)},[r,bt]),pe=ae?.props||{},ve=an(()=>bt),Dt=an((Et=0)=>({popup:F,target:Ut,delay:Et,prefixCls:i,popupClassName:B,uniqueContainerClassName:L,uniqueContainerStyle:$,popupStyle:q,popupPlacement:Q,builtinPlacements:V,popupAlign:U,zIndex:H,mask:j,maskClosable:T,popupMotion:it,maskMotion:W,arrow:Tt,getPopupContainer:P,getPopupClassNameFromAlign:lt,id:kt,onEsc:Gn}));sa(()=>{Nt&&gt&&Ut&&!ft&&!It&&(bt?Nt.show(Dt(w),ve):Nt.hide(A))},[bt,Ut]);const Yt=y.useRef(bt);Yt.current=bt;const Qt=an(Et=>{Ng.flushSync(()=>{Ct!==Et&&(Ht(Et),v?.(Et),S?.(Et))})}),ye=O4(),Te=(Et,le=0)=>{if(f!==void 0){ye(()=>{Qt(Et)},le);return}if(Nt&&gt&&ft&&!It){Et?Nt.show(Dt(le),ve):Nt.hide(le);return}ye(()=>{Qt(Et)},le)};function Gn({top:Et}){Et&&Te(!1)}const[Tn,Zn]=y.useState(!1);sa(Et=>{(!Et||bt)&&Zn(!0)},[bt]);const[Hn,jn]=y.useState(null),[ua,ma]=y.useState(null),rn=Et=>{ma([Et.clientX,Et.clientY])},[He,zt,Mt,Ft,Ce,Fe,Je,Fn,Pn,Sn,Mn]=L4(bt,pt,rt&&ua!==null?ua:Ut,Q,V,U,z,mt),[gn,tn]=SH(c,p,g),ta=gn.has("click"),Vt=tn.has("click")||tn.has("contextMenu"),ie=an(()=>{Tn||Mn()});EH(bt,Ut,pt,ie,()=>{Yt.current&&rt&&Vt&&Te(!1)}),sa(()=>{ie()},[ua,Q]),sa(()=>{bt&&!V?.[Q]&&ie()},[JSON.stringify(U)]);const wn=y.useMemo(()=>{const Et=M4(V,i,Sn,rt);return At(Et,lt?.(Sn))},[Sn,lt,V,i,rt]);y.useImperativeHandle(s,()=>({nativeElement:ue.current,popupElement:ne.current,forceAlign:ie}));const[xe,ha]=y.useState(0),[_a,ze]=y.useState(0),mn=()=>{if(st&&Ut){const Et=Ut.getBoundingClientRect();ha(Et.width),ze(Et.height)}},Ra=()=>{mn(),ie()},Ka=Et=>{Zn(!1),Mn(),b?.(Et),x?.(Et)},Ln=()=>new Promise(Et=>{mn(),jn(()=>Et)});sa(()=>{Hn&&(Mn(),Hn(),jn(null))},[Hn]);function Pe(Et,le,gs,sm,Pu){at[Et]=(Mu,...om)=>{(!Pu||!Pu())&&(sm?.(Mu),Te(le,gs)),pe[Et]?.(Mu,...om)}}const en=gn.has("touch"),fa=tn.has("touch"),Rs=y.useRef(!1);(en||fa)&&(at.onTouchStart=(...Et)=>{Rs.current=!0,Yt.current&&fa?Te(!1):!Yt.current&&en&&Te(!0),pe.onTouchStart?.(...Et)}),(ta||Vt)&&(at.onClick=(Et,...le)=>{Yt.current&&Vt?Te(!1):!Yt.current&&ta&&(rn(Et),Te(!0)),pe.onClick?.(Et,...le),Rs.current=!1});const Js=IH(bt,Vt||fa,Ut,pt,j,T,_t,Te),Un=gn.has("hover"),Zi=tn.has("hover");let qt,hn;const un=()=>Rs.current;if(Un){const Et=le=>{rn(le)};Pe("onMouseEnter",!0,w,Et,un),Pe("onPointerEnter",!0,w,Et,un),qt=le=>{(bt||Tn)&&pt?.contains(le.target)&&Te(!0,w)},rt&&(at.onMouseMove=le=>{pe.onMouseMove?.(le)})}Zi&&(Pe("onMouseLeave",!1,A,void 0,un),Pe("onPointerLeave",!1,A,void 0,un),hn=()=>{Te(!1,A)}),gn.has("focus")&&Pe("onFocus",!0,E),tn.has("focus")&&Pe("onBlur",!1,I),gn.has("contextMenu")&&(at.onContextMenu=(Et,...le)=>{Yt.current&&tn.has("contextMenu")?Te(!1):(rn(Et),Te(!0)),Et.preventDefault(),pe.onContextMenu?.(Et,...le)});const Ta=y.useRef(!1);Ta.current||=N||bt||Tn;const Wa={...pe,...at},Ts={};["onContextMenu","onClick","onMouseDown","onTouchStart","onMouseEnter","onMouseLeave","onFocus","onBlur"].forEach(Et=>{ht[Et]&&(Ts[Et]=(...le)=>{Wa[Et]?.(...le),ht[Et](...le)})});const ln={x:Fe,y:Je};FA(bt,Ut,Ra);const tr=Mc(ge,Eu(ae)),er=y.cloneElement(ae,{...Wa,...Ts,ref:tr});return y.createElement(y.Fragment,null,er,Ta.current&&(!Nt||!gt)&&y.createElement(mg.Provider,{value:Pt},y.createElement(j4,{portal:t,ref:Xt,prefixCls:i,popup:F,className:At(B,!mt&&wn),style:q,target:Ut,onMouseEnter:qt,onMouseLeave:hn,onPointerEnter:qt,zIndex:H,open:bt,keepDom:Tn,fresh:M,onClick:O,onPointerDownCapture:Js,mask:j,motion:it,maskMotion:W,onVisibleChanged:Ka,onPrepare:Ln,forceRender:N,autoDestroy:yt,getPopupContainer:P,onEsc:Gn,align:Sn,arrow:Tt,arrowPos:ln,ready:He,offsetX:zt,offsetY:Mt,offsetR:Ft,offsetB:Ce,onAlign:ie,stretch:st,targetWidth:xe/Fn,targetHeight:_a/Pn,mobile:ut})))})}const D4=jH(B1),PH=(t,e,n)=>Gt.isValidElement(t)?Gt.cloneElement(t,zc(n)?n(t.props||{}):n):e;function z4(t,e){return PH(t,t,e)}const MH=({children:t})=>{const{getPrefixCls:e}=Gt.useContext(Jn),n=e();return Gt.isValidElement(t)?Gt.createElement(Ru,{visible:!0,motionName:`${n}-fade`,motionAppear:!0,motionEnter:!0,motionLeave:!1,removeOnLeave:!1},({style:s,className:i})=>z4(t,r=>({className:At(r.className,i),style:{...r.style,...s}}))):t},Ip=[null,null];function LH(t){if(Ip[0]!==t){const e={};Object.keys(t).forEach(n=>{e[n]={...t[n],dynamicInset:!1}}),Ip[0]=t,Ip[1]=e}return Ip[1]}const OH=({children:t})=>{const e=n=>{const{id:s,builtinPlacements:i,popup:r}=n,c=zc(r)?r():r,p=LH(i);return{...n,getPopupContainer:null,arrow:!1,popup:Gt.createElement(MH,{key:s},c),builtinPlacements:p}};return Gt.createElement(TH,{postTriggerProps:e},t)},f0=y.createContext(!1),DH=({children:t,disabled:e})=>{const n=y.useContext(f0);return y.createElement(f0.Provider,{value:e??n},t)},ku=y.createContext(void 0),zH=({children:t,size:e})=>{const n=y.useContext(ku);return y.createElement(ku.Provider,{value:e||n},t)};function BH(){const t=y.useContext(f0),e=y.useContext(ku);return{componentDisabled:t,componentSize:e}}function $H(t,e,n){const s=t||{},i=s.inherit===!1||!e?{...d0,hashed:e?.hashed??d0.hashed,cssVar:e?.cssVar,zeroRuntime:e?.zeroRuntime}:e,r=y.useId();return Vg(()=>{if(!t)return e;const c={...i.components};Object.keys(t.components||{}
9542).forEach(_=>{c[_]={...c[_],...t.components[_]}});const p=`css-var-${r.replace(/:/g,"")}`,g={prefix:n?.prefixCls,...i.cssVar,...s.cssVar,key:s.cssVar?.key||p};return{...i,...s,token:{...i.token,...s.token},components:c,cssVar:g}},[s,i,n?.prefixCls,r],(c,p)=>c.some((g,_)=>{const f=p[_];return!hc(g,f,!0)}))}const xx=y.createContext(!0);function GH(t){const e=y.useContext(xx),{children:n}=t,[,s]=M1(),{motion:i}=s,r=y.useRef(!1);return r.current||(r.current=e!==i),r.current?y.createElement(xx.Provider,{value:i},y.createElement(FG,{motion:i},n)):n}const HH=()=>null,FH=({iconPrefixCls:t,csp:e})=>(HG(t,e),null),UH=["getTargetContainer","getPopupContainer","renderEmpty","input","pagination","form","select","button"],VH=t=>{const{prefixCls:e,iconPrefixCls:n,theme:s,holderRender:i}=t},qH=t=>{const{children:e,csp:n,autoInsertSpaceInButton:s,alert:i,affix:r,anchor:c,app:p,form:g,locale:_,componentSize:f,direction:h,space:v,splitter:b,virtual:S,dropdownMatchSelectWidth:x,popupMatchSelectWidth:w,popupOverflow:A,legacyLocale:E,parentContext:I,iconPrefixCls:j,theme:T,componentDisabled:P,segmented:N,statistic:D,spin:F,calendar:B,carousel:L,cascader:$,collapse:q,typography:Q,checkbox:V,descriptions:U,divider:H,drawer:st,skeleton:lt,steps:M,image:gt,layout:rt,list:O,listy:z,mentions:Y,modal:it,progress:W,result:ut,slider:ht,breadcrumb:yt,masonry:ft,menu:mt,pagination:wt,input:It,inputPassword:Pt,inputSearch:Nt,textArea:kt,otp:pt,empty:Bt,badge:ne,borderBeam:Xt,radio:Ut,rate:Se,ribbon:ue,switch:ge,transfer:at,avatar:_t,message:Tt,tag:jt,table:Ht,card:Ct,cardMeta:bt,tabs:ae,timeline:pe,timePicker:ve,upload:Dt,notification:Yt,tree:Qt,colorPicker:ye,datePicker:Te,rangePicker:Gn,flex:Tn,wave:Zn,dropdown:Hn,warning:jn,tour:ua,tooltip:ma,popover:rn,popconfirm:He,qrcode:zt,floatButton:Mt,floatButtonGroup:Ft,variant:Ce,inputNumber:Fe,treeSelect:Je,watermark:Fn}=t,Pn=y.useMemo(()=>Zg(_)&&Object.prototype.hasOwnProperty.call(_,"default")&&_.default?.locale?_.default:_,[_]),Sn=y.useCallback((ze,mn)=>{const{prefixCls:Ra}=t;if(mn)return mn;const Ka=Ra||I.getPrefixCls("");return ze?`${Ka}-${ze}`:Ka},[I.getPrefixCls,t.prefixCls]),Mn=j||I.iconPrefixCls||w1,gn=n||I.csp,tn=$H(T,I.theme,{prefixCls:Sn("")}),ta={csp:gn,autoInsertSpaceInButton:s,alert:i,affix:r,anchor:c,app:p,locale:Pn||E,direction:h,space:v,splitter:b,virtual:S,popupMatchSelectWidth:w??x,popupOverflow:A,getPrefixCls:Sn,iconPrefixCls:Mn,theme:tn,segmented:N,statistic:D,spin:F,calendar:B,carousel:L,cascader:$,collapse:q,typography:Q,checkbox:V,descriptions:U,divider:H,drawer:st,skeleton:lt,steps:M,image:gt,input:It,inputPassword:Pt,inputSearch:Nt,textArea:kt,otp:pt,layout:rt,list:O,listy:z,mentions:Y,modal:it,progress:W,result:ut,slider:ht,breadcrumb:yt,masonry:ft,menu:mt,pagination:wt,empty:Bt,badge:ne,borderBeam:Xt,radio:Ut,rate:Se,ribbon:ue,switch:ge,transfer:at,avatar:_t,message:Tt,tag:jt,table:Ht,card:Ct,cardMeta:bt,tabs:ae,timeline:pe,timePicker:ve,upload:Dt,notification:Yt,tree:Qt,colorPicker:ye,datePicker:Te,rangePicker:Gn,flex:Tn,wave:Zn,dropdown:Hn,warning:jn,tour:ua,tooltip:ma,popover:rn,popconfirm:He,qrcode:zt,floatButton:Mt,floatButtonGroup:Ft,variant:Ce,inputNumber:Fe,treeSelect:Je,watermark:Fn},Vt={...I};Object.keys(ta).forEach(ze=>{ta[ze]!==void 0&&(Vt[ze]=ta[ze])}),UH.forEach(ze=>{const mn=t[ze];mn&&(Vt[ze]=mn)}),typeof s<"u"&&(Vt.button={autoInsertSpace:s,...Vt.button});const ie=Vg(()=>Vt,Vt,(ze,mn)=>{const Ra=Object.keys(ze),Ka=Object.keys(mn);return Ra.length!==Ka.length||Ra.some(Ln=>ze[Ln]!==mn[Ln])}),{layer:be}=y.useContext(Dc),wn=y.useMemo(()=>({prefixCls:Mn,csp:gn,layer:be?"antd":void 0,zeroRuntime:!!be||tn?.zeroRuntime}),[Mn,gn,be,tn?.zeroRuntime]);let xe=y.createElement(y.Fragment,null,y.createElement(FH,{iconPrefixCls:Mn,csp:gn}),y.createElement(HH,{dropdownMatchSelectWidth:x}),e);const ha=y.useMemo(()=>su(tm.Form?.defaultValidateMessages||{},ie.locale?.Form?.defaultValidateMessages||{},ie.form?.validateMessages||{},g?.validateMessages||{}),[ie,g?.validateMessages]);Object.keys(ha).length>0&&(xe=y.createElement(uH.Provider,{value:ha},xe)),Pn&&(xe=y.createElement(dH,{locale:Pn,_ANT_MARK__:cH},xe)),xe=y.createElement(V0.Provider,{value:wn},xe),f&&(xe=y.createElement(zH,{size:f},xe)),xe=y.createElement(GH,null,xe),ma?.unique&&(xe=y.createElement(OH,null,xe));const _a=y.useMemo(()=>
9542{const{algorithm:ze,token:mn,components:Ra,cssVar:Ka,...Ln}=tn||{},Pe=ze&&(!Array.isArray(ze)||ze.length>0)?a0(ze):c4,en={};Object.entries(Ra||{}).forEach(([Rs,Js])=>{const Un={...Js};"algorithm"in Un&&(Un.algorithm===!0?Un.theme=Pe:(Array.isArray(Un.algorithm)||zc(Un.algorithm))&&(Un.theme=a0(Un.algorithm)),delete Un.algorithm),en[Rs]=Un});const fa={...vc,...mn};return{...Ln,theme:Pe,token:fa,components:en,override:{override:fa,...en},cssVar:Ka}},[tn]);return T&&(xe=y.createElement(d4.Provider,{value:_a},xe)),ie.warning&&(xe=y.createElement(JB.Provider,{value:ie.warning},xe)),P!==void 0&&(xe=y.createElement(DH,{disabled:P},xe)),y.createElement(Jn.Provider,{value:ie},xe)},Gc=t=>{const e=y.useContext(Jn),n=y.useContext(w4);return y.createElement(qH,{parentContext:e,legacyLocale:n,...t})};Gc.ConfigContext=Jn;Gc.SizeContext=ku;Gc.config=VH;Gc.useConfig=BH;Object.defineProperty(Gc,"SizeContext",{get:()=>ku});const KH=(t,e,n)=>`${t}-${e}`,Tu=t=>{const e=Gt.useContext(ku);return Gt.useMemo(()=>t?aH(t)?t??e:zc(t)?t(e):e:e,[t,e])},Ax=t=>({animationDuration:t,animationFillMode:"both"}),WH=(t,e,n,s,i=!1)=>{const r=i?"&":"";return{[`
9543      ${r}${t}-enter,
9544      ${r}${t}-appear
9545    `]:{...Ax(s),animationPlayState:"paused"},[`${r}${t}-leave`]:{...Ax(s),animationPlayState:"paused"},[`
9546      ${r}${t}-enter${t}-enter-active,
9547      ${r}${t}-appear${t}-appear-active
9548    `]:{animationName:e,animationPlayState:"running"},[`${r}${t}-leave${t}-leave-active`]:{animationName:n,animationPlayState:"running",pointerEvents:"none"}}},B4=new ps("antSlideUpIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0}
9548,"100%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1}}),$4=new ps("antSlideUpOut",{"0%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0}}),G4=new ps("antSlideDownIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1}}),H4=new ps("antSlideDownOut",{"0%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0}}),XH=new ps("antSlideLeftIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1}}),YH=new ps("antSlideLeftOut",{"0%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0}}),QH=new ps("antSlideRightIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1}}),JH=new ps("antSlideRightOut",{"0%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0}
9548}),ZH={"slide-up":{inKeyframes:B4,outKeyframes:$4},"slide-down":{inKeyframes:G4,outKeyframes:H4},"slide-left":{inKeyframes:XH,outKeyframes:YH},"slide-right":{inKeyframes:QH,outKeyframes:JH}},Cx=(t,e)=>{const{antCls:n}=t,s=`${n}-${e}`,{inKeyframes:i,outKeyframes:r}=ZH[e];return[WH(s,i,r,t.motionDurationMid),{[`
9549      ${s}-enter,
9550      ${s}-appear
9551    `]:{transform:"scale(0)",transformOrigin:"0% 0%",opacity:0,animationTimingFunction:t.motionEaseOutQuint,"&-prepare":{transform:"scale(1)"}},[`${s}-leave`]:{animationTimingFunction:t.motionEaseInQuint}}]};function Ks(){return Ks=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)({}).hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},Ks.apply(null,arguments)}const Oi="RC_FORM_INTERNAL_HOOKS",Ge=()=>{Ia(!1,"Can not find FormContext. Please make sure you wrap Field under Form.")},vu=y.createContext({getFieldValue:Ge,getFieldsValue:Ge,getFieldError:Ge,getFieldWarning:Ge,getFieldsError:Ge,isFieldsTouched:Ge,isFieldTouched:Ge,isFieldValidating:Ge,isFieldsValidating:Ge,resetFields:Ge,setFields:Ge,setFieldValue:Ge,setFieldsValue:Ge,validateFields:Ge,submit:Ge,getInternalHooks:()=>(Ge(),{dispatch:Ge,initEntityValue:Ge,registerField:Ge,useSubscribe:Ge,setInitialValues:Ge,destroyForm:Ge,setCallbacks:Ge,registerWatch:Ge,getFields:Ge,setValidateMessages:Ge,setPreserve:Ge,getInitialValue:Ge})}),hg=y.createContext(null);function k0(t){return t==null?[]:Array.isArray(t)?t:[t]}function tF(t){return t&&!!t._init}function v0(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",tel:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone(){const t=JSON.parse(JSON.stringify(this));return t.clone=this.clone,t}}}const Of=v0(),eF=/%[sdj%]/g;let nF=()=>{};function y0(t){if(!t||!t.length)return null;const e={};return t.forEach(n=>{const s=n.field;e[s]=e[s]||[],e[s].push(n)}),e}function Ua(t,...e){let n=0;const s=e.length;return typeof t=="function"?t.apply(null,e):typeof t=="string"?t.replace(eF,r=>{if(r==="%%")return"%";if(n>=s)return r;switch(r){case"%s":return String(e[n++]);case"%d":return Number(e[n++]);case"%j":try{return JSON.stringify(e[n++])}catch{return"[Circular]"}break;default:return r}}):t}function aF(t){return t==="string"||t==="url"||t==="hex"||t==="email"||t==="date"||t==="pattern"||t==="tel"}function Rn(t,e){return!!(t==null||e==="array"&&Array.isArray(t)&&!t.length||aF(e)&&typeof t=="string"&&!t)}function sF(t,e,n){const s=[];let i=0;const r=t.length;function c(p){s.push(...p||[]),i++,i===r&&n(s)}t.forEach(p=>{e(p,c)})}function Sx(t,e,n){let s=0;const i=t.length;function r(c){if(c&&c.length){n(c);return}const p=s;s=s+1,p<i?e(t[p],r):n([])}r([])}function oF(t){const e=[];return Object.keys(t).forEach(n=>{e.push(...t[n]||[])}),e}class wx extends Error{errors;fields;constructor(e,n){super("Async Validation Error"),this.errors=e,this.fields=n}}function iF(t,e,n,s,i){if(e.first){const h=new Promise((v,b)=>{const S=w=>(s(w),w.length?b(new wx(w,y0(w))):v(i)),x=oF(t);Sx(x,n,S)});return h.catch(v=>v),h}const r=e.firstFields===!0?Object.keys(t):e.firstFields||[],c=Object.keys(t),p=c.length;let g=0;const _=[],f=new Promise((h,v)=>{const b=S=>{if(_.push.apply(_,S),g++,g===p)return s(_),_.length?v(new wx(_,y0(_))):h(i)};
9551c.length||(s(_),h(i)),c.forEach(S=>{const x=t[S];r.indexOf(S)!==-1?Sx(x,n,b):sF(x,n,b)})});return f.catch(h=>h),f}function rF(t){return!!(t&&t.message!==void 0)}function uF(t,e){let n=t;for(let s=0;s<e.length;s++){if(n==null)return n;n=n[e[s]]}return n}function Ex(t,e){return n=>{let s;return t.fullFields?s=uF(e,t.fullFields):s=e[n.field||t.fullField],rF(n)?(n.field=n.field||t.fullField,n.fieldValue=s,n):{message:typeof n=="function"?n():n,fieldValue:s,field:n.field||t.fullField}}}function Ix(t,e){if(e){for(const n in e)if(e.hasOwnProperty(n)){const s=e[n];typeof s=="object"&&typeof t[n]=="object"?t[n]={...t[n],...s}:t[n]=s}}return t}const Yr="enum",lF=(t,e,n,s,i)=>{t[Yr]=Array.isArray(t[Yr])?t[Yr]:[],t[Yr].indexOf(e)===-1&&s.push(Ua(i.messages[Yr],t.fullField,t[Yr].join(", ")))},cF=(t,e,n,s,i)=>{t.pattern&&(t.pattern instanceof RegExp?(t.pattern.lastIndex=0,t.pattern.test(e)||s.push(Ua(i.messages.pattern.mismatch,t.fullField,e,t.pattern))):typeof t.pattern=="string"&&(new RegExp(t.pattern).test(e)||s.push(Ua(i.messages.pattern.mismatch,t.fullField,e,t.pattern))))},dF=(t,e,n,s,i)=>{const r=typeof t.len=="number",c=typeof t.min=="number",p=typeof t.max=="number",g=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;let _=e,f=null;const h=typeof e=="number",v=typeof e=="string",b=Array.isArray(e);if(h?f="number":v?f="string":b&&(f="array"),!f)return!1;b&&(_=e.length),v&&(_=e.replace(g,"_").length),r?_!==t.len&&s.push(Ua(i.messages[f].len,t.fullField,t.len)):c&&!p&&_<t.min?s.push(Ua(i.messages[f].min,t.fullField,t.min)):p&&!c&&_>t.max?s.push(Ua(i.messages[f].max,t.fullField,t.max)):c&&p&&(_<t.min||_>t.max)&&s.push(Ua(i.messages[f].range,t.fullField,t.min,t.max))},F4=(t,e,n,s,i,r)=>{t.required&&(!n.hasOwnProperty(t.field)||Rn(e,r||t.type))&&s.push(Ua(i.messages.required,t.fullField))};let Np;const pF=(()=>{if(Np)return Np;const t="[a-fA-F\\d:]",e=T=>T&&T.includeBoundaries?`(?:(?<=\\s|^)(?=${t})|(?<=${t})(?=\\s|$))`:"",n="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",s="[a-fA-F\\d]{1,4}",c=`(?:${[`(?:${s}:){7}(?:${s}|:)`,`(?:${s}:){6}(?:${n}|:${s}|:)`,`(?:${s}:){5}(?::${n}|(?::${s}){1,2}|:)`,`(?:${s}:){4}(?:(?::${s}){0,1}:${n}|(?::${s}){1,3}|:)`,`(?:${s}:){3}(?:(?::${s}){0,2}:${n}|(?::${s}){1,4}|:)`,`(?:${s}:){2}(?:(?::${s}){0,3}:${n}|(?::${s}){1,5}|:)`,`(?:${s}:){1}(?:(?::${s}){0,4}:${n}|(?::${s}){1,6}|:)`,`(?::(?:(?::${s}){0,5}:${n}|(?::${s}){1,7}|:))`].join("|")})(?:%[0-9a-zA-Z]{1,})?`,p=new RegExp(`(?:^${n}$)|(?:^${c}$)`),g=new RegExp(`^${n}$`),_=new RegExp(`^${c}$`),f=T=>T&&T.exact?p:new RegExp(`(?:${e(T)}${n}${e(T)})|(?:${e(T)}${c}${e(T)})`,"g");f.v4=T=>T&&T.exact?g:new RegExp(`${e(T)}${n}${e(T)}`,"g"),f.v6=T=>T&&T.exact?_:new RegExp(`${e(T)}${c}${e(T)}`,"g");const h="(?:(?:[a-z]+:)?//)",v="(?:\\S+(?::\\S*)?@)?",b=f.v4().source,S=f.v6().source,j=`(?:${h}|www\\.)${v}(?:localhost|${b}|${S}|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s"]*)?`;return Np=new RegExp(`(?:^${j}$)`,"i"),Np}),Df={email:/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,tel:/^(\+[0-9]{1,3}[-\s\u2011]?)?(\([0-9]{1,4}\)[-\s\u2011]?)?([0-9]+[-\s\u2011]?)*[0-9]+$/,hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},Wl={integer(t){return Wl.number(t)&&parseInt(t,10)===t},float(t){return Wl.number(t)&&!Wl.integer(t)},array(t){return Array.isArray(t)},regexp(t){if(t instanceof RegExp)return!0;try{return!!new RegExp(t)}catch{return!1}},date(t){return typeof t.getTime=="function"&&typeof t.getMonth=="function"&&typeof t.getYear=="function"&&!isNaN(t.getTime())},number(t){return isNaN(t)?!1:typeof t=="number"},object(t){return typeof t=="object"&&!Wl.array(t)},method(t){return typeof t=="function"},email(t){return typeof t=="string"&&t.length<=320&&!!t.match(Df.email)},tel(t){return typeof t=="string"&&t.length<=32&&!!t.match(Df.tel)},url(t){return typeof t=="string"&&t.length<=2048&&!!t.match(pF())},hex(t){return typeof t=="string"&&!!t.match(Df.hex)}},gF=(t,e,n,s,i)=>{if(t.required&&e===void 0){F4(t,e,n,s,i);return}const r=["integer","float","array","regexp","object","method","email","tel","number","date","url","hex"],c=t.type;r.indexOf(c)>-1?Wl[c](e)||s.push(Ua(i.messages.types[c],t.fullField,t.type)):c&&typeof e!==t.type&&s.push(Ua(i.messages.types[c],t.fullField,t.type))},mF=(t,e,n,s,i)=>{(/^\s+$/.test(e)||e==="")&&s.push(Ua(i.messages.whitespace,t.fullField))},ke={required:F4,whitespace:mF,type:gF,range:dF,enum:lF,pattern:cF},hF=(t,e,n,s,i)=>{const r=[];
9551if(t.required||!t.required&&s.hasOwnProperty(t.field)){if(Rn(e)&&!t.required)return n();ke.required(t,e,s,r,i)}n(r)},_F=(t,e,n,s,i)=>{const r=[];if(t.required||!t.required&&s.hasOwnProperty(t.field)){if(e==null&&!t.required)return n();ke.required(t,e,s,r,i,"array"),e!=null&&(ke.type(t,e,s,r,i),ke.range(t,e,s,r,i))}n(r)},fF=(t,e,n,s,i)=>{const r=[];if(t.required||!t.required&&s.hasOwnProperty(t.field)){if(Rn(e)&&!t.required)return n();ke.required(t,e,s,r,i),e!==void 0&&ke.type(t,e,s,r,i)}n(r)},kF=(t,e,n,s,i)=>{const r=[];if(t.required||!t.required&&s.hasOwnProperty(t.field)){if(Rn(e,"date")&&!t.required)return n();if(ke.required(t,e,s,r,i),!Rn(e,"date")){let p;e instanceof Date?p=e:p=new Date(e),ke.type(t,p,s,r,i),p&&ke.range(t,p.getTime(),s,r,i)}}n(r)},vF="enum",yF=(t,e,n,s,i)=>{const r=[];if(t.required||!t.required&&s.hasOwnProperty(t.field)){if(Rn(e)&&!t.required)return n();ke.required(t,e,s,r,i),e!==void 0&&ke[vF](t,e,s,r,i)}n(r)},bF=(t,e,n,s,i)=>{const r=[];if(t.required||!t.required&&s.hasOwnProperty(t.field)){if(Rn(e)&&!t.required)return n();ke.required(t,e,s,r,i),e!==void 0&&(ke.type(t,e,s,r,i),ke.range(t,e,s,r,i))}n(r)},xF=(t,e,n,s,i)=>{const r=[];if(t.required||!t.required&&s.hasOwnProperty(t.field)){if(Rn(e)&&!t.required)return n();ke.required(t,e,s,r,i),e!==void 0&&(ke.type(t,e,s,r,i),ke.range(t,e,s,r,i))}n(r)},AF=(t,e,n,s,i)=>{const r=[];if(t.required||!t.required&&s.hasOwnProperty(t.field)){if(Rn(e)&&!t.required)return n();ke.required(t,e,s,r,i),e!==void 0&&ke.type(t,e,s,r,i)}n(r)},CF=(t,e,n,s,i)=>{const r=[];if(t.required||!t.required&&s.hasOwnProperty(t.field)){if(e===""&&(e=void 0),Rn(e)&&!t.required)return n();ke.required(t,e,s,r,i),e!==void 0&&(ke.type(t,e,s,r,i),ke.range(t,e,s,r,i))}n(r)},SF=(t,e,n,s,i)=>{const r=[];if(t.required||!t.required&&s.hasOwnProperty(t.field)){if(Rn(e)&&!t.required)return n();ke.required(t,e,s,r,i),e!==void 0&&ke.type(t,e,s,r,i)}n(r)},wF=(t,e,n,s,i)=>{const r=[];if(t.required||!t.required&&s.hasOwnProperty(t.field)){if(Rn(e,"string")&&!t.required)return n();ke.required(t,e,s,r,i),Rn(e,"string")||ke.pattern(t,e,s,r,i)}n(r)},EF=(t,e,n,s,i)=>{const r=[];if(t.required||!t.required&&s.hasOwnProperty(t.field)){if(Rn(e)&&!t.required)return n();ke.required(t,e,s,r,i),Rn(e)||ke.type(t,e,s,r,i)}n(r)},IF=(t,e,n,s,i)=>{const r=[],c=Array.isArray(e)?"array":typeof e;ke.required(t,e,s,r,i,c),n(r)},NF=(t,e,n,s,i)=>{const r=[];if(t.required||!t.required&&s.hasOwnProperty(t.field)){if(Rn(e,"string")&&!t.required)return n();ke.required(t,e,s,r,i,"string"),Rn(e,"string")||(ke.type(t,e,s,r,i),ke.range(t,e,s,r,i),ke.pattern(t,e,s,r,i),t.whitespace===!0&&ke.whitespace(t,e,s,r,i))}n(r)},Rp=(t,e,n,s,i)=>{const r=t.type,c=[];if(t.required||!t.required&&s.hasOwnProperty(t.field)){if(Rn(e,r)&&!t.required)return n();ke.required(t,e,s,c,i,r),Rn(e,r)||ke.type(t,e,s,c,i)}n(c)},Bl={string:NF,method:AF,number:CF,boolean:fF,regexp:EF,integer:xF,float:bF,array:_F,object:SF,enum:yF,pattern:wF,date:kF,url:Rp,hex:Rp,email:Rp,tel:Rp,required:IF,any:hF};class _g{static register=function(n,s){if(typeof s!="function")throw new Error("Cannot register a validator by type, validator is not a function");Bl[n]=s};static warning=nF;static messages=Of;static validators=Bl;rules=null;_messages=Of;constructor(e){this.define(e)}define(e){if(!e)throw new Error("Cannot configure a schema with no rules");if(typeof e!="object"||Array.isArray(e))throw new Error("Rules must be an object");this.rules={},Object.keys(e).forEach(n=>{const s=e[n];this.rules[n]=Array.isArray(s)?s:[s]})}messages(e){return e&&(this._messages=Ix(v0(),e)),this._messages}validate(e,n={},s=()=>{}){let i=e,r=n,c=s;if(typeof r=="function"&&(c=r,r={}),!this.rules||Object.keys(this.rules).length===0)return c&&c(null,i),Promise.resolve(i);function p(h){let v=[],b={};function S(x){Array.isArray(x)?v=v.concat(...x):v.push(x)}for(let x=0;x<h.length;x++)S(h[x]);v.length?(b=y0(v),c(v,b)):c(null,i)}if(r.messages){let h=this.messages();h===Of&&(h=v0()),Ix(h,r.messages),r.messages=h}else r.messages=this.messages();const g={};(r.keys||Object.keys(this.rules)).forEach(h=>{const v=this.rules[h];let b=i[h];v.forEach(S=>{let x=S;typeof x.transform=="function"&&(i===e&&(i={...i}),b=i[h]=x.transform(b),b!=null&&(x.type=x.type||(Array.isArray(b)?"array":typeof b))),typeof x=="function"?x={validator:x}:x={...x},x.validator=this.getValidationMethod(x),x.validator&&(x.field=h,x.fullField=x.fullField||h,x.type=this.getType(x),g[h]=g[h]||[],g[h].push({rule:x,value:b,source:i,field:h}
9551))})});const f={};return iF(g,r,(h,v)=>{const b=h.rule;let S=(b.type==="object"||b.type==="array")&&(typeof b.fields=="object"||typeof b.defaultField=="object");S=S&&(b.required||!b.required&&h.value),b.field=h.field;function x(E,I){return{...I,fullField:`${b.fullField}.${E}`,fullFields:b.fullFields?[...b.fullFields,E]:[E]}}function w(E=[]){let I=Array.isArray(E)?E:[E];!r.suppressWarning&&I.length&&_g.warning("async-validator:",I),I.length&&b.message!==void 0&&b.message!==null&&(I=[].concat(b.message));let j=I.map(Ex(b,i));if(r.first&&j.length)return f[b.field]=1,v(j);if(!S)v(j);else{if(b.required&&!h.value)return b.message!==void 0?j=[].concat(b.message).map(Ex(b,i)):r.error&&(j=[r.error(b,Ua(r.messages.required,b.field))]),v(j);let T={};b.defaultField&&Object.keys(h.value).map(D=>{T[D]=b.defaultField}),T={...T,...h.rule.fields};const P={};Object.keys(T).forEach(D=>{const F=T[D],B=Array.isArray(F)?F:[F];P[D]=B.map(x.bind(null,D))});const N=new _g(P);N.messages(r.messages),h.rule.options&&(h.rule.options.messages=r.messages,h.rule.options.error=r.error),N.validate(h.value,h.rule.options||r,D=>{const F=[];j&&j.length&&F.push(...j),D&&D.length&&F.push(...D),v(F.length?F:null)})}}let A;if(b.asyncValidator)A=b.asyncValidator(b,h.value,w,h.source,r);else if(b.validator){try{A=b.validator(b,h.value,w,h.source,r)}catch(E){console.error?.(E),r.suppressValidatorError||setTimeout(()=>{throw E},0),w(E.message)}A===!0?w():A===!1?w(typeof b.message=="function"?b.message(b.fullField||b.field):b.message||`${b.fullField||b.field} fails`):A instanceof Array?w(A):A instanceof Error&&w(A.message)}A&&A.then&&A.then(()=>w(),E=>w(E))},h=>{p(h)},i)}getType(e){if(e.type===void 0&&e.pattern instanceof RegExp&&(e.type="pattern"),typeof e.validator!="function"&&e.type&&!Bl.hasOwnProperty(e.type))throw new Error(Ua("Unknown rule type %s",e.type));return e.type||"string"}getValidationMethod(e){if(typeof e.validator=="function")return e.validator;const n=Object.keys(e),s=n.indexOf("message");return s!==-1&&n.splice(s,1),n.length===1&&n[0]==="required"?Bl.required:Bl[this.getType(e)]||void 0}}const Aa="'${name}' is not a valid ${type}",U4={default:"Validation error on field '${name}'",required:"'${name}' is required",enum:"'${name}' must be one of [${enum}]",whitespace:"'${name}' cannot be empty",date:{format:"'${name}' is invalid for format date",parse:"'${name}' could not be parsed as date",invalid:"'${name}' is invalid date"},types:{string:Aa,method:Aa,array:Aa,object:Aa,number:Aa,date:Aa,boolean:Aa,integer:Aa,float:Aa,regexp:Aa,email:Aa,tel:Aa,url:Aa,hex:Aa},string:{len:"'${name}' must be exactly ${len} characters",min:"'${name}' must be at least ${min} characters",max:"'${name}' cannot be longer than ${max} characters",range:"'${name}' must be between ${min} and ${max} characters"},number:{len:"'${name}' must equal ${len}",min:"'${name}' cannot be less than ${min}",max:"'${name}' cannot be greater than ${max}",range:"'${name}' must be between ${min} and ${max}"},array:{len:"'${name}' must be exactly ${len} in length",min:"'${name}' cannot be less than ${min} in length",max:"'${name}' cannot be greater than ${max} in length",range:"'${name}' must be between ${min} and ${max} in length"},pattern:{mismatch:"'${name}' does not match pattern ${pattern}"}},Nx=_g;function RF(t,e){return t.replace(/\\?\$\{\w+\}/g,n=>{if(n.startsWith("\\"))return n.slice(1);const s=n.slice(2,-1);return e[s]})}const Rx="CODE_LOGIC_ERROR";async function b0(t,e,n,s,i){const r={...n};if(delete r.ruleIndex,Nx.warning=()=>{},r.validator){const v=r.validator;r.validator=(...b)=>{try{return v(...b)}catch(S){return console.error(S),Promise.reject(Rx)}}}let c=null;r&&r.type==="array"&&r.defaultField&&(c=r.defaultField,delete r.defaultField);const p=new Nx({[t]:[r]}),g=su(U4,s.validateMessages);p.messages(g);let _=[];try{await Promise.resolve(p.validate({[t]:e},{...s}))}catch(v){v.errors&&(_=v.errors.map(({message:b},S)=>{const x=b===Rx?g.default:b;return y.isValidElement(x)?y.cloneElement(x,{key:`error_${S}`}):x}))}if(!_.length&&c&&Array.isArray(e)&&e.length>0)return(await Promise.all(e.map((b,S)=>b0(`${t}.${S}`,b,c,s,i)))).reduce((b,S)=>[...b,...S],[]);const f={...n,name:t,enum:(n.enum||[]).join(", "),...i};return _.map(v=>typeof v=="string"?RF(v,f):v)}function TF(t,e,n,s,i,r){const c=t.join("."),p=n.map((_,f)=>{const h=_.validator,v={..._,ruleIndex:f};return h&&(v.validator=(b,S,x)=>{let w=!1;const E=h(b,S,(...I)=>{Promise.resolve().then(()=>{Ia(!w,"Your validator function has already return a promise. `callback` will be ignored."),w||x(...I)})});w=E&&typeof E.then=="function"&&typeof E.catch=="function",Ia(w,"`callback` is deprecated. Please return a promise instead."),w&&E.then(()=>{x()}).catch(I=>{x(I||" ")})}),v}).sort(({warningOnly:_,ruleIndex:f},{warningOnly:h,ruleIndex:v})=>!!_==!!h?f-v:_?1:-1);let g;if(i===!0)g=new Promise(async(_,f)=>{for(let h=0;h<p.length;h+=1){const v=p[h],b=await b0(c,e,v,s,r);if(b.length){f([{errors:b,rule:v}]);return}}_([])});else{const _=p.map(f=>
9551b0(c,e,f,s,r).then(h=>({errors:h,rule:f})));g=(i?PF(_):jF(_)).then(f=>Promise.reject(f))}return g.catch(_=>_),g}async function jF(t){return Promise.all(t).then(e=>[].concat(...e))}async function PF(t){let e=0;return new Promise(n=>{t.forEach(s=>{s.then(i=>{i.errors.length&&n([i]),e+=1,e===t.length&&n([])})})})}function pn(t){return k0(t)}function Tx(t,e){let n={};return e.forEach(s=>{const i=is(t,s);n=Ha(n,s,i)}),n}function cu(t,e,n=!1){return t&&t.some(s=>fg(e,s,n))}function fg(t,e,n=!1){return!t||!e||!n&&t.length!==e.length?!1:e.every((s,i)=>t[i]===s)}function MF(t,e){if(t===e)return!0;if(!t&&e||t&&!e||!t||!e||typeof t!="object"||typeof e!="object")return!1;const n=Object.keys(t),s=Object.keys(e);return[...new Set([...n,...s])].every(r=>{const c=t[r],p=e[r];return typeof c=="function"&&typeof p=="function"?!0:c===p})}function LF(t,...e){const n=e[0];return n&&n.target&&typeof n.target=="object"&&t in n.target?n.target[t]:n}function jx(t,e,n){const{length:s}=t;if(e<0||e>=s||n<0||n>=s)return t;const i=t[e],r=e-n;return r>0?[...t.slice(0,n),i,...t.slice(n,e),...t.slice(e+1,s)]:r<0?[...t.slice(0,e),...t.slice(e+1,n+1),i,...t.slice(n+1,s)]:t}const V4=t=>{const e=new MessageChannel;e.port1.onmessage=t,e.port2.postMessage(null)};class OF{namePathList=[];taskId=0;watcherList=new Set;form;constructor(e){this.form=e}register(e){return this.watcherList.add(e),()=>{this.watcherList.delete(e)}}notify(e){e.forEach(n=>{this.namePathList.every(s=>!fg(s,n))&&this.namePathList.push(n)}),this.doBatch()}doBatch(){this.taskId+=1;const e=this.taskId;V4(()=>{if(e===this.taskId&&this.watcherList.size){const n=this.form.getForm(),s=n.getFieldsValue(),i=n.getFieldsValue(!0);this.watcherList.forEach(r=>{r(s,i,this.namePathList)}),this.namePathList=[]}})}}async function DF(){return new Promise(t=>{V4(()=>{Va(()=>{t()})})})}function x0(){return x0=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},x0.apply(this,arguments)}const Ei=[],$l=[];function zf(t,e,n,s,i,r){return typeof t=="function"?t(e,n,"source"in r?{source:r.source}:{}):s!==i}class zF extends y.PureComponent{static contextType=vu;state={resetCount:0};cancelRegisterFunc=null;mounted=!1;touched=!1;dirty=!1;validatePromise;prevValidating;errors=Ei;warnings=$l;constructor(e){if(super(e),e.fieldContext){const{getInternalHooks:n}=e.fieldContext,{initEntityValue:s}=n(Oi);s(this)}}componentDidMount(){const{shouldUpdate:e,fieldContext:n}=this.props;if(this.mounted=!0,n){const{getInternalHooks:s}=n,{registerField:i}=s(Oi);this.cancelRegisterFunc=i(this)}e===!0&&this.reRender()}componentWillUnmount(){this.cancelRegister(),this.triggerMetaEvent(!0),this.mounted=!1}cancelRegister=()=>{const{preserve:e,isListField:n,name:s}=this.props;this.cancelRegisterFunc&&this.cancelRegisterFunc(n,e,pn(s)),this.cancelRegisterFunc=null};getNamePath=()=>{const{name:e,fieldContext:n}=this.props,{prefixName:s=[]}=n;return e!==void 0?[...s,...e]:[]};getRules=()=>{const{rules:e=[],fieldContext:n}=this.props;return e.map(s=>typeof s=="function"?s(n):s)};reRender(){this.mounted&&this.forceUpdate()}refresh=()=>{this.mounted&&this.setState(({resetCount:e})=>({resetCount:e+1}))};metaCache=null;triggerMetaEvent=e=>{const{onMetaChange:n}=this.props;if(n){const s={...this.getMeta(),destroy:e};hc(this.metaCache,s)||n(s),this.metaCache=s}else this.metaCache=null};onStoreChange=(e,n,s)=>{const{shouldUpdate:i,dependencies:r=[],onReset:c}=this.props,{store:p}=s,g=this.getNamePath(),_=this.getValue(e),f=this.getValue(p),h=n&&cu(n,g);switch(s.type==="valueUpdate"&&s.source==="external"&&!hc(_,f)&&(this.touched=!0,this.dirty=!0,this.validatePromise=null,this.errors=Ei,this.warnings=$l,this.triggerMetaEvent()),s.type){case"reset":if(!n||h){this.touched=!1,this.dirty=!1,this.validatePromise=void 0,this.errors=Ei,this.warnings=$l,this.triggerMetaEvent(),c?.(),this.refresh();return}break;case"remove":{if(i&&zf(i,e,p,_,f,s)){this.reRender();return}break}case"setField":{const{data:v}=s;if(h){"touched"in v&&(this.touched=v.touched),"validating"in v&&!("originRCField"in v)&&(this.validatePromise=v.validating?Promise.resolve([]):null),"errors"in v&&(this.errors=v.errors||Ei),"warnings"in v&&(this.warnings=v.warnings||$l),this.dirty=!0,this.triggerMetaEvent(),this.reRender();return}else if("value"in v&&cu(n,g,!0)){this.reRender();return}if(i&&!g.length&&zf(i,e,p,_,f,s)){this.reRender();return}break}
9551case"dependenciesUpdate":{if(r.map(pn).some(b=>cu(s.relatedFields,b))){this.reRender();return}break}default:if(h||(!r.length||g.length||i)&&zf(i,e,p,_,f,s)){this.reRender();return}break}i===!0&&this.reRender()};validateRules=e=>{const n=this.getNamePath(),s=this.getValue(),{triggerName:i,validateOnly:r=!1,delayFrame:c}=e||{},p=Promise.resolve().then(async()=>{if(!this.mounted)return[];const{validateFirst:g=!1,messageVariables:_,validateDebounce:f}=this.props;c&&await DF();let h=this.getRules();if(i&&(h=h.filter(b=>b).filter(b=>{const{validateTrigger:S}=b;return S?k0(S).includes(i):!0})),f&&i&&(await new Promise(b=>{setTimeout(b,f)}),this.validatePromise!==p))return[];const v=TF(n,s,h,e,g,_);return v.catch(b=>b).then((b=Ei)=>{if(this.validatePromise===p){this.validatePromise=null;const S=[],x=[];b.forEach?.(({rule:{warningOnly:w},errors:A=Ei})=>{w?x.push(...A):S.push(...A)}),this.errors=S,this.warnings=x,this.triggerMetaEvent(),this.reRender()}}),v});return r||(this.validatePromise=p,this.dirty=!0,this.errors=Ei,this.warnings=$l,this.triggerMetaEvent(),this.reRender()),p};isFieldValidating=()=>!!this.validatePromise;isFieldTouched=()=>this.touched;isFieldDirty=()=>{if(this.dirty||this.props.initialValue!==void 0)return!0;const{fieldContext:e}=this.props,{getInitialValue:n}=e.getInternalHooks(Oi);return n(this.getNamePath())!==void 0};getErrors=()=>this.errors;getWarnings=()=>this.warnings;isListField=()=>this.props.isListField;isList=()=>this.props.isList;isPreserve=()=>this.props.preserve;getMeta=()=>(this.prevValidating=this.isFieldValidating(),{touched:this.isFieldTouched(),validating:this.prevValidating,errors:this.errors,warnings:this.warnings,name:this.getNamePath(),validated:this.validatePromise===null});getOnlyChild=e=>{if(typeof e=="function"){const s=this.getMeta();return{...this.getOnlyChild(e(this.getControlled(),s,this.props.fieldContext)),isFunction:!0}}const n=Yi(e);return n.length!==1||!y.isValidElement(n[0])?{child:n,isFunction:!1}:{child:n[0],isFunction:!1}};getValue=e=>{const{getFieldsValue:n}=this.props.fieldContext,s=this.getNamePath();return is(e||n(!0),s)};getControlled=(e={})=>{const{name:n,trigger:s="onChange",validateTrigger:i,getValueFromEvent:r,normalize:c,valuePropName:p="value",getValueProps:g,fieldContext:_}=this.props,f=i!==void 0?i:_.validateTrigger,h=this.getNamePath(),{getInternalHooks:v,getFieldsValue:b}=_,{dispatch:S}=v(Oi),x=this.getValue(),w=g||(T=>({[p]:T})),A=e[s],E=n!==void 0?w(x):{},I={...e,...E};return I[s]=(...T)=>{this.touched=!0,this.dirty=!0,this.triggerMetaEvent();const P=this.getValue();let N;r?N=r(...T):N=LF(p,...T),c&&(N=c(N,P,b(!0))),N!==P&&S({type:"updateValue",namePath:h,value:N}),A&&A(...T)},k0(f||[]).forEach(T=>{const P=I[T];I[T]=(...N)=>{P&&P(...N);const{rules:D}=this.props;D&&D.length&&S({type:"validateField",namePath:h,triggerName:T})}}),I};render(){const{resetCount:e}=this.state,{children:n}=this.props,{child:s,isFunction:i}=this.getOnlyChild(n);let r;return i?r=s:y.isValidElement(s)?r=y.cloneElement(s,this.getControlled(s.props)):(Ia(!s,"`children` of Field is not validate ReactElement."),r=s),y.createElement(y.Fragment,{key:e},r)}}function q4({name:t,...e}){const n=y.useContext(vu),s=y.useContext(hg),i=t!==void 0?pn(t):void 0,r=e.isListField??!!s;let c="keep";return r||(c=`_${(i||[]).join("_")}`),y.createElement(zF,x0({key:c,name:i,isListField:r},e,{fieldContext:n}))}function BF({name:t,initialValue:e,children:n,rules:s,validateTrigger:i,isListField:r}){const c=y.useContext(vu),p=y.useContext(hg),_=y.useRef({keys:[],id:0}).current,f=y.useMemo(()=>[...pn(c.prefixName)||[],...pn(t)],[c.prefixName,t]),h=y.useMemo(()=>({...c,prefixName:f}),[c,f]),v=y.useMemo(()=>({getKey:S=>{const x=f.length,w=S[x];return[_.keys[w],S.slice(x+1)]}}),[_,f]);if(typeof n!="function")return Ia(!1,"Form.List only accepts function as children."),null;const b=(S,x,{source:w})=>w==="internal"?!1:S!==x;return y.createElement(hg.Provider,{value:v},y.createElement(vu.Provider,{value:h},y.createElement(q4,{name:[],shouldUpdate:b,rules:s,validateTrigger:i,initialValue:e,isList:!0,isListField:r??!!p},({value:S=[],onChange:x},w)=>{const{getFieldValue:A}=c,E=()=>A(f||[])||[],I={add:(T,P)=>{const N=E();P>=0&&P<=N.length?(_.keys=[..._.keys.slice(0,P),_.id,..._.keys.slice(P)],x([...N.slice(0,P),T,...N.slice(P)])):(_.keys=[..._.keys,_.id],x([...N,T])),_.id+=1},remove:T=>{const P=E(),N=new Set(Array.isArray(T)?T:[T]);N.size<=0||(_.keys=_.keys.filter((D,F)=>!N.has(F)),x(P.filter((D,F)=>!N.has(F))))},move(T,P){if(T===P)return;const N=E();T<0||T>=N.length||P<0||P>=N.length||(_.keys=jx(_.keys,T,P),x(jx(N,T,P)))}};let j=S||[];return Array.isArray(j)||(j=[]),n(j.map((T,P)=>{let N=_.keys[P];return N===void 0&&(_.keys[P]=_.id,N=_.keys[P],_.id+=1),{name:P,key:N,isListField:!0}}),I,w)})))}function $F(t){let e=!1,n=t.length;const s=[];return t.length?new Promise((i,r)=>{t.forEach((c,p)=>{c.catch(g=>(e=!0,g)).then(g=>{n-=1,s[p]=g,!(n>0)&&(e&&r(s),i(s))})})}):Promise.resolve([])}const A0="__@field_split__";function Tp(t){return t.map(e=>`${typeof e}:${e}`).join(A0)}class Qr{kvs=new Map;set(e,n){this.kvs.set(Tp(e),n)}get(e){return this.kvs.get(Tp(e))}getAsPrefix(e){const n=Tp(e),s=n+A0,i=[],r=this.kvs.get(n);
9551return r!==void 0&&i.push(r),this.kvs.forEach((c,p)=>{p.startsWith(s)&&i.push(c)}),i}update(e,n){const s=this.get(e),i=n(s);i?this.set(e,i):this.delete(e)}delete(e){this.kvs.delete(Tp(e))}map(e){return[...this.kvs.entries()].map(([n,s])=>{const i=n.split(A0);return e({key:i.map(r=>{const[,c,p]=r.match(/^([^:]*):(.*)$/);return c==="number"?Number(p):p}),value:s})})}toJSON(){const e={};return this.map(({key:n,value:s})=>(e[n.join(".")]=s,null)),e}}class GF{formHooked=!1;forceRootUpdate;subscribable=!0;store={};fieldEntities=[];initialValues={};callbacks={};validateMessages=null;preserve=null;lastValidatePromise=null;watcherCenter=new OF(this);constructor(e){this.forceRootUpdate=e}getForm=()=>({getFieldValue:this.getFieldValue,getFieldsValue:this.getFieldsValue,getFieldError:this.getFieldError,getFieldWarning:this.getFieldWarning,getFieldsError:this.getFieldsError,isFieldsTouched:this.isFieldsTouched,isFieldTouched:this.isFieldTouched,isFieldValidating:this.isFieldValidating,isFieldsValidating:this.isFieldsValidating,resetFields:this.resetFields,setFields:this.setFields,setFieldValue:this.setFieldValue,setFieldsValue:this.setFieldsValue,validateFields:this.validateFields,submit:this.submit,_init:!0,getInternalHooks:this.getInternalHooks});getInternalHooks=e=>e===Oi?(this.formHooked=!0,{dispatch:this.dispatch,initEntityValue:this.initEntityValue,registerField:this.registerField,useSubscribe:this.useSubscribe,setInitialValues:this.setInitialValues,destroyForm:this.destroyForm,setCallbacks:this.setCallbacks,setValidateMessages:this.setValidateMessages,getFields:this.getFields,setPreserve:this.setPreserve,getInitialValue:this.getInitialValue,registerWatch:this.registerWatch}):(Ia(!1,"`getInternalHooks` is internal usage. Should not call directly."),null);useSubscribe=e=>{this.subscribable=e};prevWithoutPreserves=null;setInitialValues=(e,n)=>{if(this.initialValues=e||{},n){let s=su(e,this.store);this.prevWithoutPreserves?.map(({key:i})=>{s=Ha(s,i,is(e,i))}),this.prevWithoutPreserves=null,this.updateStore(s)}};destroyForm=e=>{if(e)this.updateStore({});else{const n=new Qr;this.getFieldEntities(!0).forEach(s=>{this.isMergedPreserve(s.isPreserve())||n.set(s.getNamePath(),!0)}),this.prevWithoutPreserves=n}};getInitialValue=e=>{const n=is(this.initialValues,e);return e.length?su(n):n};setCallbacks=e=>{this.callbacks=e};setValidateMessages=e=>{this.validateMessages=e};setPreserve=e=>{this.preserve=e};registerWatch=e=>this.watcherCenter.register(e);notifyWatch=(e=[])=>{this.watcherCenter.notify(e)};timeoutId=null;warningUnhooked=()=>{};updateStore=e=>{this.store=e};getFieldEntities=(e=!1)=>e?this.fieldEntities.filter(n=>n.getNamePath().length):this.fieldEntities;getFieldsMap=(e=!1)=>{const n=new Qr;return this.getFieldEntities(e).forEach(s=>{const i=s.getNamePath();n.set(i,s)}),n};getFieldEntitiesForNamePathList=(e,n=!1)=>
9551{if(!e)return this.getFieldEntities(!0);const s=this.getFieldsMap(!0);return n?e.flatMap(i=>{const r=pn(i),c=s.getAsPrefix(r);return c.length?c:[{INVALIDATE_NAME_PATH:r}]}):e.map(i=>{const r=pn(i);return s.get(r)||{INVALIDATE_NAME_PATH:pn(i)}})};getFieldsValue=(e,n)=>{this.warningUnhooked();let s,i;if(e===!0||Array.isArray(e)?(s=e,i=n):e&&typeof e=="object"&&(i=e.filter),s===!0&&!i)return this.store;const r=this.getFieldEntitiesForNamePathList(Array.isArray(s)?s:null,!0),c=[],p=[];r.forEach(_=>{const f=_.INVALIDATE_NAME_PATH||_.getNamePath();if(_.isList?.()){p.push(f);return}if(!i)c.push(f);else{const h="getMeta"in _?_.getMeta():null;i(h)&&c.push(f)}});let g=Tx(this.store,c.map(pn));return p.forEach(_=>{is(g,_)||(g=Ha(g,_,[]))}),g};getFieldValue=e=>{this.warningUnhooked();const n=pn(e);return is(this.store,n)};getFieldsError=e=>(this.warningUnhooked(),this.getFieldEntitiesForNamePathList(e).map((s,i)=>s&&!s.INVALIDATE_NAME_PATH?{name:s.getNamePath(),errors:s.getErrors(),warnings:s.getWarnings()}:{name:pn(e[i]),errors:[],warnings:[]}));getFieldError=e=>{this.warningUnhooked();const n=pn(e);return this.getFieldsError([n])[0].errors};getFieldWarning=e=>{this.warningUnhooked();const n=pn(e);return this.getFieldsError([n])[0].warnings};isFieldsTouched=(...e)=>{this.warningUnhooked();const[n,s]=e;let i,r=!1;e.length===0?i=null:e.length===1?Array.isArray(n)?(i=n.map(pn),r=!1):(i=null,r=n):(i=n.map(pn),r=s);const c=this.getFieldEntities(!0),p=h=>h.isFieldTouched();if(!i)return r?c.every(h=>p(h)||h.isList()):c.some(p);const g=new Qr;i.forEach(h=>{g.set(h,[])}),c.forEach(h=>{const v=h.getNamePath();i.forEach(b=>{b.every((S,x)=>v[x]===S)&&g.update(b,S=>[...S,h])})});const _=h=>h.some(p),f=g.map(({value:h})=>h);return r?f.every(_):f.some(_)};isFieldTouched=e=>(this.warningUnhooked(),this.isFieldsTouched([e]));isFieldsValidating=e=>{this.warningUnhooked();const n=this.getFieldEntities();if(!e)return n.some(i=>i.isFieldValidating());const s=e.map(pn);return n.some(i=>{const r=i.getNamePath();return cu(s,r)&&i.isFieldValidating()})};isFieldValidating=e=>(this.warningUnhooked(),this.isFieldsValidating([e]));resetWithFieldInitialValue=(e={})=>{const n=new Qr,s=this.getFieldEntities(!0);s.forEach(c=>{const{initialValue:p}=c.props,g=c.getNamePath();if(p!==void 0){const _=n.get(g)||new Set;_.add({entity:c,value:p}),n.set(g,_)}});const i=c=>{c.forEach(p=>{const{initialValue:g}=p.props;if(g!==void 0){const _=p.getNamePath();if(this.getInitialValue(_)!==void 0)Ia(!1,`Form already set 'initialValues' with path '${_.join(".")}'. Field can not overwrite it.`);else{const h=n.get(_);if(h&&h.size>1)Ia(!1,`Multiple Field with path '${_.join(".")}' set 'initialValue'. Can not decide which one to pick.`);else if(h){const v=this.getFieldValue(_);!p.isListField()&&(!e.skipExist||v===void 0)&&this.updateStore(Ha(this.store,_,[...h][0].value))}}}})};let r;e.entities?r=e.entities:e.namePathList?(r=[],e.namePathList.forEach(c=>{const p=n.get(c);p&&r.push(...[...p].map(g=>g.entity))})):r=s,i(r)};resetFields=e=>{this.warningUnhooked();const n=this.store;if(!e){this.updateStore(su(this.initialValues)),this.resetWithFieldInitialValue(),this.notifyObservers(n,null,{type:"reset"}),this.notifyWatch();return}const s=e.map(pn);s.forEach(i=>{const r=this.getInitialValue(i);this.updateStore(Ha(this.store,i,r))}),this.resetWithFieldInitialValue({namePathList:s}),this.notifyObservers(n,s,{type:"reset"}),this.notifyWatch(s)};setFields=e=>{this.warningUnhooked();const n=this.store,s=[];e.forEach(i=>{const{name:r,...c}=i,p=pn(r);s.push(p),"value"in c&&this.updateStore(Ha(this.store,p,c.value)),this.notifyObservers(n,[p],{type:"setField",data:i})}),this.notifyWatch(s)};getFields=()=>this.getFieldEntities(!0).map(s=>{const i=s.getNamePath(),c={...s.getMeta(),name:i,value:this.getFieldValue(i)};return Object.defineProperty(c,"originRCField",{value:!0}),c});initEntityValue=e=>{const{initialValue:n}=e.props;if(n!==void 0){const s=e.getNamePath();is(this.store,s)===void 0&&this.updateStore(Ha(this.store,s,n))}};isMergedPreserve=e=>(e!==void 0?e:this.preserve)??!0;registerField=e=>{this.fieldEntities.push(e);const n=e.getNamePath();if(this.notifyWatch([n]),e.props.initialValue!==void 0){const s=this.store;this.resetWithFieldInitialValue({entities:[e],skipExist:!0}),this.notifyObservers(s,[e.getNamePath()],{type:"valueUpdate",source:"internal"})}return(s,i,r=[])=>{if(this.fieldEntities=this.fieldEntities.filter(c=>c!==e),!this.isMergedPreserve(i)&&(!s||r.length>1)){const c=s?void 0:this.getInitialValue(n);if(n.length&&this.getFieldValue(n)!==c&&this.fieldEntities.every(p=>!fg(p.getNamePath(),n))){const p=this.store;this.updateStore(Ha(p,n,c,!0)),this.notifyObservers(p,[n],{type:"remove"}
9551),this.triggerDependenciesUpdate(p,n)}}this.notifyWatch([n])}};dispatch=e=>{switch(e.type){case"updateValue":{const{namePath:n,value:s}=e;this.updateValue(n,s);break}case"validateField":{const{namePath:n,triggerName:s}=e;this.validateFields([n],{triggerName:s});break}}};notifyObservers=(e,n,s)=>{if(this.subscribable){const i={...s,store:this.getFieldsValue(!0)};this.getFieldEntities().forEach(({onStoreChange:r})=>{r(e,n,i)})}else this.forceRootUpdate()};triggerDependenciesUpdate=(e,n)=>{const s=this.getDependencyChildrenFields(n);return s.length&&this.validateFields(s,{delayFrame:!0}),this.notifyObservers(e,s,{type:"dependenciesUpdate",relatedFields:[n,...s]}),s};updateValue=(e,n)=>{const s=pn(e),i=this.store;this.updateStore(Ha(this.store,s,n)),this.notifyObservers(i,[s],{type:"valueUpdate",source:"internal"}),this.notifyWatch([s]);const r=this.triggerDependenciesUpdate(i,s),{onValuesChange:c}=this.callbacks;if(c){const p=Tx(this.store,[s]),g=this.getFieldsValue(),_=Ha(g,s,is(p,s));c(p,_)}this.triggerOnFieldsChange([s,...r])};setFieldsValue=e=>{this.warningUnhooked();const n=this.store;if(e){const s=su(this.store,e);this.updateStore(s)}this.notifyObservers(n,null,{type:"valueUpdate",source:"external"}),this.notifyWatch()};setFieldValue=(e,n)=>{this.setFields([{name:e,value:n,errors:[],warnings:[],touched:!0}])};getDependencyChildrenFields=e=>{const n=new Set,s=[],i=new Qr;this.getFieldEntities().forEach(c=>{const{dependencies:p}=c.props;(p||[]).forEach(g=>{const _=pn(g);i.update(_,(f=new Set)=>(f.add(c),f))})});const r=c=>{(i.get(c)||new Set).forEach(g=>{if(!n.has(g)){n.add(g);const _=g.getNamePath();g.isFieldDirty()&&_.length&&(s.push(_),r(_))}})};return r(e),s};triggerOnFieldsChange=(e,n)=>{const{onFieldsChange:s}=this.callbacks;if(s){const i=this.getFields();if(n){const c=new Qr;n.forEach(({name:p,errors:g})=>{c.set(p,g)}),i.forEach(p=>{p.errors=c.get(p.name)||p.errors})}const r=i.filter(({name:c})=>cu(e,c));r.length&&s(r,i)}};validateFields=(e,n)=>{this.warningUnhooked();let s,i;Array.isArray(e)||typeof e=="string"||typeof n=="string"?(s=e,i=n):i=e;const r=!!s,c=r?s.map(pn):[],p=[...c],g=[],_=String(Date.now()),f=new Set,{recursive:h,dirty:v}=i||{};this.getFieldEntities(!0).forEach(w=>{const A=w.getNamePath();if(r||((!w.isList()||!c.some(E=>fg(E,A,!0)))&&p.push(A),c.push(A)),!(!w.props.rules||!w.props.rules.length)&&!(v&&!w.isFieldDirty())&&(f.add(A.join(_)),!r||cu(c,A,h))){const E=w.validateRules({validateMessages:{...U4,...this.validateMessages},...i});g.push(E.then(()=>({name:A,errors:[],warnings:[]})).catch(I=>{const j=[],T=[];return I.forEach?.(({rule:{warningOnly:P},errors:N})=>{P?T.push(...N):j.push(...N)}),j.length?Promise.reject({name:A,errors:j,warnings:T}):{name:A,errors:j,warnings:T}}))}});const b=$F(g);this.lastValidatePromise=b,b.catch(w=>w).then(w=>{const A=w.map(({name:E})=>E);this.notifyObservers(this.store,A,{type:"validateFinish"}),this.triggerOnFieldsChange(A,w)});const S=b.then(()=>this.lastValidatePromise===b?Promise.resolve(this.getFieldsValue(p)):Promise.reject([])).catch(w=>{const A=w.filter(I=>I&&I.errors.length),E=A[0]?.errors?.[0];return Promise.reject({message:E,values:this.getFieldsValue(c),errorFields:A,outOfDate:this.lastValidatePromise!==b})});S.catch(w=>w);const x=c.filter(w=>f.has(w.join(_)));return this.triggerOnFieldsChange(x),S};submit=()=>{this.warningUnhooked(),this.validateFields().then(e=>{const{onFinish:n}=this.callbacks;if(n)try{n(e)}catch(s){console.error(s)}}).catch(e=>{const{onFinishFailed:n}=this.callbacks;n&&n(e)})}}function K4(t){const e=y.useRef(null),[,n]=y.useState({});if(!e.current)if(t)e.current=t;else{const s=()=>{n({})},i=new GF(s);e.current=i.getForm()}return[e.current]}const C0=y.createContext({triggerFormChange:()=>{},triggerFormFinish:()=>{},registerForm:()=>{},unregisterForm:()=>{}}),HF=({validateMessages:t,onFormChange:e,onFormFinish:n,children:s})=>{const i=y.useContext(C0),r=y.useRef({});return y.createElement(C0.Provider,{value:{...i,validateMessages:{...i.validateMessages,...t},triggerFormChange:(c,p)=>{e&&e(c,{changedFields:p,forms:r.current}),i.triggerFormChange(c,p)},triggerFormFinish:(c,p)=>{n&&n(c,{values:p,forms:r.current}),i.triggerFormFinish(c,p)},registerForm:(c,p)=>{c&&(r.current={...r.current,[c]:p}),i.registerForm(c,p)},unregisterForm:c=>{const p={...r.current};delete p[c],r.current=p,i.unregisterForm(c)}}},s)};function S0(){return S0=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},S0.apply(this,arguments)}const FF=(t,e)=>{const{name:n,initialValues:s,fields:i,form:r,preserve:c,children:p,component:g="form",validateMessages:_,validateTrigger:f="onChange",onValuesChange:h,onFieldsChange:v,onFinish:b,onFinishFailed:S,clearOnDestroy:x,...w}=t,A=y.useRef(null),E=y.useContext(C0),[I]=K4(r),{useSubscribe:j,setInitialValues:T,setCallbacks:P,setValidateMessages:N,setPreserve:D,destroyForm:F}=I.getInternalHooks(Oi);y.useImperativeHandle(e,()=>({...I,nativeElement:A.current})),y.useEffect(()=>(E.registerForm(n,I),()=>{E.unregisterForm(n)}),[E,I,n]),N({...E.validateMessages,..._}),P({onValuesChange:h,onFieldsChange:(U,...H)=>{E.triggerFormChange(n,U),v&&v(U,...H)},onFinish:U=>{E.triggerFormFinish(n,U),b&&b(U)},onFinishFailed:S}),D(c);const B=y.useRef(null);T(s,!B.current),B.current||(B.current=!0),y.useEffect(()=>()=>F(x),[]);let L;const $=typeof p=="function";if($){const U=I.getFieldsValue(!0);L=p(U,I)}else L=p;j(!$);const q=y.useRef(null);y.useEffect(()=>{MF(q.current||[],i||[])||I.setFields(i||[]),q.current=i},[i,I]);const Q=y.useMemo(()=>({...I,validateTrigger:f}),[I,f]),V=y.createElement(hg.Provider,{value:null},y.createElement(vu.Provider,{value:Q},L));return g===!1?V:y.createElement(g,S0({},w,{ref:A,onSubmit:U=>{U.preventDefault(),U.stopPropagation(),I.submit()},onReset:U=>{U.preventDefault(),I.resetFields(),w.onReset?.(U)}}),V)};function Bf(t){try{return JSON.stringify(t)}catch{return Math.random()}}function UF(...t){const[e,n={}]=t,s=tF(n)?{form:n}:n,i=s.form,[r,c]=y.useState(()=>typeof e=="function"?e({}):void 0),p=y.useMemo(()=>Bf(r),[r]),g=y.useRef(p);g.current=p;const _=y.useContext(vu),f=i||_,h=f&&f._init,{getFieldsValue:v,getInternalHooks:b}=f,{registerWatch:S}=b(Oi),x=an((A,E)=>{const I=s.preserve?E??v(!0):A??v(),j=typeof e=="function"?e(I):is(I,pn(e));Bf(r)!==Bf(j)&&c(j)}),w=typeof e=="function"?e:JSON.stringify(e);return y.useEffect(()=>{h&&x()},[h,w]),y.useEffect(()=>h?S((E,I)=>{x(E,I)}
9551):void 0,[h]),r}const VF=y.forwardRef(FF),Hc=VF;Hc.FormProvider=HF;Hc.Field=q4;Hc.List=BF;Hc.useForm=K4;Hc.useWatch=UF;const qF=y.createContext(void 0),em=t=>{const{prefixCls:e,className:n,style:s,size:i,shape:r}=t,c=At({[`${e}-lg`]:i==="large",[`${e}-sm`]:i==="small"}),p=At({[`${e}-circle`]:r==="circle",[`${e}-square`]:r==="square",[`${e}-round`]:r==="round"}),g=y.useMemo(()=>nH(i)?{width:i,height:i,lineHeight:`${i}px`}:{},[i]);return y.createElement("span",{className:At(e,c,p,n),style:{...g,...s}})},KF=new ps("ant-skeleton-loading",{"0%":{backgroundPosition:"100% 50%"},"100%":{backgroundPosition:"0 50%"}}),$1=t=>({height:t,lineHeight:Ot(t)}),ei=t=>({width:t,...$1(t)}),WF=t=>({background:t.skeletonLoadingBackground,backgroundSize:"400% 100%",animationName:KF,animationDuration:t.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite"}),$f=(t,e)=>({width:e(t).mul(5).equal(),minWidth:e(t).mul(5).equal(),...$1(t)}),XF=t=>{const{skeletonAvatarCls:e,gradientFromColor:n,controlHeight:s,controlHeightLG:i,controlHeightSM:r}=t;return{[e]:{display:"inline-block",verticalAlign:"top",background:n,...ei(s)},[`${e}${e}-circle`]:{borderRadius:"50%"},[`${e}${e}-lg`]:{...ei(i)},[`${e}${e}-sm`]:{...ei(r)}}},YF=t=>{const{controlHeight:e,borderRadiusSM:n,skeletonInputCls:s,controlHeightLG:i,controlHeightSM:r,gradientFromColor:c,calc:p}=t;return{[s]:{display:"inline-block",verticalAlign:"top",background:c,borderRadius:n,...$f(e,p)},[`${s}-lg`]:{...$f(i,p)},[`${s}-sm`]:{...$f(r,p)}}},W4=t=>{const{gradientFromColor:e,borderRadiusSM:n,imageSizeBase:s,calc:i}=t;return{display:"inline-flex",alignItems:"center",justifyContent:"center",verticalAlign:"middle",background:e,borderRadius:n,...ei(i(s).mul(2).equal())}},QF=t=>({[t.skeletonNodeCls]:{...W4(t)}}),JF=t=>{const{skeletonImageCls:e,imageSizeBase:n,calc:s}=t;return{[e]:{...W4(t),[`${e}-path`]:{fill:"#bfbfbf"},[`${e}-svg`]:{...ei(n),maxWidth:s(n).mul(4).equal(),maxHeight:s(n).mul(4).equal()},[`${e}-svg${e}-svg-circle`]:{borderRadius:"50%"}},[`${e}${e}-circle`]:{borderRadius:"50%"}}},Gf=(t,e,n)=>{const{skeletonButtonCls:s}=t;return{[`${n}${s}-circle`]:{width:e,minWidth:e,borderRadius:"50%"},[`${n}${s}-round`]:{borderRadius:e}}},Hf=(t,e)=>({width:e(t).mul(2).equal(),minWidth:e(t).mul(2).equal(),...$1(t)}),ZF=t=>{const{borderRadiusSM:e,skeletonButtonCls:n,controlHeight:s,controlHeightLG:i,controlHeightSM:r,gradientFromColor:c,calc:p}=t;return{[n]:{display:"inline-block",verticalAlign:"top",background:c,borderRadius:e,width:p(s).mul(2).equal(),minWidth:p(s).mul(2).equal(),...Hf(s,p)},...Gf(t,s,n),[`${n}-lg`]:{...Hf(i,p)},...Gf(t,i,`${n}-lg`),[`${n}-sm`]:{...Hf(r,p)},...Gf(t,r,`${n}-sm`)}},tU=t=>{const{componentCls:e,skeletonAvatarCls:n,skeletonTitleCls:s,skeletonParagraphCls:i,skeletonButtonCls:r,skeletonInputCls:c,skeletonNodeCls:p,skeletonImageCls:g,controlHeight:_,controlHeightLG:f,controlHeightSM:h,gradientFromColor:v,padding:b,marginSM:S,borderRadius:x,titleHeight:w,blockRadius:A,paragraphLiHeight:E,controlHeightXS:I,paragraphMarginTop:j}=t;return{[e]:{display:"table",width:"100%",[`${e}-header`]:{display:"table-cell",paddingInlineEnd:b,verticalAlign:"top",[n]:{display:"inline-block",verticalAlign:"top",background:v,...ei(_)},[`${n}-circle`]:{borderRadius:"50%"},[`${n}-lg`]:{...ei(f)},[`${n}-sm`]:{...ei(h)}},[`${e}-section`]:{display:"table-cell",width:"100%",verticalAlign:"top",[s]:{width:"100%",height:w,background:v,borderRadius:A,[`+ ${i}`]:{marginBlockStart:h}},[i]:{padding:0,"> li":{width:"100%",height:E,listStyle:"none",background:v,borderRadius:A,"+ li":{marginBlockStart:I}}},[`${i}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${e}-section`]:{[`${s}, ${i} > li`]:{borderRadius:x}}},[`${e}-with-avatar ${e}-section`]:{[s]:{marginBlockStart:S,[`+ ${i}`]:{marginBlockStart:j}}},[`${e}${e}-element`]:{display:"inline-block",width:"auto",...ZF(t),...XF(t),...YF(t),...QF(t),...JF(t)},[`${e}${e}-block`]:{width:"100%",[r]:{width:"100%"},[c]:{width:"100%"}},[`${e}${e}-active`]:{[`
9552        ${s},
9553        ${i} > li,
9554        ${n},
9555        ${r},
9556        ${c},
9557        ${p},
9558        ${g}
9559      `]:{...WF(t)}}}},eU=t=>{const{colorFillContent:e,colorFill:n}=t,s=e,i=n;return{color:s,colorGradientEnd:i,gradientFromColor:s,gradientToColor:i,titleHeight:t.controlHeight/2,blockRadius:t.borderRadiusSM,paragraphMarginTop:t.marginLG+t.marginXXS,paragraphLiHeight:t.controlHeight/2}},Fc=Jg("Skeleton",t=>{const{componentCls:e,calc:n}=t,s=Nu(t,{skeletonAvatarCls:`${e}-avatar`,skeletonTitleCls:`${e}-title`,skeletonParagraphCls:`${e}-paragraph`,skeletonButtonCls:`${e}-button`,skeletonInputCls:`${e}-input`,skeletonNodeCls:`${e}-node`,skeletonImageCls:`${e}-image`,imageSizeBase:n(t.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackgroun
9559d:`linear-gradient(90deg, ${t.gradientFromColor} 25%, ${t.gradientToColor} 37%, ${t.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:"1.4s"});return tU(s)},eU,{deprecatedTokens:[["color","gradientFromColor"],["colorGradientEnd","gradientToColor"]]}),nU=t=>{const{prefixCls:e,className:n,classNames:s,rootClassName:i,active:r,style:c,styles:p,shape:g="circle",size:_,...f}=t,{getPrefixCls:h}=y.useContext(Jn),v=h("skeleton",e),[b,S]=Fc(v),x=Tu(A=>_??A),w=At(v,`${v}-element`,{[`${v}-active`]:r},s?.root,n,i,b,S);return y.createElement("div",{className:w,style:p?.root},y.createElement(em,{prefixCls:`${v}-avatar`,className:s?.content,style:{...p?.content,...c},shape:g,size:x,...f}))},aU=t=>{const{prefixCls:e,className:n,rootClassName:s,classNames:i,active:r,style:c,styles:p,block:g=!1,size:_,...f}=t,{getPrefixCls:h}=y.useContext(Jn),v=h("skeleton",e),[b,S]=Fc(v),x=Tu(A=>_??A),w=At(v,`${v}-element`,{[`${v}-active`]:r,[`${v}-block`]:g},i?.root,n,s,b,S);return y.createElement("div",{className:w,style:p?.root},y.createElement(em,{prefixCls:`${v}-button`,className:i?.content,style:{...p?.content,...c},size:x,...f}))},X4=t=>{const{prefixCls:e,className:n,classNames:s,rootClassName:i,internalClassName:r,style:c,styles:p,active:g,children:_}=t,{getPrefixCls:f}=y.useContext(Jn),h=f("skeleton",e),[v,b]=Fc(h),S=At(h,`${h}-element`,{[`${h}-active`]:g},v,s?.root,n,i,b);return y.createElement("div",{className:S,style:p?.root},y.createElement("div",{className:At(s?.content,r||`${h}-node`),style:{...p?.content,...c}},_))},sU=t=>{const{getPrefixCls:e}=y.useContext(Jn),n=e("skeleton",t.prefixCls);return y.createElement(X4,{...t,internalClassName:`${n}-image`},y.createElement("svg",{viewBox:"0 0 1098 1024",xmlns:"http://www.w3.org/2000/svg",className:`${n}-image-svg`,"aria-hidden":"true",focusable:"false"},y.createElement("title",null,"Image placeholder"),y.createElement("path",{d:"M365.7 329.1q0 45.8-32 77.7t-77.7 32-77.7-32-32-77.7 32-77.6 77.7-32 77.7 32 32 77.6M951 548.6v256H146.3V694.9L329 512l91.5 91.4L713 311zm54.8-402.3H91.4q-7.4 0-12.8 5.4T73 164.6v694.8q0 7.5 5.5 12.9t12.8 5.4h914.3q7.5 0 12.9-5.4t5.4-12.9V164.6q0-7.5-5.4-12.9t-12.9-5.4m91.4 18.3v694.8q0 37.8-26.8 64.6t-64.6 26.9H91.4q-37.7 0-64.6-26.9T0 859.4V164.6q0-37.8 26.8-64.6T91.4 73h914.3q37.8 0 64.6 26.9t26.8 64.6",className:`${n}-image-path`})))},oU=t=>{const{prefixCls:e,className:n,classNames:s,rootClassName:i,active:r,block:c,style:p,styles:g,size:_,...f}=t,{getPrefixCls:h}=y.useContext(Jn),v=h("skeleton",e),[b,S]=Fc(v),x=Tu(A=>_??A),w=At(v,`${v}-element`,{[`${v}-active`]:r,[`${v}-block`]:c},s?.root,n,i,b,S);return y.createElement("div",{className:w,style:g?.root},y.createElement(em,{prefixCls:`${v}-input`,className:s?.content,style:{...g?.content,...p},size:x,...f}))},iU=(t,e)=>{const{width:n,rows:s=2}=e;if(Array.isArray(n))return n[t];if(s-1===t)return n},rU=t=>{const{prefixCls:e,className:n,style:s,rows:i=0}=t,r=Array.from({length:i}).map((c,p)=>y.createElement("li",{key:p,style:{width:iU(p,t)}}));return y.createElement("ul",{className:At(e,n),style:s},r)},uU=({prefixCls:t,className:e,width:n,style:s})=>y.createElement("h3",{className:At(t,e),style:{width:n,...s}});function Ff(t){return Zg(t)?t:{}}function lU(t,e){return t&&!e?{size:"large",shape:"square"}:{size:"large",shape:"circle"}}function cU(t,e){return!t&&e?{width:"38%"}:t&&e?{width:"50%"}:{}}function dU(t,e){const n={};return(!t||!e)&&(n.width="61%"),!t&&e?n.rows=3:n.rows=2,n}const ju=Gt.forwardRef((t,e)=>{const{prefixCls:n,loading:s,className:i,rootClassName:r,classNames:c,style:p,styles:g,children:_,avatar:f=!1,title:h=!0,paragraph:v=!0,active:b,round:S}=t,{getPrefixCls:x,direction:w,className:A,style:E,classNames:I,styles:j}=Oc("skeleton"),T=x("skeleton",n),[P,N]=Fc(T),D={...t,avatar:f,title:h,paragraph:v},F=vo(E),B=vo(p),[L,$]=Bc([I,c],[j,F,g,B],{props:D}),q=Gt.useRef(null);if(Gt.useImperativeHandle(e,()=>({nativeElement:q.current})),s||!("loading"in t)){const Q=!!f,V=!!h,U=!!v;let H;if(Q){const M={className:L.avatar,prefixCls:`${T}-avatar`,...lU(V,U),...Ff(f),style:$.avatar};H=Gt.createElement("div",{className:At(L.header,`${T}-header`),style:$.header},Gt.createElement(em,{...M}))}let st;if(V||U){let M;if(V){const rt={className:L.title,prefixCls:`${T}-title`,...cU(Q,U),...Ff(h),style:$.title};M=Gt.createElement(uU,{...rt})}let gt;if(U){const rt={className:L.paragraph,prefixCls:`${T}-paragraph`,...dU(Q,V),...Ff(v),style:$.paragraph};gt=Gt.createElement(rU,{...rt})}st=Gt.createElement("div",{className:At(L.section,`${T}-section`),style:$.section},M,gt)}const lt=At(T,{[`${T}-with-avatar`]:Q,[`${T}-active`]:b,[`${T}-rtl`]:w==="rtl",[`${T}-round`]:S},L.root,A,i,r,P,N);return Gt.createElement("div",{ref:q,className:lt,style:$.root},H,st)}return _??null});ju.Button=aU;ju.Avatar=nU;ju.Input=oU;ju.Image=sU;ju.Node=X4;const Jr=void 0;function pU(t,e){const{prefixCls:n,invalidate:s,item:i,renderItem:r,responsive:c,responsiveDisabled:p,registerSize:g,itemKey:_,className:f,style:h,children:v,display:b,order:S,component:x="div",...w}=t,A=c&&!b;function E(N){g(_,N)}y.useEffect(()=>()=>{E(null)},[]);const I=r&&i!==Jr?r(i,{index:S}):v;let j;
9559s||(j={opacity:A?0:1,height:A?0:Jr,overflowY:A?"hidden":Jr,order:c?S:Jr,pointerEvents:A?"none":Jr,position:A?"absolute":Jr});const T={};A&&(T["aria-hidden"]=!0);let P=y.createElement(x,Ks({className:At(!s&&n,f),style:{...j,...h}},T,w,{ref:e}),I);return c&&(P=y.createElement(Hi,{onResize:({offsetWidth:N})=>{E(N)},disabled:p},P)),P}const Xl=y.forwardRef(pU);function gU(t){if(typeof MessageChannel>"u")Va(t);else{const e=new MessageChannel;e.port1.onmessage=()=>t(),e.port2.postMessage(void 0)}}function mU(){const t=y.useRef(null);return n=>{t.current||(t.current=[],gU(()=>{Ng.unstable_batchedUpdates(()=>{t.current.forEach(s=>{s()}),t.current=null})})),t.current.push(n)}}function Zr(t,e){const[n,s]=y.useState(e),i=an(r=>{t(()=>{s(r)})});return[n,i]}const kg=Gt.createContext(null),hU=(t,e)=>{const n=y.useContext(kg);if(!n){const{component:p="div",...g}=t;return y.createElement(p,Ks({},g,{ref:e}))}const{className:s,...i}=n,{className:r,...c}=t;return y.createElement(kg.Provider,{value:null},y.createElement(Xl,Ks({ref:e,className:At(s,r)},i,c)))},_U=y.forwardRef(hU),Y4="responsive",Q4="invalidate";function fU(t){return`+ ${t.length} ...`}function kU(t,e){const{prefixCls:n="rc-overflow",data:s=[],renderItem:i,renderRawItem:r,itemKey:c,itemWidth:p=10,ssr:g,style:_,className:f,maxCount:h,renderRest:v,renderRawRest:b,prefix:S,suffix:x,component:w="div",itemComponent:A,onVisibleChange:E,...I}=t,j=g==="full",T=mU(),[P,N]=Zr(T,null),D=P||0,[F,B]=Zr(T,new Map),[L,$]=Zr(T,0),[q,Q]=Zr(T,0),[V,U]=Zr(T,0),[H,st]=Zr(T,0),[lt,M]=y.useState(null),[gt,rt]=y.useState(null),O=y.useMemo(()=>gt===null&&j?Number.MAX_SAFE_INTEGER:gt||0,[gt,P]),[z,Y]=y.useState(!1),it=`${n}-item`,W=Math.max(L,q),ut=h===Y4,ht=s.length&&ut,yt=h===Q4,ft=ht||typeof h=="number"&&s.length>h,mt=y.useMemo(()=>{let Ct=s;return ht?P===null&&j?Ct=s:Ct=s.slice(0,Math.min(s.length,D/p)):typeof h=="number"&&(Ct=s.slice(0,h)),Ct},[s,p,P,h,ht]),wt=y.useMemo(()=>ht?s.slice(O+1):s.slice(mt.length),[s,mt,ht,O]),It=y.useCallback((Ct,bt)=>typeof c=="function"?c(Ct):(c&&Ct?.[c])??bt,[c]),Pt=y.useCallback(i||(Ct=>Ct),[i]);function Nt(Ct,bt,ae){gt===Ct&&(bt===void 0||bt===lt)||(rt(Ct),ae||(Y(Ct<s.length-1),E?.(Ct)),bt!==void 0&&M(bt))}function kt(Ct,bt){N(bt.clientWidth)}function pt(Ct,bt){B(ae=>{const pe=new Map(ae);return bt===null?pe.delete(Ct):pe.set(Ct,bt),pe})}function Bt(Ct,bt){Q(bt),$(q)}function ne(Ct,bt){U(bt)}function Xt(Ct,bt){st(bt)}function Ut(Ct){return F.get(It(mt[Ct],Ct))}sa(()=>{if(D&&typeof W=="number"&&mt){let Ct=V+H;const bt=mt.length,ae=bt-1;if(!bt){Nt(0,null);return}for(let pe=0;pe<bt;pe+=1){let ve=Ut(pe);if(j&&(ve=ve||0),ve===void 0){Nt(pe-1,void 0,!0);break}if(Ct+=ve,ae===0&&Ct<=D||pe===ae-1&&Ct+Ut(ae)<=D){Nt(ae,null);break}else if(Ct+W>D){Nt(pe-1,Ct-ve-H+q);break}}x&&Ut(0)+H>D&&M(null)}},[D,F,q,V,H,It,mt]);const Se=z&&!!wt.length;let ue={};lt!==null&&ht&&(ue={position:"absolute",top:0,insetInlineStart:lt});const ge={prefixCls:it,responsive:ht,component:A,invalidate:yt},at=r?(Ct,bt)=>{const ae=It(Ct,bt);return y.createElement(kg.Provider,{key:ae,value:{...ge,order:bt,item:Ct,itemKey:ae,registerSize:pt,display:bt<=O}},r(Ct,bt))}:(Ct,bt)=>{const ae=It(Ct,bt);return y.createElement(Xl,Ks({},ge,{order:bt,key:ae,item:Ct,renderItem:Pt,itemKey:ae,registerSize:pt,display:bt<=O}))},_t={order:Se?O:Number.MAX_SAFE_INTEGER,className:`${it}-rest`,registerSize:Bt,display:Se},Tt=v||fU,jt=b?y.createElement(kg.Provider,{value:{...ge,..._t}},b(wt)):y.createElement(Xl,Ks({},ge,_t),typeof Tt=="function"?Tt(wt):Tt),Ht=y.createElement(w,Ks({className:At(!yt&&n,f),style:_,ref:e},I),S&&y.createElement(Xl,Ks({},ge,{responsive:ut,responsiveDisabled:!ht,order:-1,className:`${it}-prefix`,registerSize:ne,display:!0}),S),mt.map(at),ft?jt:null,x&&y.createElement(Xl,Ks({},ge,{responsive:ut,responsiveDisabled:!ht,order:O,className:`${it}-suffix`,registerSize:Xt,display:!0,style:ue}),x));return ut?y.createElement(Hi,{onResize:kt,disabled:!ht},Ht):Ht}const ni=y.forwardRef(kU);ni.Item=_U;ni.RESPONSIVE=Y4;ni.INVALIDATE=Q4;const vU=(t,e,n,s)=>{const i=y.useContext(Jn),{variant:r,[t]:c}=i,p=y.useContext(qF),_=c?.variant??(void 0)?.variant,f=typeof e<"u"||n===!1||typeof p<"u"||typeof _<"u"||typeof r<"u";let h;typeof e<"u"?h=e:n===!1?h="borderless":h=p??_??r??"outlined";const v=c$.includes(h);return[h,v,f]},{ESC:yU,TAB:bU}=ys;function xU({visible:t,triggerRef:e,onVisibleChange:n,autoFocus:s,overlayRef:i}){const r=y.useRef(!1),c=()=>{t&&(e.current?.focus?.(),n?.(!1))},p=()=>i.current?.focus?(i.current.focus(),r.current=!0,!0):!1,g=_=>{switch(_.keyCode){case yU:c();break;case bU:{let f=!1;r.current||(f=p()),f?_.preventDefault():c();break}}};y.useEffect(()=>t?(window.addEventListener("keydown",g),s&&Va(p,3),()=>{window.removeEventListener("keydown",g),r.current=!1}):()=>{r.current=!1},[t])}const AU=y.forwardRef((t,e)=>{const{overlay:n,arrow:s,prefixCls:i}=t,r=y.useMemo(()=>{let p;return typeof n=="function"?p=n():p=n,p},[n]),c=Pc(e,Eu(r));return Gt.createElement(Gt.Fragment,null,s&&Gt.createElement("div",{className:`${i}-arrow`}),Gt.cloneElement(r,{ref:Lc(r)?c:void 0}))}),tu={adjustX:1,adjustY:1},eu=[0,0],CU={topLeft:{points:["bl","tl"],overflow:tu,offset:[0,-4],targetOffset:eu},top:{points:["bc","tc"],overflow:tu,offset:[0,-4],targetOffset:eu},topRight:{points:["br","tr"],overflow:tu,offset:[0,-4],targetOffset:eu},bottomLeft:{points:["tl","bl"],overflow:tu,offset:[0,4],targetOffset:eu},bottom:{points:["tc","bc"],overflow:tu,offset:[0,4],targetOffset:eu},bottomRight:{points:["tr","br"],overflow:tu,offset:[0,4],targetOffset:eu}};function w0(){return w0=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},w0.apply(this,arguments)}const SU=Gt.forwardRef((t,e)=>{const{arrow:n=!1,prefixCls:s="rc-dropdown",transitionName:i,animation:r,align:c,placement:p="bottomLeft",placements:g=CU,getPopupContainer:_,showAction:f,hideAction:h,overlayClassName:v,overlayStyle:b,visible:S,trigger:x=["hover"],autoFocus:w,overlay:A,children:E,onVisibleChange:I,disabled:j,...T}=t,[P,N]=Gt.useState(),D="visible"in t?S:P,F=r?`${s}-${r}`:i,B=Gt.useRef(null),L=Gt.useRef(null),$=Gt.useRef(null);Gt.useImperativeHandle(e,()=>B.current);const q=z=>{N(z),I?.(z)};xU({visible:D,triggerRef:$,onVisibleChange:q,autoFocus:w,overlayRef:L});const Q=z=>{const{onOverlayClick:Y}=t;
9559N(!1),Y&&Y(z)},V=()=>Gt.createElement(AU,{ref:L,overlay:A,prefixCls:s,arrow:n}),U=()=>typeof A=="function"?V:V(),H=()=>{const{minOverlayWidthMatchTrigger:z,alignPoint:Y}=t;return"minOverlayWidthMatchTrigger"in t?z:!Y},st=()=>{const{openClassName:z}=t;return z!==void 0?z:`${s}-open`},lt=E,M=At(lt.props?.className,D&&st()),gt={className:M,ref:Pc($,Eu(lt))},rt=Lc(lt)?Gt.cloneElement(lt,gt):Gt.createElement("span",{className:M,ref:$},Gt.cloneElement(lt,{className:M}));let O=h;return!O&&x.indexOf("contextMenu")!==-1&&(O=["click"]),Gt.createElement(D4,w0({builtinPlacements:g},T,{prefixCls:s,ref:B,popupClassName:At(v,{[`${s}-show-arrow`]:n}),popupStyle:b,action:x,showAction:f,hideAction:O,popupPlacement:p,popupAlign:c,popupMotion:{motionName:F},popupVisible:D,stretch:H()?"minWidth":"",popup:U(),onOpenChange:q,onPopupClick:Q,getPopupContainer:_}),rt)}),J4=y.createContext(null);function Z4(t,e){return`${t}-${e}`}function tC(t){const e=y.useContext(J4);return Z4(e,t)}const Is=y.createContext(null);function wU(t,e){const n={...t};return Object.keys(e).forEach(s=>{const i=e[s];i!==void 0&&(n[s]=i)}),n}function bc({children:t,locked:e,...n}){const s=y.useContext(Is),i=Vg(()=>wU(s,n),[s,n],(r,c)=>!e&&(r[0]!==c[0]||!hc(r[1],c[1],!0)));return y.createElement(Is.Provider,{value:i},t)}const EU=[],eC=y.createContext(null);function nm(){return y.useContext(eC)}const nC=y.createContext(EU);function Uc(t){const e=y.useContext(nC);return y.useMemo(()=>t!==void 0?[...e,t]:e,[e,t])}const aC=y.createContext(null),G1=y.createContext({}),{LEFT:E0,RIGHT:I0,UP:N0,DOWN:Yp,ENTER:Qp,ESC:sC,HOME:Gl,END:Hl}=ys,Px=[N0,Yp,E0,I0];function IU(t,e,n,s){const i="prev",r="next",c="children",p="parent";if(t==="inline"&&s===Qp)return{inlineTrigger:!0};const g={[N0]:i,[Yp]:r},_={[E0]:n?r:i,[I0]:n?i:r,[Yp]:c,[Qp]:c},f={[N0]:i,[Yp]:r,[Qp]:c,[sC]:p,[E0]:n?c:p,[I0]:n?p:c};switch({inline:g,horizontal:_,vertical:f,inlineSub:g,horizontalSub:f,verticalSub:f}[`${t}${e?"":"Sub"}`]?.[s]){case i:return{offset:-1,sibling:!0};case r:return{offset:1,sibling:!0};case p:return{offset:-1,sibling:!1};case c:return{offset:1,sibling:!1};default:return null}}function NU(t){let e=t;for(;e;){if(e.getAttribute("data-menu-list"))return e;e=e.parentElement}return null}function RU(t,e){let n=t||document.activeElement;for(;n;){if(e.has(n))return n;n=n.parentElement}return null}function H1(t,e){return LB(t,!0).filter(s=>e.has(s))}function Mx(t,e,n,s=1){if(!t)return null;const i=H1(t,e),r=i.length;let c=i.findIndex(p=>n===p);return s<0?c===-1?c=r-1:c-=1:s>0&&(c+=1),c=(c+r)%r,i[c]}const vg=(t,e)=>{const n=new Set,s=new Map,i=new Map;return t.forEach(r=>{const c=document.querySelector(`[data-menu-id='${Z4(e,r)}']`);c&&(n.add(c),i.set(c,r),s.set(r,c))}),{elements:n,key2element:s,element2key:i}};function TU(t,e,n,s,i,r,c,p,g,_){const f=y.useRef(void 0),h=y.useRef(void 0);h.current=e;const v=()=>{Va.cancel(f.current)};return y.useEffect(()=>()=>{v()},[]),b=>{const{which:S}=b;if([...Px,Qp,sC,Gl,Hl].includes(S)){const x=r();let w=vg(x,s);const{elements:A,key2element:E,element2key:I}=w,j=E.get(e),T=RU(j,A),P=I.get(T),N=IU(t,c(P,!0).length===1,n,S);if(!N&&S!==Gl&&S!==Hl)return;(Px.includes(S)||[Gl,Hl].includes(S))&&b.preventDefault();const D=F=>{if(F){let B=F;const L=F.querySelector("a");L?.getAttribute("href")&&(B=L);const $=I.get(F);p($),v(),f.current=Va(()=>{h.current===$&&B.focus()})}};if([Gl,Hl].includes(S)||N.sibling||!T){let F;!T||t==="inline"?F=i.current:F=NU(T);let B;const L=H1(F,A);S===Gl?B=L[0]:S===Hl?B=L[L.length-1]:B=Mx(F,A,T,N.offset),D(B)}else if(N.inlineTrigger)g(P);else if(N.offset>0)g(P,!0),v(),f.current=Va(()=>{w=vg(x,s);const F=T.getAttribute("aria-controls"),B=document.getElementById(F),L=Mx(B,w.elements);D(L)},5);else if(N.offset<0){const F=c(P,!0),B=F[F.length-2],L=E.get(B);g(B,!1),D(L)}}_?.(b)}}function jU(t){Promise.resolve().then(t)}const F1="__RC_UTIL_PATH_SPLIT__",Lx=t=>t.join(F1),PU=t=>t.split(F1),R0="rc-menu-more";function MU(){const[,t]=y.useState({}),e=y.useRef(new Map),n=y.useRef(new Map),[s,i]=y.useState([]),r=y.useRef(0),c=y.useRef(!1),p=()=>{c.current||t({})},g=y.useCallback((x,w)=>{const A=Lx(w);n.current.set(A,x),e.current.set(x,A),r.current+=1;const E=r.current;jU(()=>{E===r.current&&p()})},[]),_=y.useCallback((x,w)=>{const A=Lx(w);n.current.delete(A),e.current.delete(x)},[]),f=y.useCallback(x=>{i(x)},[]),h=y.useCallback((x,w)=>{const A=e.current.get(x)||"",E=PU(A);return w&&s.includes(E[0])&&E.unshift(R0),E},[s]),v=y.useCallback((x,w)=>x.filter(A=>A!==void 0).some(A=>h(A,!0).includes(w)),[h]),b=()=>{const x=[...e.current.keys()];return s.length&&x.push(R0),x},S=y.useCallback(x=>{const w=`${e.current.get(x)}${F1}`,A=new Set;
9559return[...n.current.keys()].forEach(E=>{E.startsWith(w)&&A.add(n.current.get(E))}),A},[]);return y.useEffect(()=>()=>{c.current=!0},[]),{registerPath:g,unregisterPath:_,refreshOverflowKeys:f,isSubPathKey:v,getKeyPath:h,getKeys:b,getSubPathKeys:S}}function Yl(t){const e=y.useRef(t);e.current=t;const n=y.useCallback((...s)=>e.current?.(...s),[]);return t?n:void 0}function oC(t,e,n,s){const{activeKey:i,onActive:r,onInactive:c}=y.useContext(Is),p={active:i===t};return e||(p.onMouseEnter=g=>{n?.({key:t,domEvent:g}),r(t)},p.onMouseLeave=g=>{s?.({key:t,domEvent:g}),c(t)}),p}function iC(t){const{mode:e,rtl:n,inlineIndent:s}=y.useContext(Is);if(e!=="inline")return null;const i=t;return n?{paddingRight:i*s}:{paddingLeft:i*s}}function rC({icon:t,props:e,children:n}){let s;return t===null||t===!1?null:(typeof t=="function"?s=y.createElement(t,{...e}):typeof t!="boolean"&&(s=t),s||n||null)}function yg({item:t,...e}){return Object.defineProperty(e,"item",{get:()=>(Ia(!1,"`info.item` is deprecated since we will move to function component that not provides React Node instance in future."),t)}),e}function xc(){return xc=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},xc.apply(this,arguments)}class LU extends y.Component{render(){const{title:e,attribute:n,elementRef:s,...i}=this.props,r=Kg(i,["eventKey","popupClassName","popupOffset","onTitleClick"]);return Ia(!n,"`attribute` of Menu.Item is deprecated. Please pass attribute directly."),y.createElement(ni.Item,xc({},n,{title:typeof e=="string"?e:void 0},r,{ref:s}))}}const OU=y.forwardRef((t,e)=>{const{style:n,className:s,eventKey:i,warnKey:r,disabled:c,itemIcon:p,children:g,itemData:_,role:f,onMouseEnter:h,onMouseLeave:v,onClick:b,onKeyDown:S,onFocus:x,...w}=t,A=tC(i),{prefixCls:E,onItemClick:I,disabled:j,overflowDisabled:T,itemIcon:P,selectedKeys:N,onActive:D}=y.useContext(Is),{_internalRenderMenuItem:F}=y.useContext(G1),B=`${E}-item`,L=y.useRef(null),$=y.useRef(null),q=j||c,Q=Mc(e,$),V=Uc(i),U=W=>{const ut=_||{key:i||"",label:g,itemIcon:p,extra:t.extra,title:t.title};return{key:i,keyPath:[...V].reverse(),item:L.current,domEvent:W,itemData:_||ut}},H=p||P,{active:st,...lt}=oC(i,q,h,v),M=N.includes(i),gt=iC(V.length),rt=W=>{if(q)return;const ut=U(W);b?.(yg(ut)),I(ut)},O=W=>{if(S?.(W),W.which===ys.ENTER){const ut=U(W);b?.(yg(ut)),I(ut)}},z=W=>{D(i),x?.(W)},Y={};t.role==="option"&&(Y["aria-selected"]=M);let it=y.createElement(LU,xc({ref:L,elementRef:Q,role:f===null?"none":f||"menuitem",tabIndex:c?null:-1,"data-menu-id":T&&A?null:A},Kg(w,["extra"]),lt,Y,{component:"li","aria-disabled":c,style:{...gt,...n},className:At(B,{[`${B}-active`]:st,[`${B}-selected`]:M,[`${B}-disabled`]:q}
9559,s),onClick:rt,onKeyDown:O,onFocus:z}),g,y.createElement(rC,{props:{...t,isSelected:M},icon:H}));return F&&(it=F(it,t,{selected:M})),it});function DU(t,e){const{eventKey:n}=t,s=nm(),i=Uc(n);return y.useEffect(()=>{if(s)return s.registerPath(n,i),()=>{s.unregisterPath(n,i)}},[i]),s?null:y.createElement(OU,xc({},t,{ref:e}))}const am=y.forwardRef(DU);function T0(){return T0=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},T0.apply(this,arguments)}const zU=({className:t,children:e,...n},s)=>{const{prefixCls:i,mode:r,rtl:c}=y.useContext(Is);return y.createElement("ul",T0({className:At(i,c&&`${i}-rtl`,`${i}-sub`,`${i}-${r==="inline"?"inline":"vertical"}`,t),role:"menu"},n,{"data-menu-list":!0,ref:s}),e)},uC=y.forwardRef(zU);function U1(t,e){return Yi(t).map((n,s)=>{if(y.isValidElement(n)){const{key:i}=n;let r=n.props?.eventKey??i;r==null&&(r=`tmp_key-${[...e,s].join("-")}`);const p={key:r,eventKey:r};return y.cloneElement(n,p)}return n})}const aa={adjustX:1,adjustY:1},BU={topLeft:{points:["bl","tl"],overflow:aa},topRight:{points:["br","tr"],overflow:aa},bottomLeft:{points:["tl","bl"],overflow:aa},bottomRight:{points:["tr","br"],overflow:aa},leftTop:{points:["tr","tl"],overflow:aa},leftBottom:{points:["br","bl"],overflow:aa},rightTop:{points:["tl","tr"],overflow:aa},rightBottom:{points:["bl","br"],overflow:aa}},$U={topLeft:{points:["bl","tl"],overflow:aa},topRight:{points:["br","tr"],overflow:aa},bottomLeft:{points:["tl","bl"],overflow:aa},bottomRight:{points:["tr","br"],overflow:aa},rightTop:{points:["tr","tl"],overflow:aa},rightBottom:{points:["br","bl"],overflow:aa},leftTop:{points:["tl","tr"],overflow:aa},leftBottom:{points:["bl","br"],overflow:aa}};function lC(t,e,n){if(e)return e;if(n)return n[t]||n.other}const GU={horizontal:"bottomLeft",vertical:"rightTop","vertical-left":"rightTop","vertical-right":"leftTop"};function HU({prefixCls:t,visible:e,children:n,popup:s,popupStyle:i,popupClassName:r,popupOffset:c,disabled:p,mode:g,onVisibleChange:_}){const{getPopupContainer:f,rtl:h,subMenuOpenDelay:v,subMenuCloseDelay:b,builtinPlacements:S,triggerSubMenuAction:x,forceSubMenuRender:w,rootClassName:A,motion:E,defaultMotions:I}=y.useContext(Is),[j,T]=y.useState(!1),P=h?{...$U,...S}:{...BU,...S},N=GU[g],D=lC(g,E,I),F=y.useRef(D);g!=="inline"&&(F.current=D);const B={...F.current,leavedClassName:`${t}-hidden`,removeOnLeave:!1,motionAppear:!0},L=y.useRef(void 0);return y.useEffect(()=>(L.current=Va(()=>{T(e)}),()=>{Va.cancel(L.current)}),[e]),y.createElement(D4,{prefixCls:t,popupClassName:At(`${t}-popup`,{[`${t}-rtl`]:h},r,A),stretch:g==="horizontal"?"minWidth":null,getPopupContainer:f,builtinPlacements:P,popupPlacement:N,popupVisible:j,popup:s,popupStyle:i,popupAlign:c&&{offset:c},action:p?[]:[x],mouseEnterDelay:v,mouseLeaveDelay:b,onPopupVisibleChange:_,forceRender:w,popupMotion:B,fresh:!0},n)}function j0(){return j0=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},j0.apply(this,arguments)}function FU({id:t,open:e,keyPath:n,children:s}){const i="inline",{prefixCls:r,forceSubMenuRender:c,motion:p,defaultMotions:g,mode:_}=y.useContext(Is),f=y.useRef(!1);f.current=_===i;const[h,v]=y.useState(!f.current),b=f.current?e:!1;y.useEffect(()=>{f.current&&v(!1)},[_]);const S={...lC(i,p,g)};n.length>1&&(S.motionAppear=!1);const x=S.onVisibleChanged;return S.onVisibleChanged=w=>(!f.current&&!w&&v(!0),x?.(w)),h?null:y.createElement(bc,{mode:i,locked:!f.current},y.createElement(Ru,j0({visible:b},S,{forceRender:c,removeOnLeave:!1,leavedClassName:`${r}-hidden`}),({className:w,style:A})=>y.createElement(uC,{id:t,className:w,style:A},s)))}function Ac(){return Ac=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},Ac.apply(this,arguments)}const UU=y.forwardRef((t,e)=>{const{style:n,className:s,styles:i,classNames:r,title:c,itemTitle:p,eventKey:g,warnKey:_,disabled:f,internalPopupClose:h,children:v,itemIcon:b,expandIcon:S,popupClassName:x,popupOffset:w,popupStyle:A,onClick:E,onMouseEnter:I,onMouseLeave:j,onTitleClick:T,onTitleMouseEnter:P,onTitleMouseLeave:N,popupRender:D,...F}=t,B=tC(g),{prefixCls:L,mode:$,openKeys:q,disabled:Q,overflowDisabled:V,activeKey:U,selectedKeys:H,itemIcon:st,expandIcon:lt,onItemClick:M,onOpenChange:gt,onActive:rt,popupRender:O}=y.useContext(Is),{_internalRenderSubMenuItem:z}=y.useContext(G1),{isSubPathKey:Y}=y.useContext(aC),it=Uc(),W=`${L}-submenu`,ut=Q||f,ht=y.useRef(null),yt=y.useRef(null),ft=b??st,mt=S??lt,wt=q.includes(g),It=!V&&wt,Pt=Y(H,g),{active:Nt,...kt}=oC(g,ut,P,N),[pt,Bt]=y.useState(!1),ne=Dt=>{ut||Bt(Dt)},Xt=Dt=>{ne(!0),I?.({key:g,domEvent:Dt})},Ut=Dt=>{ne(!1),j?.({key:g,domEvent:Dt})},Se=y.useMemo(()=>Nt||($!=="inline"?pt||Y([U],g):!1),[$,Nt,U,pt,g,Y]),ue=iC(it.length),ge=Dt=>{ut||(T?.({key:g,domEvent:Dt}),$==="inline"&&gt(g,!wt))},at=Yl(Dt=>{E?.(yg(Dt)),M(Dt)}),_t=Dt=>{$!=="inline"&&gt(g,Dt)},Tt=()=>{rt(g)},jt=B&&`${B}-popup`,Ht=y.useMemo(()=>y.createElement(rC,{icon:$!=="horizontal"?mt:void 0,props:{...t,isOpen:It,isSubMenu:!0}},y.createElement("i",{className:`${W}-arrow`})),[$,mt,t,It,W]);let Ct=y.createElement("div",Ac({role:"menuitem",style:ue,className:`${W}
9559-title`,tabIndex:ut?null:-1,ref:ht,title:p??(typeof c=="string"?c:null),"data-menu-id":V&&B?null:B,"aria-expanded":It,"aria-haspopup":!0,"aria-controls":jt,"aria-disabled":ut,onClick:ge,onFocus:Tt},kt),c,Ht);const bt=y.useRef($);$!=="inline"&&it.length>1?bt.current="vertical":bt.current=$;const ae=bt.current,pe=y.useMemo(()=>{const Dt=y.createElement(bc,{classNames:r,styles:i,mode:ae==="horizontal"?"vertical":ae},y.createElement(uC,{id:jt,ref:yt},v)),Yt=D||O;return Yt?Yt(Dt,{item:t,keys:it}):Dt},[D,O,it,jt,v,t,ae]);if(!V){const Dt=bt.current;Ct=y.createElement(HU,{mode:Dt,prefixCls:W,visible:!h&&It&&$!=="inline",popupClassName:x,popupOffset:w,popupStyle:A,popup:pe,disabled:ut,onVisibleChange:_t},Ct)}let ve=y.createElement(ni.Item,Ac({ref:e,role:"none"},F,{component:"li",style:n,className:At(W,`${W}-${$}`,s,{[`${W}-open`]:It,[`${W}-active`]:Se,[`${W}-selected`]:Pt,[`${W}-disabled`]:ut}),onMouseEnter:Xt,onMouseLeave:Ut}),Ct,!V&&y.createElement(FU,{id:jt,open:It,keyPath:it},v));return z&&(ve=z(ve,t,{selected:Pt,active:Se,open:It,disabled:ut})),y.createElement(bc,{classNames:r,styles:i,onItemClick:at,mode:$==="horizontal"?"vertical":$,itemIcon:ft,expandIcon:mt},ve)}),V1=y.forwardRef((t,e)=>{const{eventKey:n,children:s}=t,i=Uc(n),r=U1(s,i),c=nm();y.useEffect(()=>{if(c)return c.registerPath(n,i),()=>{c.unregisterPath(n,i)}},[i]);let p;return c?p=r:p=y.createElement(UU,Ac({ref:e},t),r),y.createElement(nC.Provider,{value:i},p)});function cC({className:t,style:e}){const{prefixCls:n}=y.useContext(Is);return nm()?null:y.createElement("li",{role:"separator",className:At(`${n}-item-divider`,t),style:e})}function bg(){return bg=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},bg.apply(this,arguments)}const VU=y.forwardRef((t,e)=>{const{className:n,title:s,eventKey:i,children:r,...c}=t,{prefixCls:p,classNames:g,styles:_}=y.useContext(Is),f=`${p}-item-group`;return y.createElement("li",bg({ref:e,role:"presentation"},c,{onClick:h=>h.stopPropagation(),className:At(f,n)}),y.createElement("div",{role:"presentation",className:At(`${f}-title`,g?.listTitle),style:_?.listTitle,title:typeof s=="string"?s:void 0},s),y.createElement("ul",{role:"group",className:At(`${f}-list`,g?.list),style:_?.list},r))}),dC=y.forwardRef((t,e)=>{const{eventKey:n,children:s}=t,i=Uc(n),r=U1(s,i);return nm()?r:y.createElement(VU,bg({ref:e},Kg(t,["warnKey"])),r)});function ou(){return ou=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},ou.apply(this,arguments)}function P0(t,e,n){const{item:s,group:i,submenu:r,divider:c}=e;return(t||[]).map((p,g)=>{if(p&&typeof p=="object"){const{label:_,children:f,key:h,type:v,extra:b,...S}=p,x=h??`tmp-${g}`;if(f||v==="group"){if(v==="group")return y.createElement(i,ou({key:x},S,{title:_}),P0(f,e,n));const{title:A,...E}=S;return y.createElement(r,ou({key:x},E,{title:_,itemTitle:typeof A=="string"?A:void 0}),P0(f,e,n))}if(v==="divider")return y.createElement(c,ou({key:x},S));const w=!!b||b===0;return y.createElement(s,ou({key:x},S,{extra:b,itemData:{...p,key:x}}),w?y.createElement(y.Fragment,null,y.createElement("span",{className:`${n}-item-label`},_),y.createElement("span",{className:`${n}-item-extra`},b)):_)}return null}).filter(p=>p)}function Ox(t,e,n,s,i){let r=t;const c={divider:cC,item:am,group:dC,submenu:V1,...s};return e&&(r=P0(e,c,i)),U1(r,n)}function M0(){return M0=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},M0.apply(this,arguments)}const Ii=[],qU=y.forwardRef((t,e)=>{const{prefixCls:n="rc-menu",rootClassName:s,style:i,className:r,styles:c,classNames:p,tabIndex:g=0,items:_,children:f,direction:h,id:v,mode:b="vertical",inlineCollapsed:S,disabled:x,disabledOverflow:w,subMenuOpenDelay:A=.1,subMenuCloseDelay:E=.1,forceSubMenuRender:I,defaultOpenKeys:j,openKeys:T,activeKey:P,defaultActiveFirst:N,selectable:D=!0,multiple:F=!1,defaultSelectedKeys:B,selectedKeys:L,onSelect:$,onDeselect:q,inlineIndent:Q=24,motion:V,defaultMotions:U,triggerSubMenuAction:
9559H="hover",builtinPlacements:st,itemIcon:lt,expandIcon:M,overflowedIndicator:gt="...",overflowedIndicatorPopupClassName:rt,getPopupContainer:O,onClick:z,onOpenChange:Y,onKeyDown:it,openAnimation:W,openTransitionName:ut,_internalRenderMenuItem:ht,_internalRenderSubMenuItem:yt,_internalComponents:ft,popupRender:mt,...wt}=t,[It,Pt]=y.useMemo(()=>[Ox(f,_,Ii,ft,n),Ox(f,_,Ii,{},n)],[f,_,ft]),[Nt,kt]=y.useState(!1),pt=y.useRef(null),Bt=x1(),ne=v??`rc-menu-uuid-${Bt}`,Xt=h==="rtl",[Ut,Se]=lu(j,T),ue=Ut||Ii,ge=(Vt,ie=!1)=>{function be(){Se(Vt),Y?.(Vt)}ie?Ng.flushSync(be):be()},[at,_t]=y.useState(ue),Tt=y.useRef(!1),[jt,Ht]=y.useMemo(()=>(b==="inline"||b==="vertical")&&S?["vertical",S]:[b,!1],[b,S]),Ct=jt==="inline",[bt,ae]=y.useState(jt),[pe,ve]=y.useState(Ht);y.useEffect(()=>{ae(jt),ve(Ht),Tt.current&&(Ct?Se(at):ge(Ii))},[jt,Ht]);const[Dt,Yt]=y.useState(0),Qt=Dt>=It.length-1||bt!=="horizontal"||w;y.useEffect(()=>{Ct&&_t(ue)},[ue]),y.useEffect(()=>(Tt.current=!0,()=>{Tt.current=!1}),[]);const{registerPath:ye,unregisterPath:Te,refreshOverflowKeys:Gn,isSubPathKey:Tn,getKeyPath:Zn,getKeys:Hn,getSubPathKeys:jn}=MU(),ua=y.useMemo(()=>({registerPath:ye,unregisterPath:Te}),[ye,Te]),ma=y.useMemo(()=>({isSubPathKey:Tn}),[Tn]);y.useEffect(()=>{Gn(Qt?Ii:It.slice(Dt+1).map(Vt=>Vt.key))},[Dt,Qt]);const[rn,He]=lu(P||N&&It[0]?.key,P),zt=Yl(Vt=>{He(Vt)}),Mt=Yl(()=>{He(void 0)});y.useImperativeHandle(e,()=>({list:pt.current,focus:Vt=>{const ie=Hn(),{elements:be,key2element:wn,element2key:xe}=vg(ie,ne),ha=H1(pt.current,be);let _a;rn&&ie.includes(rn)?_a=rn:_a=ha[0]?xe.get(ha[0]):It.find(mn=>!mn.props.disabled)?.key;const ze=wn.get(_a);_a&&ze&&ze?.focus?.(Vt)},findItem:({key:Vt})=>{const ie=Hn(),{key2element:be}=vg(ie,ne);return be.get(Vt)||null}}));const[Ft,Ce]=lu(B||[],L),Fe=y.useMemo(()=>Array.isArray(Ft)?Ft:Ft==null?Ii:[Ft],[Ft]),Je=Vt=>{if(D){const{key:ie}=Vt,be=Fe.includes(ie);let wn;F?be?wn=Fe.filter(ha=>ha!==ie):wn=[...Fe,ie]:wn=[ie],Ce(wn);const xe={...Vt,selectedKeys:wn};be?q?.(xe):$?.(xe)}!F&&ue.length&&bt!=="inline"&&ge(Ii)},Fn=Yl(Vt=>{z?.(yg(Vt)),Je(Vt)}),Pn=Yl((Vt,ie)=>{let be=ue.filter(wn=>wn!==Vt);if(ie)be.push(Vt);else if(bt!=="inline"){const wn=jn(Vt);be=be.filter(xe=>!wn.has(xe))}hc(ue,be,!0)||ge(be,!0)}),Mn=TU(bt,rn,Xt,ne,pt,Hn,Zn,He,(Vt,ie)=>{const be=ie??!ue.includes(Vt);Pn(Vt,be)},it);y.useEffect(()=>{kt(!0)},[]);const gn=y.useMemo(()=>({_internalRenderMenuItem:ht,_internalRenderSubMenuItem:yt}),[ht,yt]),tn=bt!=="horizontal"||w?It:It.map((Vt,ie)=>y.createElement(bc,{key:Vt.key,overflowDisabled:ie>Dt,classNames:p,styles:c},Vt)),ta=y.createElement(ni,M0({id:v,ref:pt,prefixCls:`${n}-overflow`,component:"ul",itemComponent:am,className:At(n,`${n}-root`,`${n}-${bt}`,r,{[`${n}-inline-collapsed`]:pe,[`${n}-rtl`]:Xt},s),dir:h,style:i,role:"menu",tabIndex:g,data:tn,renderRawItem:Vt=>Vt,renderRawRest:Vt=>{const ie=Vt.length,be=ie?It.slice(-ie):null;return y.createElement(V1,{eventKey:R0,title:gt,disabled:Qt,internalPopupClose:ie===0,popupClassName:rt},be)},maxCount:bt!=="horizontal"||w?ni.INVALIDATE:ni.RESPONSIVE,ssr:"full","data-menu-list":!0,onVisibleChange:Vt=>{Yt(Vt)},onKeyDown:Mn},wt));return y.createElement(G1.Provider,{value:gn},y.createElement(J4.Provider,{value:ne},y.createElement(bc,{prefixCls:n,rootClassName:s,classNames:p,styles:c,mode:bt,openKeys:ue,rtl:Xt,disabled:x,motion:Nt?V:null,defaultMotions:Nt?U:null,activeKey:rn,onActive:zt,onInactive:Mt,selectedKeys:Fe,inlineIndent:Q,subMenuOpenDelay:A,subMenuCloseDelay:E,forceSubMenuRender:I,builtinPlacements:st,triggerSubMenuAction:H,getPopupContainer:O,itemIcon:lt,expandIcon:M,onItemClick:Fn,onOpenChange:Pn,popupRender:mt},y.createElement(aC.Provider,{value:ma},ta),y.createElement("div",{style:{display:"none"},"aria-hidden":!0},y.createElement(eC.Provider,{value:ua},Pt)))))}),Vc=qU;Vc.Item=am;Vc.SubMenu=V1;Vc.ItemGroup=dC;Vc.Divider=cC;const q1=y.createContext(null),KU=t=>{const{activeTabOffset:e,horizontal:n,rtl:s,indicator:i={}}=t,{size:r,align:c="center"}=i,[p,g]=y.useState(),_=y.useRef(void 0),f=Gt.useCallback(v=>typeof r=="function"?r(v):typeof r=="number"?r:v,[r]);function h(){Va.cancel(_.current)}return y.useEffect(()=>{const v={};if(e)if(n){v.width=f(e.width);const b=s?"right":"left";c==="start"&&(v[b]=e[b]),c==="center"&&(v[b]=e[b]+e.width/2,v.transform=s?"translateX(50%)":"translateX(-50%)"),c==="end"&&(v[b]=e[b]+e.width,v.transform="translateX(-100%)")}else v.height=f(e.height),c==="start"&&(v.top=e.top),c==="center"&&(v.top=e.top+e.height/2,v.transform="translateY(-50%)"),c==="end"&&(v.top=e.top+e.height,v.transform="translateY(-100%)");return h(),_.current=Va(()=>{p&&v&&Object.keys(v).every(S=>{const x=v[S],w=p[S];return typeof x=="number"&&typeof w=="number"?Math.round(x)===Math.round(w):x===w})||g(v)}),h},[JSON.stringify(e),n,s,c,f]),{style:p}},Dx={width:0,height:0,left:0,top:0};function WU(t,e,n){return y.useMemo(()=>{const s=new Map,i=e.get(t[0]?.key)||Dx,r=i.left+i.width;for(let c=0;c<t.length;c+=1){const{key:p}=t[c];let g=e.get(p);g||(g=e.get(t[c-1]?.key)||Dx);const _=s.get(p)||{...g};_.right=r-_.left-_.width,s.set(p,_)}return s},[t.map(s=>s.key).join("_"),e,n])}function zx(t,e){const n=y.useRef(t),[,s]=y.useState({});function i(r){const c=typeof r=="function"?r(n.current):r;c!==n.current&&e(c,n.current),n.current=c,s({})}return[n.current,i]}const XU=.1,Bx=.01,Jp=20,$x=.995**Jp;function YU(t,e){const[n,s]=y.useState(),[i,r]=y.useState(0),[c,p]=y.useState(0),[g,_]=y.useState(),f=y.useRef(void 0);function h(A){const{screenX:E,screenY:I}=A.touches[0];s({x:E,y:I}),window.clearInterval(f.current)}function v(A){if(!n)return;const{screenX:E,screenY:I}=A.touches[0];s({x:E,y:I});const j=E-n.x,T=I-n.y;e(j,T);const P=Date.now();r(P),p(P-i),_({x:j,y:T})}function b(){if(n&&(s(null),_(null),g)){const A=g.x/c,E=g.y/c,I=Math.abs(A),j=Math.abs(E);
9559if(Math.max(I,j)<XU)return;let T=A,P=E;f.current=window.setInterval(()=>{if(Math.abs(T)<Bx&&Math.abs(P)<Bx){window.clearInterval(f.current);return}T*=$x,P*=$x,e(T*Jp,P*Jp)},Jp)}}const S=y.useRef(void 0);function x(A){const{deltaX:E,deltaY:I}=A;let j;const T=Math.abs(E),P=Math.abs(I);T===P?j=S.current==="x"?E:I:T>P?(j=E,S.current="x"):(j=I,S.current="y"),e(-j,-j)&&A.preventDefault()}const w=y.useRef(null);w.current={onTouchStart:h,onTouchMove:v,onTouchEnd:b,onWheel:x},y.useEffect(()=>{function A(T){w.current.onTouchStart(T)}function E(T){w.current.onTouchMove(T)}function I(T){w.current.onTouchEnd(T)}function j(T){w.current.onWheel(T)}return document.addEventListener("touchmove",E,{passive:!1}),document.addEventListener("touchend",I,{passive:!0}),t.current.addEventListener("touchstart",A,{passive:!0}),t.current.addEventListener("wheel",j,{passive:!1}),()=>{document.removeEventListener("touchmove",E),document.removeEventListener("touchend",I)}},[])}function pC(t){const[e,n]=y.useState(0),s=y.useRef(0),i=y.useRef(void 0);return i.current=t,vB(()=>{i.current?.()},[e]),()=>{s.current===e&&(s.current+=1,n(s.current))}}function QU(t){const e=y.useRef([]),[,n]=y.useState({}),s=y.useRef(typeof t=="function"?t():t),i=pC(()=>{let c=s.current;e.current.forEach(p=>{c=p(c)}),e.current=[],s.current=c,n({})});function r(c){e.current.push(c),i()}return[s.current,r]}const Gx={width:0,height:0,left:0,top:0,right:0};function JU(t,e,n,s,i,r,{tabs:c,tabPosition:p,rtl:g}){let _,f,h;return["top","bottom"].includes(p)?(_="width",f=g?"right":"left",h=Math.abs(n)):(_="height",f="top",h=-n),y.useMemo(()=>{if(!c.length)return[0,0];const v=c.length;let b=v;for(let x=0;x<v;x+=1){const w=t.get(c[x].key)||Gx;if(Math.floor(w[f]+w[_])>Math.floor(h+e)){b=x-1;break}}let S=0;for(let x=v-1;x>=0;x-=1)if((t.get(c[x].key)||Gx)[f]<h){S=x+1;break}return S>b?[0,-1]:[S,b]},[t,e,s,i,r,h,p,c.map(v=>v.key).join("_"),g])}function Hx(t){let e;return t instanceof Map?(e={},t.forEach((n,s)=>{e[s]=n})):e=t,JSON.stringify(e)}const ZU="TABS_DQ";function gC(t){return String(t).replace(/"/g,ZU)}function K1(t,e,n,s){return!(!n||s||t===!1||t===void 0&&(e===!1||e===null))}const mC=y.forwardRef((t,e)=>{const{prefixCls:n,editable:s,locale:i,style:r}=t;return!s||s.showAdd===!1?null:y.createElement("button",{ref:e,type:"button",className:`${n}-nav-add`,style:r,"aria-label":i?.addAriaLabel||"Add tab",onClick:c=>{s.onEdit("add",{event:c})}},s.addIcon||"+")}),Fx=y.forwardRef((t,e)=>{const{position:n,prefixCls:s,extra:i}=t;if(!i)return null;let r,c={};return typeof i=="object"&&!y.isValidElement(i)?c=i:c.right=i,n==="right"&&(r=c.right),n==="left"&&(r=c.left),r?y.createElement("div",{className:`${s}-extra-content`,ref:e},r):null});function L0(){return L0=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},L0.apply(this,arguments)}const tV=y.forwardRef((t,e)=>{const{prefixCls:n,id:s,tabs:i,locale:r,mobile:c,more:p={},style:g,className:_,editable:f,tabBarGutter:h,rtl:v,removeAriaLabel:b,onTabClick:S,getPopupContainer:x,popupClassName:w,popupStyle:A,classNames:E,styles:I}=t,[j,T]=y.useState(!1),[P,N]=y.useState(null),{icon:D="More",popupRender:F}=p,B=`${s}-more-popup`,L=`${n}-dropdown`,$=P!==null?`${B}-${P}`:null,q=r?.dropdownAriaLabel;function Q(rt,O){rt.preventDefault(),rt.stopPropagation(),f.onEdit("remove",{key:O,event:rt})}const V=y.createElement(Vc,{onClick:({key:rt,domEvent:O})=>{S(rt,O),T(!1)},prefixCls:`${L}-menu`,id:B,tabIndex:-1,role:"listbox","aria-activedescendant":$,selectedKeys:[P],"aria-label":q!==void 0?q:"expanded dropdown"},i.map(rt=>{const{closable:O,disabled:z,closeIcon:Y,key:it,label:W}=rt,ut=K1(O,Y,f,z);return y.createElement(am,{key:it,id:`${B}-${it}`,role:"option","aria-controls":s&&`${s}-panel-${it}`,disabled:z},y.createElement("span",null,W),ut&&y.createElement("button",{type:"button","aria-label":b||"remove",tabIndex:0,className:At(`${L}-menu-item-remove`,E?.remove),style:I?.remove,onClick:ht=>{ht.stopPropagation(),Q(ht,it)}},Y||f.removeIcon||"×"))})),U=F?F(V,{restTabs:i,onClose:()=>T(!1)}):V;function H(rt){const O=i.filter(it=>!it.disabled);let z=O.findIndex(it=>it.key===P)||0;const Y=O.length;for(let it=0;
9559it<Y;it+=1){z=(z+rt+Y)%Y;const W=O[z];if(!W.disabled){N(W.key);return}}}function st(rt){const{which:O}=rt;if(!j){[ys.DOWN,ys.SPACE,ys.ENTER].includes(O)&&(T(!0),rt.preventDefault());return}switch(O){case ys.UP:H(-1),rt.preventDefault();break;case ys.DOWN:H(1),rt.preventDefault();break;case ys.ESC:T(!1);break;case ys.SPACE:case ys.ENTER:P!==null&&S(P,rt);break}}y.useEffect(()=>{const rt=document.getElementById($);rt?.scrollIntoView&&rt.scrollIntoView(!1)},[$,P]),y.useEffect(()=>{j||N(null)},[j]);const lt={marginInlineStart:h};i.length||(lt.visibility="hidden",lt.order=1);const M=At(w,{[`${L}-rtl`]:v}),gt=c?null:y.createElement(SU,L0({prefixCls:L,overlay:U,visible:i.length?j:!1,onVisibleChange:T,overlayClassName:M,overlayStyle:A,mouseEnterDelay:.1,mouseLeaveDelay:.1,getPopupContainer:x},p),y.createElement("button",{type:"button",className:`${n}-nav-more`,style:lt,"aria-haspopup":"listbox","aria-controls":B,id:`${s}-more`,"aria-expanded":j,onKeyDown:st},D));return y.createElement("div",{className:At(`${n}-nav-operations`,_),style:g,ref:e},gt,y.createElement(mC,{prefixCls:n,locale:r,editable:f}))}),eV=y.memo(tV,(t,e)=>e.tabMoving),nV=t=>{const{prefixCls:e,id:n,active:s,focus:i,tab:{key:r,label:c,disabled:p,closeIcon:g,icon:_},closable:f,renderWrapper:h,removeAriaLabel:v,editable:b,onClick:S,onFocus:x,onBlur:w,onKeyDown:A,onMouseDown:E,onMouseUp:I,styles:j,classNames:T,tabCount:P,currentPosition:N}=t,D=`${e}-tab`,F=K1(f,g,b,p);function B(V){p||S(V)}function L(V){V.preventDefault(),V.stopPropagation(),b.onEdit("remove",{key:r,event:V})}const $=y.useMemo(()=>_&&typeof c=="string"?y.createElement("span",null,c):c,[c,_]),q=y.useRef(null);y.useEffect(()=>{i&&q.current&&q.current.focus()},[i]);const Q=y.createElement("div",{key:r,"data-node-key":gC(r),className:At(D,T?.item,{[`${D}-with-remove`]:F,[`${D}-active`]:s,[`${D}-disabled`]:p,[`${D}-focus`]:i}),style:j?.item,onClick:B},y.createElement("div",{ref:q,role:"tab","aria-selected":s,id:n&&`${n}-tab-${r}`,className:`${D}-btn`,"aria-controls":n&&`${n}-panel-${r}`,"aria-disabled":p,tabIndex:p?null:s?0:-1,onClick:V=>{V.stopPropagation(),B(V)},onKeyDown:A,onMouseDown:E,onMouseUp:I,onFocus:x,onBlur:w},i&&y.createElement("div",{"aria-live":"polite",style:{width:0,height:0,position:"absolute",overflow:"hidden",opacity:0}},`Tab ${N} of ${P}`),_&&y.createElement("span",{className:`${D}-icon`},_),c&&$),F&&y.createElement("button",{type:"button","aria-label":v||"remove",tabIndex:s?0:-1,className:At(`${D}-remove`,T?.remove),style:j?.remove,onClick:V=>{V.stopPropagation(),L(V)}},g||b.removeIcon||"×"));return h?h(Q):Q};function O0(){return O0=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},O0.apply(this,arguments)}const aV=(t,e)=>{const{offsetWidth:n,offsetHeight:s,offsetTop:i,offsetLeft:r}=t,{width:c,height:p,left:g,top:_}=t.getBoundingClientRect();return Math.abs(c-n)<1?[c,p,g-e.left,_-e.top]:[n,s,r,i]},nu=t=>{const{offsetWidth:e=0,offsetHeight:n=0}=t.current||{};if(t.current){const{width:s,height:i}=t.current.getBoundingClientRect();if(Math.abs(s-e)<1)return[s,i]}return[e,n]},jp=(t,e)=>t[e?0:1],Ux=y.forwardRef((t,e)=>{const{className:n,style:s,id:i,animated:r,activeKey:c,rtl:p,extra:g,editable:_,locale:f,tabPosition:h,tabBarGutter:v,children:b,onTabClick:S,onTabScroll:x,indicator:w,classNames:A,styles:E}=t,{prefixCls:I,tabs:j}=y.useContext(q1),T=y.useRef(null),P=y.useRef(null),N=y.useRef(null),D=y.useRef(null),F=y.useRef(null),B=y.useRef(null),L=y.useRef(null),$=h==="top"||h==="bottom",[q,Q]=zx(0,(zt,Mt)=>{$&&x&&x({direction:zt>Mt?"left":"right"})}),[V,U]=zx(0,(zt,Mt)=>{!$&&x&&x({direction:zt>Mt?"top":"bottom"})}),[H,st]=y.useState([0,0]),[lt,M]=y.useState([0,0]),[gt,rt]=y.useState([0,0]),[O,z]=y.useState([0,0]),[Y,it]=QU(new Map),W=WU(j,Y,lt[0]),ut=jp(H,$),ht=jp(lt,$),yt=jp(gt,$),ft=jp(O,$),mt=Math.floor(ut)<Math.floor(ht+yt),wt=mt?ut-ft:ut-yt,It=`${I}-nav-operations-hidden`;let Pt=0,Nt=0;$&&p?(Pt=0,Nt=Math.max(0,ht-wt)):(Pt=Math.min(0,wt-ht),Nt=0);function kt(zt){return zt<Pt?Pt:zt>Nt?Nt:zt}const pt=y.useRef(null),[Bt,ne]=y.useState();function Xt(){ne(Date.now())}function Ut(){pt.current&&clearTimeout(pt.current)}YU(D,(zt,Mt)=>{function Ft(Ce,Fe){Ce(Je=>kt(Je+Fe))}return mt?($?Ft(Q,zt):Ft(U,Mt),Ut(),Xt(),!0):!1}),y.useEffect(()=>
9559(Ut(),Bt&&(pt.current=setTimeout(()=>{ne(0)},100)),Ut),[Bt]);const[Se,ue]=JU(W,wt,$?q:V,ht,yt,ft,{...t,tabs:j}),ge=an((zt=c)=>{const Mt=W.get(zt)||{width:0,height:0,left:0,right:0,top:0};if($){let Ft=q;p?Mt.right<q?Ft=Mt.right:Mt.right+Mt.width>q+wt&&(Ft=Mt.right+Mt.width-wt):Mt.left<-q?Ft=-Mt.left:Mt.left+Mt.width>-q+wt&&(Ft=-(Mt.left+Mt.width-wt)),U(0),Q(kt(Ft))}else{let Ft=V;Mt.top<-V?Ft=-Mt.top:Mt.top+Mt.height>-V+wt&&(Ft=-(Mt.top+Mt.height-wt)),Q(0),U(kt(Ft))}}),[at,_t]=y.useState(),[Tt,jt]=y.useState(!1),Ht=j.filter(zt=>!zt.disabled).map(zt=>zt.key),Ct=zt=>{const Mt=Ht.indexOf(at||c),Ft=Ht.length,Ce=(Mt+zt+Ft)%Ft,Fe=Ht[Ce];_t(Fe)},bt=(zt,Mt)=>{const Ft=Ht.indexOf(zt),Ce=j.find(Je=>Je.key===zt);K1(Ce?.closable,Ce?.closeIcon,_,Ce?.disabled)&&(Mt.preventDefault(),Mt.stopPropagation(),_.onEdit("remove",{key:zt,event:Mt}),Ft===Ht.length-1?Ct(-1):Ct(1))},ae=(zt,Mt)=>{jt(!0),Mt.button===1&&bt(zt,Mt)},pe=zt=>{const{code:Mt}=zt,Ft=p&&$,Ce=Ht[0],Fe=Ht[Ht.length-1];switch(Mt){case"ArrowLeft":{$&&Ct(Ft?1:-1);break}case"ArrowRight":{$&&Ct(Ft?-1:1);break}case"ArrowUp":{zt.preventDefault(),$||Ct(-1);break}case"ArrowDown":{zt.preventDefault(),$||Ct(1);break}case"Home":{zt.preventDefault(),_t(Ce);break}case"End":{zt.preventDefault(),_t(Fe);break}case"Enter":case"Space":{zt.preventDefault(),S(at??c,zt);break}case"Backspace":case"Delete":{bt(at,zt);break}}},ve={};$?ve.marginInlineStart=v:ve.marginTop=v;const Dt=j.map((zt,Mt)=>{const{key:Ft}=zt;return y.createElement(nV,{id:i,prefixCls:I,key:Ft,tab:zt,classNames:{item:A?.item,remove:A?.remove},styles:{item:Mt===0?E?.item:{...ve,...E?.item},remove:E?.remove},closable:zt.closable,editable:_,active:Ft===c,focus:Ft===at,renderWrapper:b,removeAriaLabel:f?.removeAriaLabel,tabCount:Ht.length,currentPosition:Mt+1,onClick:Ce=>{S(Ft,Ce)},onKeyDown:pe,onFocus:()=>{Tt||_t(Ft),ge(Ft),Xt(),D.current&&(p||(D.current.scrollLeft=0),D.current.scrollTop=0)},onBlur:()=>{_t(void 0)},onMouseDown:Ce=>ae(Ft,Ce),onMouseUp:()=>{jt(!1)}})}),Yt=()=>it(()=>{const zt=new Map,Mt=F.current?.getBoundingClientRect();return j.forEach(({key:Ft})=>{const Ce=F.current?.querySelector(`[data-node-key="${gC(Ft)}"]`);if(Ce){const[Fe,Je,Fn,Pn]=aV(Ce,Mt);zt.set(Ft,{width:Fe,height:Je,left:Fn,top:Pn})}}),zt});y.useEffect(()=>{Yt()},[j.map(zt=>zt.key).join("_")]);const Qt=pC(()=>{const zt=nu(T),Mt=nu(P),Ft=nu(N);st([zt[0]-Mt[0]-Ft[0],zt[1]-Mt[1]-Ft[1]]);const Ce=nu(L);rt(Ce);const Fe=nu(B);z(Fe);const Je=nu(F);M([Je[0]-Ce[0],Je[1]-Ce[1]]),Yt()}),ye=j.slice(0,Se),Te=j.slice(ue+1),Gn=[...ye,...Te],Tn=W.get(c),{style:Zn}=KU({activeTabOffset:Tn,horizontal:$,indicator:w,rtl:p});y.useEffect(()=>{ge()},[c,Pt,Nt,Hx(Tn),Hx(W),$]),y.useEffect(()=>{Qt()},[p]);const Hn=!!Gn.length,jn=`${I}-nav-wrap`;let ua,ma,rn,He;return $?p?(ma=q>0,ua=q!==Nt):(ua=q<0,ma=q!==Pt):(rn=V<0,He=V!==Pt),y.createElement(Hi,{onResize:Qt},y.createElement("div",{ref:Mc(e,T),role:"tablist","aria-orientation":$?"horizontal":"vertical",className:At(`${I}-nav`,n,A?.header),style:{...E?.header,...s},onKeyDown:()=>{Xt()}},y.createElement(Fx,{ref:P,position:"left",extra:g,prefixCls:I}),y.createElement(Hi,{onResize:Qt},y.createElement("div",{className:At(jn,{[`${jn}-ping-left`]:ua,[`${jn}-ping-right`]:ma,[`${jn}-ping-top`]:rn,[`${jn}-ping-bottom`]:He}),ref:D},y.createElement(Hi,{onResize:Qt},y.createElement("div",{ref:F,className:`${I}-nav-list`,style:{transform:`translate(${q}px, ${V}px)`,transition:Bt?"none":void 0}},Dt,y.createElement(mC,{ref:L,prefixCls:I,locale:f,editable:_,style:{...Dt.length===0?void 0:ve,visibility:Hn?"hidden":null}}),y.createElement("div",{className:At(`${I}-ink-bar`,A?.indicator,{[`${I}-ink-bar-animated`]:r.inkBar}),style:{...Zn,...E?.indicator}}))))),y.createElement(eV,O0({},t,{removeAriaLabel:f?.removeAriaLabel,ref:B,prefixCls:I,tabs:Gn,className:!Hn&&It,popupStyle:E?.popup,tabMoving:!!Bt})),y.createElement(Fx,{ref:N,position:"right",extra:g,prefixCls:I})))}),sV=({renderTabBar:t,...e})=>t?t(e,Ux):y.createElement(Ux,e),oV=y.forwardRef((t,e)=>{const{prefixCls:n,className:s,style:i,id:r,active:c,tabKey:p,children:g}=t,_=y.Children.count(g)>0;return y.createElement("div",{id:r&&`${r}-panel-${p}`,role:"tabpanel",tabIndex:c&&_?0:-1,"aria-labelledby":r&&`${r}-tab-${p}`,"aria-hidden":!c,style:i,className:At(n,c&&`${n}-active`,s),ref:e},g)}
9559);function xg(){return xg=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},xg.apply(this,arguments)}const iV=t=>{const{id:e,activeKey:n,animated:s,tabPosition:i,destroyOnHidden:r,bodyStyle:c,bodyClassName:p,contentStyle:g,contentClassName:_}=t,{prefixCls:f,tabs:h}=y.useContext(q1),v=s.tabPane,b=`${f}-body`,S=`${f}-content`;return y.createElement("div",{className:At(`${b}-holder`)},y.createElement("div",{className:At(b,`${b}-${i}`,{[`${b}-animated`]:v},p),style:c},h.map(x=>{const{key:w,forceRender:A,style:E,className:I,destroyOnHidden:j,...T}=x,P=w===n;return y.createElement(Ru,xg({key:w,visible:P,forceRender:A,removeOnLeave:!!(r??j),leavedClassName:`${S}-hidden`},s.tabPaneMotion),({style:N,className:D},F)=>y.createElement(oV,xg({},T,{prefixCls:S,id:e,tabKey:w,animated:v,active:P,style:{...g,...E,...N},className:At(_,I,D),ref:F})))})))};function rV(t={inkBar:!0,tabPane:!1}){let e;return t===!1?e={inkBar:!1,tabPane:!1}:t===!0?e={inkBar:!0,tabPane:!1}:e={inkBar:!0,...typeof t=="object"?t:{}},e.tabPaneMotion&&e.tabPane===void 0&&(e.tabPane=!0),!e.tabPaneMotion&&e.tabPane&&(e.tabPane=!1),e}function rc(){return rc=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},rc.apply(this,arguments)}let Vx=0;const uV=y.forwardRef((t,e)=>{const{id:n,prefixCls:s="rc-tabs",className:i,items:r,direction:c,activeKey:p,defaultActiveKey:g,editable:_,animated:f,tabPosition:h="top",tabBarGutter:v,tabBarStyle:b,tabBarExtraContent:S,locale:x,more:w,destroyOnHidden:A,renderTabBar:E,onChange:I,onTabClick:j,onTabScroll:T,getPopupContainer:P,popupClassName:N,indicator:D,classNames:F,styles:B,...L}=t,$=y.useMemo(()=>(r||[]).filter(W=>W&&typeof W=="object"&&"key"in W),[r]),q=c==="rtl",Q=rV(f),[V,U]=y.useState(!1);y.useEffect(()=>{U(WB())},[]);const[H,st]=lu(g??$[0]?.key,p),[lt,M]=y.useState(()=>$.findIndex(W=>W.key===H));y.useEffect(()=>{let W=$.findIndex(ut=>ut.key===H);W===-1&&(W=Math.max(0,Math.min(lt,$.length-1)),st($[W]?.key)),M(W)},[$.map(W=>W.key).join("_"),H,lt]);const[gt,rt]=lu(null,n);y.useEffect(()=>{n||(rt(`rc-tabs-${Vx}`),Vx+=1)},[]);function O(W,ut){j?.(W,ut);const ht=W!==H;st(W),ht&&I?.(W)}const z={id:gt,activeKey:H,animated:Q,tabPosition:h,rtl:q,mobile:V},Y={...z,editable:_,locale:x,more:w,tabBarGutter:v,onTabClick:O,onTabScroll:T,extra:S,style:b,getPopupContainer:P,popupClassName:At(N,F?.popup),indicator:D,styles:B,classNames:F},it=y.useMemo(()=>({tabs:$,prefixCls:s}),[$,s]);return y.createElement(q1.Provider,{value:it},y.createElement("div",rc({ref:e,id:n,className:At(s,`${s}-${h}`,{[`${s}-mobile`]:V,[`${s}-editable`]:_,[`${s}-rtl`]:q},i)},L),y.createElement(sV,rc({},Y,{renderTabBar:E})),y.createElement(iV,rc({destroyOnHidden:A},z,{bodyStyle:B?.body,bodyClassName:F?.body,contentStyle:B?.content,contentClassName:F?.content,animated:Q}))))}),lV={motionAppear:!1,motionEnter:!0,motionLeave:!0};function cV(t,e={inkBar:!0,tabPane:!1}){let n;return e===!1?n={inkBar:!1,tabPane:!1}:e===!0?n={inkBar:!0,tabPane:!0}:n={inkBar:!0,...Zg(e)?e:{}},n.tabPane&&(n.tabPaneMotion={...lV,motionName:KH(t,"switch")}),n}function dV(t){return t.filter(e=>e)}function pV(t,e){if(t)return t.map(s=>({...s,destroyOnHidden:s.destroyOnHidden??s.destroyInactiveTabPane}));const n=Yi(e).map(s=>{if(y.isValidElement(s)){const{key:i,props:r}=s,{tab:c,...p}=r||{};return{key:String(i),...p,label:c}}return null});return dV(n)}const gV=t=>{const{componentCls:e,motionDurationSlow:n}=t;return[{[e]:{[`${e}-switch`]:{"&-appear, &-enter":{transition:"none","&-start":{opacity:0}
vendor: 11,458 bytes, lines 9559-9574
9559,"&-active":{opacity:1,transition:`opacity ${n}`}},"&-leave":{position:"absolute",transition:"none",inset:0,"&-start":{opacity:1},"&-active":{opacity:0,transition:`opacity ${n}`}}}}},[Cx(t,"slide-up"),Cx(t,"slide-down")]]},mV=t=>{const{componentCls:e,tabsCardPadding:n,cardBg:s,cardGutter:i,colorBorderSecondary:r,itemSelectedColor:c}=t;return{[`${e}-card`]:{[`> ${e}-nav, > div > ${e}-nav`]:{[`${e}-tab`]:{margin:0,padding:n,background:s,border:`${Ot(t.lineWidth)} ${t.lineType} ${r}`,transition:`all ${t.motionDurationSlow} ${t.motionEaseInOut}`},[`${e}-tab-active`]:{color:c,background:t.colorBgContainer},[`${e}-tab-focus:has(${e}-tab-btn:focus-visible)`]:D1(t,-3),[`& ${e}-tab${e}-tab-focus ${e}-tab-btn:focus-visible`]:{outline:"none"},[`${e}-ink-bar`]:{visibility:"hidden"}},[`&${e}-top, &${e}-bottom`]:{[`> ${e}-nav, > div > ${e}-nav`]:{[`${e}-tab + ${e}-tab`]:{marginLeft:{_skip_check_:!0,value:Ot(i)}}}},[`&${e}-top`]:{[`> ${e}-nav, > div > ${e}-nav`]:{[`${e}-tab`]:{borderRadius:`${Ot(t.borderRadiusLG)} ${Ot(t.borderRadiusLG)} 0 0`},[`${e}-tab-active`]:{borderBottomColor:t.colorBgContainer}}},[`&${e}-bottom`]:{[`> ${e}-nav, > div > ${e}-nav`]:{[`${e}-tab`]:{borderRadius:`0 0 ${Ot(t.borderRadiusLG)} ${Ot(t.borderRadiusLG)}`},[`${e}-tab-active`]:{borderTopColor:t.colorBgContainer}}},[`&${e}-left, &${e}-right`]:{[`> ${e}-nav, > div > ${e}-nav`]:{[`${e}-tab + ${e}-tab`]:{marginTop:Ot(i)}}},[`&${e}-left`]:{[`> ${e}-nav, > div > ${e}-nav`]:{[`${e}-tab`]:{borderRadius:{_skip_check_:!0,value:`${Ot(t.borderRadiusLG)} 0 0 ${Ot(t.borderRadiusLG)}`}},[`${e}-tab-active`]:{borderRightColor:{_skip_check_:!0,value:t.colorBgContainer}}}},[`&${e}-right`]:{[`> ${e}-nav, > div > ${e}-nav`]:{[`${e}-tab`]:{borderRadius:{_skip_check_:!0,value:`0 ${Ot(t.borderRadiusLG)} ${Ot(t.borderRadiusLG)} 0`}},[`${e}-tab-active`]:{borderLeftColor:{_skip_check_:!0,value:t.colorBgContainer}}}}}}},hV=t=>{const{antCls:e,componentCls:n,itemHoverColor:s,dropdownEdgeChildVerticalPadding:i}=t;return{[`${n}-dropdown`]:{...Qg(t),position:"absolute",top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:t.zIndexPopup,display:"block","&-hidden":{display:"none"},[`&${e}-slide-down-enter${e}-slide-down-enter-active${n}-dropdown-placement-bottomLeft,
9560        &${e}-slide-down-appear${e}-slide-down-appear-active${n}-dropdown-placement-bottomLeft,
9561        &${e}-slide-down-enter${e}-slide-down-enter-active${n}-dropdown-placement-bottom,
9562        &${e}-slide-down-appear${e}-slide-down-appear-active${n}-dropdown-placement-bottom,
9563        &${e}-slide-down-enter${e}-slide-down-enter-active${n}-dropdown-placement-bottomRight,
9564        &${e}-slide-down-appear${e}-slide-down-appear-active${n}-dropdown-placement-bottomRight`]:{animationName:B4},[`&${e}-slide-up-enter${e}-slide-up-enter-active${n}-dropdown-placement-topLeft,
9565        &${e}-slide-up-appear${e}-slide-up-appear-active${n}-dropdown-placement-topLeft,
9566        &${e}-slide-up-enter${e}-slide-up-enter-active${n}-dropdown-placement-top,
9567        &${e}-slide-up-appear${e}-slide-up-appear-active${n}-dropdown-placement-top,
9568        &${e}-slide-up-enter${e}-slide-up-enter-active${n}-dropdown-placement-topRight,
9569        &${e}-slide-up-appear${e}-slide-up-appear-active${n}-dropdown-placement-topRight`]:{animationName:G4},[`&${e}-slide-down-leave${e}-slide-down-leave-active${n}-dropdown-placement-bottomLeft,
9570        &${e}-slide-down-leave${e}-slide-down-leave-active${n}-dropdown-placement-bottom,
9571        &${e}-slide-down-leave${e}-slide-down-leave-active${n}-dropdown-placement-bottomRight`]:{animationName:$4},[`&${e}-slide-up-leave${e}-slide-up-leave-active${n}-dropdown-placement-topLeft,
9572        &${e}-slide-up-leave${e}-slide-up-leave-active${n}-dropdown-placement-top,
9573        &${e}-slide-up-leave${e}-slide-up-leave-active${n}-dropdown-placement-topRight`]:{animationName:H4},[`${n}-dropdown-menu`]:{maxHeight:t.tabsDropdownHeight,margin:0,padding:`${Ot(i)} 0`,overflowX:"hidden",overflowY:"auto",textAlign:{_skip_check_:!0,value:"left"},listStyleType:"none",backgroundColor:t.colorBgContainer,backgroundClip:"padding-box",borderRadius:t.borderRadiusLG,outline:"none",boxShadow:t.boxShadowSecondary,"&-item":{...L1,display:"flex",alignItems:"center",minWidth:t.tabsDropdownWidth,margin:0,padding:`${Ot(t.paddingXXS)} ${Ot(t.paddingSM)}`,color:t.colorText,fontWeight:"normal",fontSize:t.fontSize,lineHeight:t.lineHeight,cursor:"pointer",transition:`all ${t.motionDurationSlow}`,"> span":{flex:1,whiteSpace:"nowrap"},"&-remove":{flex:"none",marginLeft:{_skip_check_:!0,value:t.marginSM},color:t.colorIcon,fontSize:t.fontSizeSM,background:"transparent",border:0,cursor:"pointer","&:hover":{color:s}},"&:hover":{background:t.controlItemBgHover},"&-disabled":{"&, &:hover":{color:t.colorTextDisabled,background:"transparent",cursor:"not-allowed"}}}}}}},_V=t=>{const{componentCls:e,margin:n,colorBorderSecondary:s,horizontalMargin:i,verticalItemPadding:r,verticalItemMargin:c,motionDurationSlow:p,calc:g}=t;return{[`${e}-top, ${e}-bottom`]:{flexDirection:"column",[`> ${e}-nav, > div > ${e}-nav`]:{margin:i,"&::before":{position:"absolute",right:{_skip_check_:!0,value:0},left:{_skip_check_:!0,value:0},borderBottom:`${Ot(t.lineWidth)} ${t.lineType} ${s}`,content:"''"},[`${e}-ink-bar`]:{height:t.lineWidthBold,"&-animated":{transition:["width","left","right"].map(_=>`${_} ${p}`).join(", ")}},[`${e}-nav-wrap`]:{"&::before, &::after":{top:0,bottom:0,width:t.controlHeight},"&::before":{left:{_skip_check_:!0,value:0},boxShadow:t.boxShadowTabsOverflowLeft},"&::after":{right:{_skip_check_:!0,value:0},boxShadow:t.boxShadowTabsOverflowRight},[`&${e}-nav-wrap-ping-left::before`]:{opacity:1},[`&${e}-nav-wrap-ping-right::after`]:{opacity:1}}}},[`${e}-top`]:{[`> ${e}-nav,
9574        > div > ${e}-nav`]:{"&::before":{bottom:0},[`${e}-ink-bar`]:{bottom:0}}},[`${e}-bottom`]:{[`> ${e}-nav, > div > ${e}-nav`]:{order:1,marginTop:n,marginBottom:0,"&::before":{top:0},[`${e}-ink-bar`]:{top:0}},[`> ${e}-body-holder, > div > ${e}-body-holder`]:{order:0}},[`${e}-left, ${e}-right`]:{[`> ${e}-nav, > div > ${e}-nav`]:{flexDirection:"column",minWidth:g(t.controlHeight).mul(1.25).equal(),[`${e}-tab`]:{padding:r,textAlign:"center"},[`${e}-tab + ${e}-tab`]:{margin:c},[`${e}-nav-wrap`]:{flexDirection:"column","&::before, &::after":{right:{_skip_check_:!0,value:0},left:{_skip_check_:!0,value:0},height:t.controlHeight},"&::before":{top:0,boxShadow:t.boxShadowTabsOverflowTop},"&::after":{bottom:0,boxShadow:t.boxShadowTabsOverflowBottom},[`&${e}-nav-wrap-ping-top::before`]:{opacity:1},[`&${e}-nav-wrap-ping-bottom::after`]:{opacity:1}},[`${e}-ink-bar`]:{width:t.lineWidthBold,"&-animated":{transition:["height","top"].map(_=>`${_} ${p}`).join(", ")}},[`${e}-nav-list, ${e}-nav-operations`]:{flex:"1 0 auto",flexDirection:"column"}}},[`${e}-left`]:{[`> ${e}-nav, > div > ${e}-nav`]:{[`${e}-ink-bar`]:{right:{_skip_check_:!0,value:0}}},[`> ${e}-body-holder, > div > ${e}-body-holder`]:{marginLeft:{_skip_check_:!0,value:Ot(g(t.lineWidth).mul(-1).equal())},borderLeft:{_skip_check_:!0,value:`${Ot(t.lineWidth)} ${t.lineType} ${t.colorBorder}`},[`> ${e}-body > ${e}-content`]:{paddingLeft:{_skip_check_:!0,value:t.paddingLG}}}},[`${e}-right`]:{[`> ${e}-nav, > div > ${e}-nav`]:{order:1,[`${e}-ink-bar`]:{left:{_skip_check_:!0,value:0}}},[`> ${e}-body-holder, > div > ${e}-body-holder`]:{order:0,marginRight:{_skip_check_:!0,value:g(t.lineWidth).mul(-1).equal()},borderRight:{_skip_check_:!0,value:`${Ot(t.lineWidth)} ${t.lineType} ${t.colorBorder}`},[`> ${e}-body > ${e}-content`]:{paddingRight:{_skip_check_:!0,value:t.paddingLG}}}}}},fV=t=>{const{componentCls:e,cardPaddingSM:n,cardPaddingLG:s,cardHeightSM:i,cardHeightLG:r,horizontalItemPaddingSM:c,horizontalItemPaddingLG:p}=t;return{[e]:{"&-small":{[`> ${e}-nav`]:{[`${e}-tab`]:{padding:c,fontSize:t.titleFontSizeSM}}},"&-large":{[`> ${e}-nav`]:{[`${e}-tab`]:{padding:p,fontSize:t.titleFontSizeLG,lineHeight:t.lineHeightLG}}}},[`${e}-card`]:{[`&${e}-small`]:{[`> ${e}-nav`]:{[`${e}-tab`]:{padding:n},[`${e}-nav-add`]:{minWidth:i,minHeight:i}},[`&${e}-bottom`]:{[`> ${e}-nav ${e}-tab`]:{borderRadius:`0 0 ${Ot(t.borderRadius)} ${Ot(t.borderRadius)}`}},[`&${e}-top`]:{[`> ${e}-nav ${e}-tab`]:{borderRadius:`${Ot(t.borderRadius)} ${Ot(t.borderRadius)} 0 0`}},[`&${e}-right`]:{[`> ${e}-nav ${e}-tab`]:{borderRadius:{_skip_check_:!0,value:`0 ${Ot(t.borderRadius)} ${Ot(t.borderRadius)} 0`}}},[`&${e}-left`]:{[`> ${e}-nav ${e}-tab`]:{borderRadius:{_skip_check_:!0,value:`${Ot(t.borderRadius)} 0 0 ${Ot(t.borderRadius)}`}}}},[`&${e}-large`]:{[`> ${e}-nav`]:{[`${e}-tab`]:{padding:s},[`${e}-nav-add`]:{minWidth:r,minHeight:r}}}}}},kV=t=>{const{componentCls:e,itemActiveColor:n,itemHoverColor:s,iconCls:i,tabsHorizontalItemMargin:r,horizontalItemPadding:c,itemSelectedColor:p,itemColor:g}=t,_=`${e}-tab`;return{[_]:{position:"relative",WebkitTouchCallout:"none",WebkitTapHighlightColor:"transparent",display:"inline-flex",alignItems:"center",padding:c,fontSize:t.titleFontSize,background:"transparent",border:0,outline:"none",cursor:"pointer",color:g,"&-btn, &-remove":{"&:focus:not(:focus-visible), &:active":{color:n}},"&-btn":{outline:"none",transition:`all ${t.motionDurationSlow}`,[`${_}-icon:not(:last-child)`]:{marginInlineEnd:t.marginSM},[`${_}-icon > svg`]:{display:"inline-block",verticalAlign:"middle",marginBlockEnd:"0.2em"}},"&-remove":{flex:"none",lineHeight:1,marginRight:{_skip_check_:!0,value:t.calc(t.marginXXS).mul(-1).equal()},marginLeft:{_skip_check_:!0,value:t.marginXS},color:t.colorIcon,fontSize:t.fontSizeSM,background:"transparent",border:"none",outline:"none",cursor:"pointer",transition:`all ${t.motionDurationSlow}`,"&:hover":{color:t.colorTextHeading},...gg(t)},"&:hover":{color:s},[`&${_}-active ${_}-btn`]:{color:p},[`&${_}-focus ${_}-btn:focus-visible`]:D1(t),[`&${_}-disabled`]:{color:t.colorTextDisabled,cursor:"not-allowed"},[`&${_}-disabled ${_}-btn, &${_}-disabled ${e}-remove`]:{"&:focus, &:active":{color:t.colorTextDisabled}},[`& ${_}-remove ${i}`]:{margin:0,verticalAlign:"middle"},[`${i}:not(:last-child)`]:{marginRight:{_skip_check_:!0,value:t.marginSM}}},[`${_} + ${_}`]:{margin:{_skip_check_:!0,value:r}}}},vV=t=>{const{componentCls:e,tabsHorizontalItemMarginRTL:n,iconCls:s,cardGutter:i,calc:r}=t;return{[`${e}-rtl`]:{direction:"rtl",[`${e}-nav`]:{[`${e}-tab`]:{margin:{_skip_check_:!0,value:n},[`${e}-tab:last-of-type`]:{marginLeft:{_skip_check_:!0,value:0}},[s]:{marginRight:{_skip_check_:!0,value:0},marginLeft:{_skip_check_:!0,value:t.marginSM}},[`${e}-tab-remove`]:{marginRight:{_skip_check_:!0,value:t.marginXS},marginLeft:{_skip_check_:!0,value:r(t.marginXXS).mul(-1).equal()},[s]:{margin:0}}}},[`&${e}-left`]:{[`> ${e}-nav`]:{order:1},[`> ${e}-body-holder`]:{order:0}},[`&${e}-right`]:{[`> ${e}-nav`]:{order:0},[`> ${e}-body-holder`]:{order:1}},[`&${e}-card${e}-top, &${e}-card${e}-bottom`]:{[`> ${e}-nav, > div > ${e}-nav`]:{[`${e}-tab + ${e}-tab`]:{marginRight:{_skip_check_:!0,value:i},marginLeft:{_skip_check_:!0,value:0}}}}},[`${e}-dropdown-rtl`]:{direction:"rtl"},[`${e}-menu-item`]:{[`${e}-dropdown-rtl`]:{textAlign:{_skip_check_:!0,value:"right"}}}}},yV=t=>{const{componentCls:e,tabsCardPadding:n,cardHeight:s,cardGutter:i,itemHoverColor:r,itemActiveColor:c,colorBorderSecondary:p}=t;return{[e]:{...Qg(t),display:"flex",[`> ${e}-nav, > div > ${e}-nav`]:{position:"relative",display:"flex",flex:"none",alignItems:"center",[`${e}-nav-wrap`]:{position:"relative",display:"flex",flex:"auto",alignSelf:"stretch",overflow:"hidden",
9574whiteSpace:"nowrap",transform:"translate(0)","&::before, &::after":{position:"absolute",zIndex:1,opacity:0,transition:`opacity ${t.motionDurationSlow}`,content:"''",pointerEvents:"none"}},[`${e}-nav-list`]:{position:"relative",display:"flex",transition:`opacity ${t.motionDurationSlow}`},[`${e}-nav-operations`]:{display:"flex",alignSelf:"stretch"},[`${e}-nav-operations-hidden`]:{position:"absolute",visibility:"hidden",pointerEvents:"none"},[`${e}-nav-more`]:{position:"relative",padding:n,background:"transparent",border:0,color:t.colorText,"&::after":{position:"absolute",right:{_skip_check_:!0,value:0},bottom:0,left:{_skip_check_:!0,value:0},height:t.calc(t.controlHeightLG).div(8).equal(),transform:"translateY(100%)",content:"''"}},[`${e}-nav-add`]:{minWidth:s,minHeight:s,marginLeft:{_skip_check_:!0,value:i},background:"transparent",border:`${Ot(t.lineWidth)} ${t.lineType} ${p}`,borderRadius:`${Ot(t.borderRadiusLG)} ${Ot(t.borderRadiusLG)} 0 0`,outline:"none",cursor:"pointer",color:t.colorText,transition:`all ${t.motionDurationSlow} ${t.motionEaseInOut}`,"&:hover":{color:r},"&:active, &:focus:not(:focus-visible)":{color:c},...gg(t,-3)}},[`${e}-extra-content`]:{flex:"none"},[`${e}-ink-bar`]:{position:"absolute",background:t.inkBarColor,pointerEvents:"none"},...kV(t),[`${e}-body`]:{position:"relative",width:"100%"},[`${e}-body-holder`]:{flex:"auto",minWidth:0,minHeight:0},[`${e}-content`]:{...gg(t),"&-hidden":{display:"none"}}},[`${e}-centered`]:{[`> ${e}-nav, > div > ${e}-nav`]:{[`${e}-nav-wrap`]:{[`&:not([class*='${e}-nav-wrap-ping']) > ${e}-nav-list`]:{margin:"auto"}}}}}},bV=t=>{const{cardHeight:e,cardHeightSM:n,cardHeightLG:s,controlHeight:i,controlHeightLG:r}=t,c=e||r,p=n||i,g=s||r+8;return{zIndexPopup:t.zIndexPopupBase+50,cardBg:t.colorFillAlter,cardHeight:c,cardHeightSM:p,cardHeightLG:g,cardPadding:`${(c-t.fontHeight)/2-t.lineWidth}px ${t.padding}px`,cardPaddingSM:`${(p-t.fontHeight)/2-t.lineWidth}px ${t.paddingXS}px`,cardPaddingLG:`${(g-t.fontHeightLG)/2-t.lineWidth}px ${t.padding}px`,titleFontSize:t.fontSize,titleFontSizeLG:t.fontSizeLG,titleFontSizeSM:t.fontSize,inkBarColor:t.colorPrimary,horizontalMargin:`0 0 ${t.margin}px 0`,horizontalItemGutter:32,horizontalItemMargin:"",horizontalItemMarginRTL:"",horizontalItemPadding:`${t.paddingSM}px 0`,horizontalItemPaddingSM:`${t.paddingXS}px 0`,horizontalItemPaddingLG:`${t.padding}px 0`,verticalItemPadding:`${t.paddingXS}px ${t.paddingLG}px`,verticalItemMargin:`${t.margin}px 0 0 0`,itemColor:t.colorText,itemSelectedColor:t.colorPrimary,itemHoverColor:t.colorPrimaryHover,itemActiveColor:t.colorPrimaryActive,cardGutter:t.marginXXS/2}},xV=Jg("Tabs",t=>{const e=Nu(t,{tabsCardPadding:t.cardPadding,dropdownEdgeChildVerticalPadding:t.paddingXXS,tabsDropdownHeight:200,tabsDropdownWidth:120,tabsHorizontalItemMargin:`0 0 0 ${Ot(t.horizontalItemGutter)}`,tabsHorizontalItemMarginRTL:`0 0 0 ${Ot(t.horizontalItemGutter)}`});return[fV(e),vV(e),_V(e),hV(e),mV(e),yV(e),gV(e)]},bV),AV=()=>null,CV=y.forwardRef((t,e)=>{const{type:n,className:s,rootClassName:i,size:r,onEdit:c,hideAdd:p,centered:g,addIcon:_,removeIcon:f,moreIcon:h,more:v,popupClassName:b,children:S,items:x,animated:w,style:A,indicatorSize:E,indicator:I,classNames:j,styles:T,destroyInactiveTabPane:P,destroyOnHidden:N,tabPlacement:D,tabPosition:F,...B}=t,{prefixCls:L}=B,{getPrefixCls:$,direction:q,getPopupContainer:Q,className:V,style:U,classNames:H,styles:st}=Oc("tabs"),{tabs:lt}=y.useContext(Jn),M=$("tabs",L),gt=rH(M),[rt,O]=xV(M,gt),z=y.useRef(null);y.useImperativeHandle(e,()=>({nativeElement:z.current}));let Y;n==="editable-card"&&(Y={onEdit:(kt,{key:pt,event:Bt})=>{c?.(kt==="add"?Bt:pt,kt)},removeIcon:f??lt?.removeIcon??y.createElement(CN,null),addIcon:(_??lt?.addIcon)||y.createElement(KN,null),showAdd:p!==!0});const it=$(),W=Tu(r),ut=pV(x,S),ht=cV(M,w),yt={align:I?.align??lt?.indicator?.align,size:I?.size??E??lt?.indicator?.size??lt?.indicatorSize},ft=y.useMemo(()=>{const kt=D??F??void 0,pt=q==="rtl";switch(kt){case"start":return pt?"right":"left";case"end":return pt?"left":"right";default:return kt}},[D,F,q]),mt={...t,size:W,tabPlacement:ft,items:ut},wt=vo(U),It=vo(A),[Pt,Nt]=Bc([H,j],[st,wt,T,It],{props:mt},{popup:{_default:"root"}});return y.createElement(uV,{ref:z,direction:q,getPopupContainer:Q,...B,items:ut,className:At({[`${M}-large`]:W==="large",[`${M}-small`]:W==="small",[`${M}-card`]:["card","editable-card"].includes(n),[`${M}-editable-card`]:n==="editable-card",[`${M}-centered`]:g},V,s,i,Pt.root,rt,O,gt),classNames:{...Pt,popup:At(b,rt,O,gt,Pt.popup?.root)},styles:{...Nt,popup:Nt.popup?.root},style:Nt.root,editable:Y,more:{icon:lt?.more?.icon??lt?.moreIcon??h??y.createElement(PN,null),transitionName:`${it}-slide-up`,...v}
9574,prefixCls:M,animated:ht,indicator:yt,destroyOnHidden:N??P,tabPosition:ft})}),W1=CV;W1.TabPane=AV;const hC=y.forwardRef((t,e)=>{const{prefixCls:n,className:s,hoverable:i=!0,...r}=t,{getPrefixCls:c}=y.useContext(Jn),p=c("card",n),g=At(`${p}-grid`,s,{[`${p}-grid-hoverable`]:i}),_=y.useRef(null);return y.useImperativeHandle(e,()=>({nativeElement:_.current})),y.createElement("div",{ref:_,...r,className:g})}),SV=t=>{const{antCls:e,componentCls:n,headerHeight:s,headerPadding:i,tabsMarginBottom:r}=t;return{display:"flex",justifyContent:"center",flexDirection:"column",minHeight:s,marginBottom:-1,padding:`0 ${Ot(i)}`,color:t.colorTextHeading,fontWeight:t.fontWeightStrong,fontSize:t.headerFontSize,background:t.headerBg,borderBottom:`${Ot(t.lineWidth)} ${t.lineType} ${t.colorBorderSecondary}`,borderRadius:`${Ot(t.borderRadiusLG)} ${Ot(t.borderRadiusLG)} 0 0`,...O1(),"&-wrapper":{width:"100%",display:"flex",alignItems:"center"},"&-title":{display:"inline-block",flex:1,...L1,[`
9575          > ${n}-typography,
9576          > ${n}-typography-edit-content
9577        `]:{insetInlineStart:0,marginTop:0,marginBottom:0}},[`${e}-tabs-top`]:{clear:"both",marginBottom:r,color:t.colorText,fontWeight:"normal",fontSize:t.fontSize,"&-bar":{borderBottom:`${Ot(t.lineWidth)} ${t.lineType} ${t.colorBorderSecondary}`}}}},wV=t=>{const{cardPaddingBase:e,colorBorderSecondary:n,cardShadow:s,lineWidth:i}=t;return{width:"33.33%",padding:e,border:0,borderRadius:0,boxShadow:`
9578      ${Ot(i)} 0 0 0 ${n},
9579      0 ${Ot(i)} 0 0 ${n},
9580      ${Ot(i)} ${Ot(i)} 0 0 ${n},
9581      ${Ot(i)} 0 0 0 ${n} inset,
9582      0 ${Ot(i)} 0 0 ${n} inset;
9583    `,transition:`all ${t.motionDurationMid}`,"&-hoverable:hover":{position:"relative",zIndex:1,boxShadow:s}}},EV=t=>{const{componentCls:e,iconCls:n,actionsLiMargin:s,cardActionsIconSize:i,colorBorderSecondary:r,actionsBg:c}=t;return{margin:0,padding:0,listStyle:"none",background:c,borderTop:`${Ot(t.lineWidth)} ${t.lineType} ${r}`,display:"flex",borderRadius:`0 0 ${Ot(t.borderRadiusLG)} ${Ot(t.borderRadiusLG)}`,...O1(),"& > li":{margin:s,color:t.colorTextDescription,textAlign:"center","> span":{position:"relative",display:"block",minWidth:t.calc(t.cardActionsIconSize).mul(2).equal(),fontSize:t.fontSize,lineHeight:t.lineHeight,cursor:"pointer","&:hover":{color:t.colorPrimary,transition:`color ${t.motionDurationMid}`},[`a:not(${e}-btn), > ${n}`]:{display:"inline-block",width:"100%",color:t.colorIcon,lineHeight:Ot(t.fontHeight),transition:`color ${t.motionDurationMid}`,"&:hover":{color:t.colorPrimary}},[`> ${n}`]:{fontSize:i,lineHeight:Ot(t.calc(i).mul(t.lineHeight).equal())}},"&:not(:last-child)":{borderInlineEnd:`${Ot(t.lineWidth)} ${t.lineType} ${r}`}}}},IV=t=>({margin:`${Ot(t.calc(t.marginXXS).mul(-1).equal())} 0`,display:"flex",...O1(),"&-avatar":{paddingInlineEnd:t.padding},"&-section":{overflow:"hidden",flex:1,"> div:not(:last-child)":{marginBottom:t.marginXS}},"&-title":{color:t.colorTextHeading,fontWeight:t.fontWeightStrong,fontSize:t.fontSizeLG,...L1},"&-description":{color:t.colorTextDescription}}),NV=t=>{const{componentCls:e,colorFillAlter:n,headerPadding:s,bodyPadding:i}=t;return{[`${e}-head`]:{padding:`0 ${Ot(s)}`,background:n,"&-title":{fontSize:t.fontSize}},[`${e}-body`]:{padding:`${Ot(t.padding)} ${Ot(i)}`}}},RV=t=>{const{componentCls:e}=t;return{overflow:"hidden",[`${e}-body`]:{userSelect:"none"}}},TV=t=>{const{componentCls:e,cardShadow:n,cardHeadPadding:s,colorBorderSecondary:i,boxShadowTertiary:r,bodyPadding:c,extraColor:p,motionDurationMid:g}=t;return{[e]:{...Qg(t),position:"relative",background:t.colorBgContainer,borderRadius:t.borderRadiusLG,[`&:not(${e}-bordered)`]:{boxShadow:r},[`${e}-head`]:SV(t),[`${e}-extra`]:{marginInlineStart:"auto",color:p,fontWeight:"normal",fontSize:t.fontSize},[`${e}-body`]:{padding:c,borderRadius:`0 0 ${Ot(t.borderRadiusLG)} ${Ot(t.borderRadiusLG)}`,"&:first-child":{borderStartStartRadius:t.borderRadiusLG,borderStartEndRadius:t.borderRadiusLG},"&:not(:last-child)":{borderEndStartRadius:0,borderEndEndRadius:0}},[`${e}-grid`]:wV(t),[`${e}-cover`]:{"> *":{display:"block",width:"100%",borderRadius:`${Ot(t.borderRadiusLG)} ${Ot(t.borderRadiusLG)} 0 0`}},[`${e}-actions`]:EV(t),[`${e}-meta`]:IV(t)},[`${e}-bordered`]:{border:`${Ot(t.lineWidth)} ${t.lineType} ${i}`,[`${e}-cover`]:{marginTop:-1,marginInlineStart:-1,marginInlineEnd:-1}},[`${e}
9583-hoverable`]:{cursor:"pointer",transition:["box-shadow","border-color"].map(_=>`${_} ${g}`).join(", "),"&:hover":{borderColor:"transparent",boxShadow:n}},[`${e}-contain-grid`]:{borderRadius:`${Ot(t.borderRadiusLG)} ${Ot(t.borderRadiusLG)} 0 0 `,[`&:not(:has(> ${e}-head))`]:{borderRadius:0},[`${e}-body`]:{display:"flex",flexWrap:"wrap"},[`&:not(${e}-loading) ${e}-body`]:{marginBlockStart:t.calc(t.lineWidth).mul(-1).equal(),marginInlineStart:t.calc(t.lineWidth).mul(-1).equal(),padding:0}},[`${e}-contain-tabs`]:{[`> div${e}-head`]:{minHeight:0,[`${e}-head-title, ${e}-extra`]:{paddingTop:s}}},[`${e}-type-inner`]:NV(t),[`${e}-loading`]:RV(t),[`${e}-rtl`]:{direction:"rtl"}}},jV=t=>{const{componentCls:e,bodyPaddingSM:n,headerPaddingSM:s,headerHeightSM:i,headerFontSizeSM:r}=t;return{[`${e}-small`]:{[`> ${e}-head`]:{minHeight:i,padding:`0 ${Ot(s)}`,fontSize:r,[`> ${e}-head-wrapper`]:{[`> ${e}-extra`]:{fontSize:t.fontSize}}},[`> ${e}-body`]:{padding:n}},[`${e}-small${e}-contain-tabs`]:{[`> ${e}-head`]:{[`${e}-head-title, ${e}-extra`]:{paddingTop:0,display:"flex",alignItems:"center"}}}}},PV=t=>({headerBg:"transparent",headerFontSize:t.fontSizeLG,headerFontSizeSM:t.fontSize,headerHeight:t.fontSizeLG*t.lineHeightLG+t.padding*2,headerHeightSM:t.fontSize*t.lineHeight+t.paddingXS*2,actionsBg:t.colorBgContainer,actionsLiMargin:`${t.paddingSM}px 0`,tabsMarginBottom:-t.padding-t.lineWidth,extraColor:t.colorText,bodyPaddingSM:12,headerPaddingSM:12,bodyPadding:t.bodyPadding??t.paddingLG,headerPadding:t.headerPadding??t.paddingLG}),MV=Jg("Card",t=>{const e=Nu(t,{cardShadow:t.boxShadowCard,cardHeadPadding:t.padding,cardPaddingBase:t.paddingLG,cardActionsIconSize:t.fontSize});return[TV(e),jV(e)]},PV),LV=t=>{const{actionClasses:e,actions:n=[],actionStyle:s}=t;return y.createElement("ul",{className:e,style:s},n.map((i,r)=>{const c=`action-${r}`;return y.createElement("li",{style:{width:`${100/n.length}%`},key:c},y.createElement("span",null,i))}))},OV=y.forwardRef((t,e)=>{const{prefixCls:n,className:s,rootClassName:i,style:r,extra:c,headStyle:p={},bodyStyle:g={},title:_,loading:f,bordered:h,variant:v,size:b,type:S,cover:x,actions:w,tabList:A,children:E,activeTabKey:I,defaultActiveTabKey:j,tabBarExtraContent:T,hoverable:P,tabProps:N={},classNames:D,styles:F,...B}=t,{getPrefixCls:L,direction:$,className:q,style:Q,classNames:V,styles:U}=Oc("card"),[H]=vU("card",v,h),st=Tu(b),lt={...t,size:st,variant:H},M=vo(Q),gt=vo(r),[rt,O]=Bc([V,D],[U,M,F,gt],{props:lt}),z=at=>{t.onTabChange?.(at)},Y=y.useMemo(()=>Yi(E),[E]),it=y.useMemo(()=>Y.some(at=>y.isValidElement(at)&&at.type===hC),[Y]),W=L("card",n),[ut,ht]=MV(W),yt=y.createElement(ju,{loading:!0,active:!0,paragraph:{rows:4},title:!1},E),ft=I!==void 0,mt={...N,[ft?"activeKey":"defaultActiveKey"]:ft?I:j,tabBarExtraContent:T};let wt;const It=st!=="small"?"large":st,Pt=A?y.createElement(W1,{size:It,...mt,className:`${W}-head-tabs`,onChange:z,items:A.map(({tab:at,..._t})=>({label:at,..._t}))}):null;if(Qo(_)||Qo(c)||Pt){const at=At(`${W}-head`,rt.header),_t=At(`${W}-head-title`,rt.title),Tt=At(`${W}-extra`,rt.extra),jt={...p,...O.header};wt=y.createElement("div",{className:at,style:jt},y.createElement("div",{className:`${W}-head-wrapper`},Qo(_)&&y.createElement("div",{className:_t,style:O.title},_),Qo(c)&&y.createElement("div",{className:Tt,style:O.extra},c)),Pt)}const Nt=At(`${W}-cover`,rt.cover),kt=Qo(x)?y.createElement("div",{className:Nt,style:O.cover},x):null,pt=At(`${W}-body`,rt.body),Bt={...g,...O.body},ne=f||Y.length?y.createElement("div",{className:pt,style:Bt},f?yt:E):null,Xt=At(`${W}-actions`,rt.actions),Ut=w?.length?y.createElement(LV,{actionClasses:Xt,actionStyle:O.actions,actions:w}):null,Se=Kg(B,["onTabChange"]),ue=At(W,q,{[`${W}-loading`]:f,[`${W}-bordered`]:H!=="borderless",[`${W}-hoverable`]:P,[`${W}-contain-grid`]:it,[`${W}-contain-tabs`]:A?.length,[`${W}-small`]:st==="small",[`${W}-type-${S}`]:!!S,[`${W}-rtl`]:$==="rtl"},s,i,ut,ht,rt.root),ge={...O.root};return y.createElement("div",{ref:e,...Se,className:ue,style:ge},wt,kt,ne,Ut)}),DV=y.forwardRef((t,e)=>
9583{const{prefixCls:n,className:s,avatar:i,title:r,description:c,style:p,classNames:g,styles:_,...f}=t,{getPrefixCls:h,className:v,style:b,classNames:S,styles:x}=Oc("cardMeta"),A=`${h("card",n)}-meta`,E=vo(b),I=vo(p),[j,T]=Bc([S,g],[x,E,_,I],{props:t}),P=At(A,s,v,j.root),N={...T.root},D=At(`${A}-avatar`,j.avatar),F=At(`${A}-title`,j.title),B=At(`${A}-description`,j.description),L=At(`${A}-section`,j.section),$=Qo(i)?y.createElement("div",{className:D,style:T.avatar},i):null,q=Qo(r)?y.createElement("div",{className:F,style:T.title},r):null,Q=Qo(c)?y.createElement("div",{className:B,style:T.description},c):null,V=q||Q?y.createElement("div",{className:L,style:T.section},q,Q):null,U=y.useRef(null);return y.useImperativeHandle(e,()=>({nativeElement:U.current})),y.createElement("div",{ref:U,...f,className:P,style:N},$,V)}),X1=OV;X1.Grid=hC;X1.Meta=DV;function zV(t,e,n){var s=n||{},i=s.noTrailing,r=i===void 0?!1:i,c=s.noLeading,p=c===void 0?!1:c,g=s.debounceMode,_=g===void 0?void 0:g,f,h=!1,v=0;function b(){f&&clearTimeout(f)}function S(w){var A=w||{},E=A.upcomingOnly,I=E===void 0?!1:E;b(),h=!I}function x(){for(var w=arguments.length,A=new Array(w),E=0;E<w;E++)A[E]=arguments[E];var I=this,j=Date.now()-v;if(h)return;function T(){v=Date.now(),e.apply(I,A)}function P(){f=void 0}!p&&_&&!f&&T(),b(),_===void 0&&j>t?p?(v=Date.now(),r||(f=setTimeout(_?P:T,t))):T():r!==!0&&(f=setTimeout(_?P:T,_===void 0?t-j:t))}return x.cancel=S,x}function BV(t,e,n){var s={},i=s.atBegin,r=i===void 0?!1:i;return zV(t,e,{debounceMode:r!==!1})}const Ag=100,_C=Ag/5,fC=Ag/2-_C/2,Uf=fC*2*Math.PI,qx=50,Kx=t=>{const{dotClassName:e,style:n,hasCircleCls:s}=t;return y.createElement("circle",{className:At(`${e}-circle`,{[`${e}-circle-bg`]:s}),r:fC,cx:qx,cy:qx,strokeWidth:_C,style:n})},$V=({percent:t,prefixCls:e})=>{const n=`${e}-dot`,s=`${n}-holder`,i=`${s}-hidden`,[r,c]=y.useState(!1);sa(()=>{t!==0&&c(!0)},[t]);const p=Math.max(Math.min(t,100),0);if(!r)return null;const g={strokeDashoffset:`${Uf/4}`,strokeDasharray:`${Uf*p/100} ${Uf*(100-p)/100}`};return y.createElement("span",{className:At(s,`${n}-progress`,{[i]:p<=0})},y.createElement("svg",{viewBox:`0 0 ${Ag} ${Ag}`,role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":p},y.createElement(Kx,{dotClassName:n,hasCircleCls:!0}),y.createElement(Kx,{dotClassName:n,style:g})))};function GV(t){const{prefixCls:e,percent:n=0,className:s,style:i}=t,r=`${e}-dot`,c=`${r}-holder`,p=`${c}-hidden`;return y.createElement(y.Fragment,null,y.createElement("span",{className:At(c,s,n>0&&p),style:i},y.createElement("span",{className:At(r,`${e}-dot-spin`)},[1,2,3,4].map(g=>y.createElement("i",{className:`${e}-dot-item`,key:g})))),y.createElement($V,{prefixCls:e,percent:n}))}function HV(t){const{prefixCls:e,indicator:n,percent:s,className:i,style:r}=t,c=`${e}-dot`;return n&&y.isValidElement(n)?z4(n,p=>({className:At(p.className,c,i),style:{...p.style,...r},percent:s})):y.createElement(GV,{prefixCls:e,percent:s,className:i,style:r})}const FV=new ps("antSpinMove",{to:{opacity:1}}),UV=new ps("antRotate",{to:{transform:"rotate(405deg)"}}),VV=t=>{const{componentCls:e}=t,n=`${e}-section`;return{[e]:{...Qg(t),position:"relative","&-rtl":{direction:"rtl"},[`&${n}, > ${n}`]:{display:"flex",alignItems:"center",flexDirection:"column",gap:t.paddingSM,color:t.colorPrimary},[`&${n}`]:{display:"inline-flex"},[`> ${n}`]:{position:"absolute",top:"50%",left:{_skip_check_:!0,value:"50%"},transform:"translate(-50%, -50%)",zIndex:1},[`${e}-description`]:{fontSize:t.fontSize,lineHeight:1},[`${e}-container`]:{position:"relative",transition:`opacity ${t.motionDurationSlow}`,"&::after":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:10,width:"100%",height:"100%",background:t.colorBgContainer,opacity:0,transition:`all ${t.motionDurationSlow}`,content:'""',pointerEvents:"none"}},"&-spinning":{[`${e}-description`]:{textShadow:`0 0px 5px ${t.colorBgContainer}`},[`${e}-container`]:{clear:"both",opacity:.5,userSelect:"none",pointerEvents:"none","&::after":{opacity:.4,pointerEvents:"auto"}}},"&-fullscreen":{position:"fixed",inset:0,backgroundColor:t.colorBgMask,zIndex:t.zIndexPopupBase,opacity:0,pointerEvents:"none",transition:`all ${t.motionDurationMid}`,[`&${e}-spinning`]:{opacity:1,pointerEvents:"auto"},[`> ${n}`]:{color:t.colorWhite,[`${e}-description`]:{color:t.colorTextLightSolid}}}}}},qV=t=>{const{componentCls:e,antCls:n,motionDurationSlow:s}=t,[i,r]=h4(n,"spin");return{[e]:{[i("dot-holder-size")]:t.dotSize,[i("dot-item-size")]:`calc((${r("dot-holder-size")} - ${t.marginXXS} / 2) / 2)`,[`${e}-dot`]:{"&-holder":{width:"1em",height:"1em",fontSize:r("dot-holder-size"),display:"inline-block",transition:["transform","opacity"].map(c=>`${c} ${s} ease`).join(", "),transformOrigin:"50% 50%",lineHeight:1,"&-hidden":{transform:"scale(0.3)",opacity:0}
9583},position:"relative",display:"inline-block",fontSize:r("dot-holder-size"),width:"1em",height:"1em","&-spin":{transform:"rotate(45deg)",animationName:UV,animationDuration:"1.2s",animationIterationCount:"infinite",animationTimingFunction:"linear"},"&-item":{position:"absolute",display:"block",width:r("dot-item-size"),height:r("dot-item-size"),background:"currentColor",borderRadius:"100%",transform:"scale(0.75)",transformOrigin:"50% 50%",opacity:.3,animationName:FV,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear",animationDirection:"alternate","&:nth-child(1)":{top:0,insetInlineStart:0,animationDelay:"0s"},"&:nth-child(2)":{top:0,insetInlineEnd:0,animationDelay:"0.4s"},"&:nth-child(3)":{insetInlineEnd:0,bottom:0,animationDelay:"0.8s"},"&:nth-child(4)":{bottom:0,insetInlineStart:0,animationDelay:"1.2s"}},"&-progress":{position:"absolute",left:"50%",top:0,transform:"translateX(-50%)"},"&-circle":{strokeLinecap:"round",transition:["stroke-dashoffset","stroke-dasharray","stroke","stroke-width","opacity"].map(c=>`${c} ${s} ease`).join(","),fillOpacity:0,stroke:"currentcolor"},"&-circle-bg":{stroke:t.colorFillSecondary}}}}},KV=t=>{const{componentCls:e}=t,[n]=h4(t.antCls,"spin");return{[e]:{"&-sm":{[n("dot-holder-size")]:t.dotSizeSM},"&-lg":{[n("dot-holder-size")]:t.dotSizeLG}}}},WV=t=>{const{controlHeightLG:e,controlHeight:n}=t;return{contentHeight:400,dotSize:e/2,dotSizeSM:e*.35,dotSizeLG:n}},XV=Jg("Spin",t=>{const e=Nu(t,{spinDotDefault:t.colorTextDescription});return[VV(e),qV(e),KV(e)]},WV),YV=200,Wx=[[30,.05],[70,.03],[96,.01]];function QV(t,e){const[n,s]=y.useState(0),i=y.useRef(null),r=e==="auto";return y.useEffect(()=>(r&&t&&(s(0),i.current=setInterval(()=>{s(c=>{const p=100-c;for(let g=0;g<Wx.length;g+=1){const[_,f]=Wx[g];if(c<=_)return c+p*f}return c})},YV)),()=>{i.current&&(clearInterval(i.current),i.current=null)}),[r,t]),r?n:e}let kC;function JV(t,e){return!!t&&!!e&&!Number.isNaN(Number(e))}const Y1=y.forwardRef((t,e)=>{const{prefixCls:n,spinning:s=!0,delay:i=0,className:r,rootClassName:c,size:p,tip:g,description:_,wrapperClassName:f,style:h,children:v,fullscreen:b=!1,indicator:S,percent:x,classNames:w,styles:A,...E}=t,{getPrefixCls:I,direction:j,indicator:T,className:P,style:N,classNames:D,styles:F}=Oc("spin"),B=I("spin",n),[L,$]=XV(B),[q,Q]=y.useState(()=>s&&!JV(s,i)),V=QV(q,x);y.useEffect(()=>{if(s){const W=BV(i,()=>{Q(!0)});return W(),()=>{W?.cancel?.()}}Q(!1)},[i,s]);const U=Tu(W=>p??W),H=_??g,st={...t,size:U,spinning:q,tip:H,description:H,fullscreen:b,children:v,percent:V},lt=vo(N),[M,gt]=Bc([D,w],[F,lt,A],{props:st}),rt=S??T??kC,O=typeof v<"u",z=O||b,Y=y.createElement(y.Fragment,null,y.createElement(HV,{className:At(M.indicator),style:gt.indicator,prefixCls:B,indicator:rt,percent:V}),H&&y.createElement("div",{className:At(`${B}-description`,M.tip,M.description),style:{...gt.tip,...gt.description}},H)),it=y.useRef(null);return y.useImperativeHandle(e,()=>({nativeElement:it.current})),y.createElement("div",{ref:it,className:At(B,{[`${B}-sm`]:U==="small",[`${B}-lg`]:U==="large",[`${B}-spinning`]:q,[`${B}-rtl`]:j==="rtl",[`${B}-fullscreen`]:b},c,M.root,b&&M.mask,z?f:[`${B}-section`,M.section],P,r,L,$),style:{...gt.root,...z?{}:gt.section,...b?gt.mask:{},...h},"aria-live":"polite","aria-busy":q,...E},q&&(z?y.createElement("div",{className:At(`${B}-section`,M.section),style:gt.section},Y):Y),O&&y.createElement("div",{className:At(`${B}-container`,M.container),style:gt.container},v))});Y1.setDefaultIndicator=t=>{kC=t};const Xx={ja:["All","Event","News","Charity","Culture","Career"],default:["All","Event","News","Charity","Culture","Career"]},Yx=t=>{if(t.includes("年")&&t.includes("月")&&t.includes("日")){const e=parseInt(t.split("年")[0],10),n=parseInt(t.split("年")[1].split("月")[0],10)-1,s=parseInt(t.split("月")[1].split("日")[0],10);return new Date(e,n,s).getTime()}return new Date(t).getTime()};function vC({initialCategory:t="All",hideHeaderTabs:e=!1,overrideTitle:n,overrideSubtitle:s}={}){const{t:i,i18n:r}=De(),c=si(),p=y.useMemo(()=>(r.language||"en").split("-")[0].toLowerCase(),[r.language]),[g,_]=y.useState(t),[f]=y.useState("newest"),[h,v]=y.useState(7),[b,S]=y.useState([]),[x,w]=y.useState(!0);y.useEffect(()=>{t&&_(t)},[t]);const A=Xx[p]||Xx.default;y.useEffect(()=>{(async()=>{w(!0);try{const D=await ug(p,g);S(D)}catch(D){console.error("Error loading news:",D),S(oD(p))}finally{w(!1)}})()},[p,g]);const E=y.useMemo(()=>
9583{if(g==="All")return b;const D={Event:["Event","Sự kiện","event","0","イベント","ニュース","Nội bộ","Company","news"],News:["News","Blog","blog","1","ブログ"],Charity:["Charity","Thiện nguyện","charity","charity_story","2","ボランティア"],Culture:["Culture","Văn hóa","culture","3","文化"],Career:["Career","Kiến thức nghề nghiệp","career","4","キャリア知識","knowledge"],Company:["Company","Nội bộ","company","社内"],AiBlog:["AiBlog","AI Blog","ai","AI","ai_blog","5","AIコラム","Kiến thức AI"]}[g]||[g];return b.filter(F=>{const B=D.includes(F.category),L=F.type_post?D.includes(String(F.type_post)):!1;return B||L})},[b,g]),I=y.useMemo(()=>{let N=[...E].sort((B,L)=>{const $=Yx(B.date),q=Yx(L.date);return f==="newest"?q-$:$-q});const D="218",F=N.findIndex(B=>String(B.id)===D);if(F!==-1&&g==="All"){const[B]=N.splice(F,1);N=[B,...N]}return N},[E,f,g]),j=I[0],T=I.slice(1,h),P=I.length>h;return l.jsx("div",{className:"news-container",children:l.jsxs("div",{className:"news-wrapper",children:[l.jsxs("header",{className:"news-header",children:[l.jsx("h1",{className:"news-title",children:n||i("news.title",{defaultValue:"Blog"})}),l.jsx("h2",{className:"news-subtitle",children:s||i("news.subtitle")}),!e&&l.jsx("div",{className:"news-controls",children:l.jsx(W1,{activeKey:g,onChange:N=>_(N),items:A.map(N=>({key:N,label:i(`news.categories.${N}`,{defaultValue:N})})),className:"news-categories-tabs"})})]}),x?l.jsx("div",{className:"flex justify-center py-20",children:l.jsx(Y1,{size:"large"})}):l.jsxs(l.Fragment,{children:[j&&g==="All"&&l.jsx("section",{className:"news-featured-row",children:l.jsxs("div",{className:"news-featured-card",onClick:()=>c(`/news/${j.id}`),children:[l.jsx("div",{className:"news-featured-image-box",children:l.jsx("img",{src:j.imageUrl||"/assets/images/placeholder.jpg",alt:j.title})}),l.jsxs("div",{className:"news-featured-content",children:[l.jsx("span",{className:"news-featured-meta",children:j.category}),l.jsx("h2",{className:"news-featured-title text-serif",children:j.title}),l.jsx("p",{className:"news-featured-excerpt",children:j.summary||"Discover the latest insights and stories from React Plus."}),l.jsx("time",{className:"news-featured-date",children:j.date})]})]})}),l.jsx("div",{className:"news-grid",style:{marginTop:g!=="All"?"0":"80px"},children:(g==="All"?T:I.slice(0,h)).map(N=>l.jsxs("div",{className:"news-card",onClick:()=>c(`/news/${N.id}`),children:[l.jsx("div",{className:"news-card-cover",children:l.jsx("img",{src:N.imageUrl||"/assets/images/placeholder.jpg",alt:N.title,className:"news-card-image"})}),l.jsxs("div",{className:"news-card-content",children:[l.jsx("span",{className:"news-card-category",children:N.category}),l.jsx("h3",{className:"news-card-title text-serif",children:N.title}),l.jsx("time",{className:"news-card-date",children:N.date})]})]},N.id))}),P&&l.jsx("div",{className:"news-load-more-wrapper",children:l.jsx("button",{className:"news-load-more-button",onClick:()=>v(N=>N+6),children:i("news.loadMore",{defaultValue:"Load more posts"})})})]})]})})}function ZV({html:t,className:e,onNavigate:n}){const s=y.useRef(null),[i,r]=y.useState(800),c=y.useRef(800),p=()=>{const h=s.current;if(h&&h.contentWindow&&h.contentWindow.document){const v=h.contentWindow.document;let b=0;const S=v.querySelectorAll(".page-frame");if(S.length>0){let x=0;S.forEach(w=>{const A=w,E=A.offsetTop+A.offsetHeight;E>x&&(x=E)}),b=x+40}else b=Math.max(v.body?v.body.scrollHeight:0,v.body?v.body.offsetHeight:0,v.documentElement?v.documentElement.scrollHeight:0,v.documentElement?v.documentElement.offsetHeight:0);b>0&&Math.abs(b-c.current)>5&&(c.current=b,r(b))}},g=()=>{const h=s.current;if(h&&h.contentWindow){try{h.contentWindow.dispatchEvent(new Event("resize"))}catch{}p()}};y.useEffect(()=>(window.__reactPlusNavigate=h=>{if(n)try{n(h);return}catch{}window.top?window.top.location.href=h:window.location.href=h},()=>{delete window.__reactPlusNavigate}),[n]),y.useEffect(()=>{const h=s.current;if(!h)return;let v,b;typeof ResizeObserver<"u"&&(b=new ResizeObserver(()=>{g()}),b.observe(h));const S=()=>
9583{if(v){try{v()}catch{}v=void 0}g();const x=setTimeout(g,100),w=setTimeout(g,350);try{const A=h.contentDocument||h.contentWindow?.document;if(A){let E;typeof ResizeObserver<"u"&&A.body&&(E=new ResizeObserver(()=>{p()}),E.observe(A.body)),A.querySelectorAll("img").forEach(T=>{T.complete||(T.addEventListener("load",g),T.addEventListener("error",g))});const j=h.contentWindow;if(j)try{j.addEventListener("resize",p)}catch{}v=()=>{if(clearTimeout(x),clearTimeout(w),E&&E.disconnect(),j)try{j.removeEventListener("resize",p)}catch{}}}}catch(A){console.error("Error attaching iframe listeners:",A)}};return h.addEventListener("load",S),h.contentDocument&&h.contentDocument.readyState==="complete"&&S(),()=>{if(h.removeEventListener("load",S),b&&b.disconnect(),v)try{v()}catch{}}},[t,n]);const _=/^\s*<!DOCTYPE|^\s*<html|^\s*<meta|<style/i.test(t),f=(()=>{const h=`
9584<script>
9585  (function() {
9586    document.addEventListener('click', function(e) {
9587      var rawTarget = e.target;
9588      var anchor = rawTarget ? rawTarget.closest('a') : null;
9589      if (!anchor) return;
9590
9591      var href = anchor.getAttribute('href');
9592      if (!href || href.startsWith('javascript:') || href === '#') return;
9593
9594      // 1. In-page hash anchor (smooth scroll to element)
9595      if (href.startsWith('#')) {
9596        e.preventDefault();
9597        e.stopPropagation();
9598        var elementId = href.substring(1);
9599        var targetEl = document.getElementById(elementId);
9600        if (targetEl) {
9601          try {
9602            if (window.parent && window.parent !== window) {
9603              var frames = window.parent.document.querySelectorAll('iframe');
9604              for (var i = 0; i < frames.length; i++) {
9605                if (frames[i].contentDocument === document) {
9606                  var ifRect = frames[i].getBoundingClientRect();
9607                  var elRect = targetEl.getBoundingClientRect();
9608                  window.parent.scrollTo({
9609                    top: (window.parent.scrollY || window.parent.pageYOffset) + ifRect.top + elRect.top - 90,
9610                    behavior: 'smooth'
9611                  });
9612                  return;
9613                }
9614              }
9615            }
9616            targetEl.scrollIntoView({ behavior: 'smooth' });
9617          } catch(err) {
9618            targetEl.scrollIntoView({ behavior: 'smooth' });
9619          }
9620        }
9621        return;
9622      }
9623
9624      // 2. Protocols: mailto: or tel:
9625      if (href.startsWith('mailto:') || href.startsWith('tel:')) {
9626        e.preventDefault();
9627        e.stopPropagation();
9628        var topWin = window.top || window.parent || window;
9629        topWin.location.href = href;
9630        return;
9631      }
9632
9633      // ALWAYS prevent default iframe self-navigation!
9634      e.preventDefault();
9635      e.stopPropagation();
9636
9637      // 3. User requested new tab explicitly via modifier key (Cmd/Ctrl) or middle click
9638      if (e.metaKey || e.ctrlKey || e.button === 1) {
9639        var topWin = window.top || window.parent || window;
9640        topWin.open(href, '_blank', 'noopener,noreferrer');
9641        return;
9642      }
9643
9644      // 4. Determine if internal vs external link
9645      var isInternal = false;
9646      var targetPath = href;
9647
9648      try {
9649        if (href.startsWith('/') && !href.startsWith('//')) {
9650          isInternal = true;
9651          targetPath = href;
9652        } else {
9653          var parsed = new URL(href, window.location.href);
9654          var parentHost = (window.parent && window.parent.location.hostname)
9655            ? window.parent.location.hostname.replace(/^www\\./, '')
9656            : '';
9657          var linkHost = parsed.hostname.replace(/^www\\./, '');
9658
9659          var isSameDomain = (
9660            linkHost === parentHost ||
9661            linkHost === 'reactplus.com' ||
9662            linkHost === 'reactplus.vn' ||
9663            linkHost === 'rpg.vn' ||
9664            linkHost === 'localhost' ||
9665            linkHost === '127.0.0.1'
9666          );
9667
9668          var isSubdomainService = parsed.hostname.startsWith('api.') || parsed.hostname.startsWith('admin.');
9669
9670          if (isSameDomain && !isSubdomainService) {
9671            isInternal = true;
9672            // Normalize any locale prefix like /vi/news/233 -> /news/233 for React Router
9673            var rawPath = parsed.pathname + parsed.search + parsed.hash;
9674            targetPath = rawPath.replace(/^\\/(vi|ja|en)(\\/|$)/, '/');
9675          }
9676        }
9677      } catch(err) {
9678        isInternal = false;
9679      }
9680
9681      var targetAttr = anchor.getAttribute('target');
9682
9683      // If author explicitly set target="_blank", or if it is an external link
9684      if (targetAttr === '_blank' || !isInternal) {
9685        var topWin = window.top || window.parent || window;
9686        topWin.open(href, '_blank', 'noopener,noreferrer');
9687        return;
9688      }
9689
9690      // Internal link: navigate the main window using React Router in parent page
9691      if (window.parent && window.parent !== window && window.parent.__reactPlusNavigate) {
9692        window.parent.__reactPlusNavigate(targetPath);
9693        return;
9694      }
9695
9696      // Fallback: navigate the top window
9697      var topWin = window.top || window.parent || window;
9698      topWin.location.href = targetPath;
9699    }, true);
9700  })();
9701<\/script>`,v="<style>a, a * { cursor: pointer !important; }</style>";let b=_?t:`<!DOCTYPE html>
9702<html>
9703<head>
9704  <meta charset="utf-8">
9705  <meta name="viewport" content="width=device-width, initial-scale=1.0">
9706  <link rel="preconnect" href="https://fonts.googleapis.com">
9707  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9708  <link href="https://fonts.googleapis.com/css2?family=Nunito:wght@300;400;500;600;700&display=swap" rel="stylesheet">
9709  <style>
9710    @font-face {
9711      font-family: "Product Sans";
9712      src: url("/fonts/Product Sans Regular.otf") format("opentype");
9713      font-weight: normal;
9714      font-style: normal;
9715    }
9716    @font-face {
9717      font-family: "Product Sans";
9718      src: url("/fonts/Product Sans Bold.otf") format("opentype");
9719      font-weight: bold;
9720      font-style: normal;
9721    }
9722    html, body {
9723      margin: 0;
9724      padding: 0;
9725      width: 100%;
9726      background: transparent;
9727      box-sizing: border-box;
9728      overflow-x: hidden;
9729      font-family: "Product Sans", "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
9730      font-size: 1rem;
9731      line-height: 1.8;
9732      color: #000;
9733      -webkit-font-smoothing: antialiased;
9734    }
9735    p {
9736      font-size: 1rem;
9737      line-height: 1.8;
9738      color: #000;
9739      margin: 0 0 1.5rem 0;
9740      font-weight: 500;
9741    }
9742    ul, ol {
9743      margin: 0 0 1.5rem 1.5rem;
9744      padding: 0;
9745    }
9746    li {
9747      font-size: 1rem;
9748      line-height: 1.8;
9749      margin-bottom: 0.5rem;
9750      font-weight: 500;
9751    }
9752    strong, b {
9753      font-weight: 700;
9754      color: #000;
9755    }
9756    img {
9757      max-width: 100%;
9758      height: auto;
9759      border-radius: 8px;
9760      display: block;
9761      margin: 1.5rem auto;
9762    }
9763    a {
9764      color: #1F6FE0;
9765      text-decoration: underline;
9766      text-underline-offset: 2px;
9767      cursor: pointer;
9768    }
9769    a:hover {
9770      color: #3893FE;
9771    }
9772  </style>
9773  <script>
9774    function fit() {
9775      const vw = (document.documentElement.clientWidth || window.innerWidth) - 32;
9776      if (vw <= 0) return;
9777      const scale = Math.max(0.05, vw / 1280);
9778      document.documentElement.style.setProperty('--scale', scale);
9779      document.querySelectorAll('.page-frame').forEach(function(frame) {
9780        const page = frame.querySelector('.page');
9781        if (page) { frame.style.height = (page.offsetHeight * scale) + 'px'; }
9782      });
9783    }
9784    window.addEventListener('resize', fit);
9785    window.addEventListener('load', fit);
9786    document.addEventListener('DOMContentLoaded', fit);
9787  <\/script>
9788</head>
9789<body>
9790  ${t}
9791</body>
9792</html>`;/<base\s+[^>]*target=/i.test(b)||(/<head[^>]*>/i.test(b)?b=b.replace(/<head[^>]*>/i,x=>`${x}
9793  <base target="_top">`):b=`<base target="_top">
9794`+b);const S=`
9795${v}
9796${h}
9797`;return/<\/head>/i.test(b)?b=b.replace(/<\/head>/i,`${S}</head>`):/<\/body>/i.test(b)?b=b.replace(/<\/body>/i,`${S}</body>`):b+=S,b})();return l.jsx("iframe",{ref:s,srcDoc:f,title:"News Article HTML Content",className:e,style:{width:"100%",height:`${i}px`,border:"none",overflow:"hidden",display:"block",background:"transparent"}})}const tq={"purple-300":"#c4b5fd","purple-400":"#a78bfa","purple-600":"#9333ea","blue-200":"#bfdbfe","pink-400":"#f472b6","orange-300":"#fdba74","orange-200":"#fed7aa","green-200":"#bbf7d0","purple-200":"#e9d5ff","pink-200":"#fce7f3","red-200":"#fecaca","cyan-200":"#a5f3fc","teal-200":"#99f6e4","indigo-200":"#c7d2fe","yellow-200":"#fef08a","gray-200":"#e5e7eb","gray-400":"#9ca3af"};function eq(t){if(!t)return{background:"linear-gradient(to bottom right, #e5e7eb, #9ca3af)"};const e=t.split(" ").map(n=>{const s=n.replace(/^(from-|via-|to-)/,"");return tq[s]||s}
9797).filter(Boolean);return e.length===0?{background:"linear-gradient(to bottom right, #e5e7eb, #9ca3af)"}:{background:`linear-gradient(to bottom right, ${e.join(", ")})`}}function nq(t){const e={Jan:"January",Feb:"February",Mar:"March",Apr:"April",May:"May",Jun:"June",Jul:"July",Aug:"August",Sep:"September",Oct:"October",Nov:"November",Dec:"December"},n=t.split(" ");if(n.length===3){const i=n[0],r=n[1].replace(",",""),c=n[2];return`${e[i]||i} ${r}, ${c}`}const s=new Date(t);return isNaN(s.getTime())?t:`${["January","February","March","April","May","June","July","August","September","October","November","December"][s.getMonth()]} ${s.getDate()}, ${s.getFullYear()}`}const Qx=t=>{if(t.includes("年")&&t.includes("月")&&t.includes("日")){const e=parseInt(t.split("年")[0],10),n=parseInt(t.split("年")[1].split("月")[0],10)-1,s=parseInt(t.split("月")[1].split("日")[0],10);return new Date(e,n,s).getTime()}return new Date(t).getTime()};function aq(){const{id:t}=k7(),e=si(),{t:n,i18n:s}=De(),[i,r]=y.useState(void 0),[c,p]=y.useState([]),[g,_]=y.useState(!0),f=(s.language||"en").split("-")[0].toLowerCase();if(y.useEffect(()=>{(async()=>{_(!0),window.scrollTo({top:0,behavior:"smooth"});try{const b=await iD(Number(t),f);r(b);const x=(await ug(f)).filter(w=>w.id!==Number(t)).sort((w,A)=>Qx(A.date)-Qx(w.date)).slice(0,4);p(x)}catch(b){console.error("Error loading news:",b)}finally{_(!1)}})()},[t,f]),g)return l.jsx("div",{className:"news-detail-container",children:l.jsx("div",{className:"news-detail-wrapper",children:l.jsx("div",{className:"news-detail-not-found",children:n("news.loading",{defaultValue:"Loading..."})})})});if(!i)return l.jsx("div",{className:"news-detail-container",children:l.jsx("div",{className:"news-detail-wrapper",children:l.jsx("div",{className:"news-detail-not-found",children:n("news.notFound",{defaultValue:"Article not found"})})})});const h=()=>{navigator.share?navigator.share({title:i.title,text:i.summary,url:window.location.href}):navigator.clipboard.writeText(window.location.href)};return l.jsx("div",{className:`news-detail-container ${i.rawHtml?"has-raw-html":""}`,children:l.jsxs("div",{className:`news-detail-wrapper ${i.rawHtml?"has-raw-html":""}`,children:[l.jsxs("div",{className:"news-detail-header",children:[l.jsxs("div",{className:"news-detail-meta-top",children:[l.jsx("span",{className:"news-detail-date",children:nq(i.date)}),l.jsx("span",{className:"news-detail-meta-separator"}),l.jsx("span",{className:"news-detail-category",children:i.category})]}),l.jsx("h1",{className:"news-detail-title",children:i.title}),i.summaryContent&&i.summaryContent.length>0?l.jsx("div",{className:"news-detail-summary-wrapper",children:i.summaryContent.map((v,b)=>{if(v.startsWith("[IMAGE:")&&v.endsWith("]")){const S=v.replace("[IMAGE:","").replace("]","");return l.jsx("div",{className:"news-detail-summary-image-wrapper",children:l.jsx("img",{src:S,alt:i.title,className:"news-detail-summary-image"})},b)}if(!v.trim())return null;if(v.includes("[IMAGE:")){const S=v.split(/(\[IMAGE:[^\]]+\])/g);return l.jsx("div",{className:"news-detail-mixed-content",children:S.map((x,w)=>{if(x.startsWith("[IMAGE:")&&x.endsWith("]")){const A=x.replace("[IMAGE:","").replace("]","");return l.jsx("div",{className:"news-detail-summary-image-wrapper",children:l.jsx("img",{src:A,alt:i.title,className:"news-detail-summary-image"})},w)}return x.trim()?l.jsx("p",{className:"news-detail-summary",children:x.replace(/\[BR\]/g,`
9798`).split(`
9799`).map((A,E,I)=>l.jsxs("span",{children:[A,E<I.length-1&&l.jsx("br",{})]},E))},w):null})},b)}return l.jsx("p",{className:"news-detail-summary",children:v.replace(/\[BR\]/g,`
9800`).split(`
9801`).map((S,x,w)=>l.jsxs("span",{children:[S,x<w.length-1&&l.jsx("br",{})]},x))},b)})}):i.summary?l.jsx("p",{className:"news-detail-summary",children:i.summary}):null,l.jsx("div",{className:"news-detail-divider"}),l.jsxs("div",{className:"news-detail-share-wrapper",style:{flexDirection:"column",alignItems:"flex-end",display:"flex"},children:[l.jsxs("button",{className:"news-detail-share-button",onClick:()=>{h();const v=document.getElementById("copied-share-indicator");v&&(v.style.opacity="1",setTimeout(()=>{v&&(v.style.opacity="0")},1200))},style:{position:"relative"},children:[l.jsx(UN,{}),l.jsx("span",{children:"Share"})]}),l.jsx("span",{id:"copied-share-indicator",style:{marginTop:8,background:"#F3F4F6",borderRadius:8,color:"#222",fontWeight:500,opacity:0,transition:"opacity 0.3s",padding:"0.7em 1em",display:"inline-block",fontSize:"0.8rem",position:"static"},children:"Copied"})]})]}),l.jsxs("div",{className:`news-detail-content ${i.rawHtml?"has-raw-html":""}`,children:[i.firstImage&&l.jsx("div",{className:"news-detail-featured-image-wrapper",children:l.jsx("img",{src:i.firstImage,alt:i.title,className:"news-detail-featured-image"})}),i.rawHtml?l.jsx(ZV,{html:i.rawHtml,className:"news-detail-html-content",onNavigate:v=>e(v)}):i.content?.map((v,b)=>{if(v.startsWith("[IMAGE:")&&v.endsWith("]")){const x=v.replace("[IMAGE:","").replace("]","");return l.jsx("div",{className:"news-detail-image-wrapper",children:l.jsx("img",{src:x,alt:i.title,className:"news-detail-content-image"})},b)}if(!v.trim())return null;if(v.includes("[IMAGE:")){const x=v.split(/(\[IMAGE:[^\]]+\])/g);return l.jsx("div",{className:"news-detail-mixed-content",children:x.map((w,A)=>{if(w.startsWith("[IMAGE:")&&w.endsWith("]")){const E=w.replace("[IMAGE:","").replace("]","");return l.jsx("div",{className:"news-detail-image-wrapper",children:l.jsx("img",{src:E,alt:i.title,className:"news-detail-content-image"})},A)}return w.trim()?l.jsx("p",{className:"news-detail-paragraph",children:w.replace(/\[BR\]/g,`
9802`).split(`
9803`).map((E,I,j)=>l.jsxs("span",{children:[E,I<j.length-1&&l.jsx("br",{})]},I))},A):null})},b)}if(v.startsWith("- ")||v.startsWith("• ")||v.startsWith("* ")){const x=v.replace(/^[-•*]\s*/,"");return l.jsx("ul",{className:"news-detail-list",children:l.jsx("li",{className:"news-detail-list-item",children:x})},b)}const S=v.replace(/\[BR\]/g,`
9804`).split(/(AAIF|AGENTS\.md|Agentic AI Foundation)/g);return l.jsx("p",{className:"news-detail-paragraph",children:S.map((x,w)=>{if(x==="AAIF"||x==="AGENTS.md"||x==="Agentic AI Foundation")return l.jsx("a",{href:"#",className:"news-detail-link",onClick:E=>E.preventDefault(),children:x},w);const A=x.split(`
9805`);return l.jsx("span",{children:A.map((E,I)=>l.jsxs("span",{children:[E,I<A.length-1&&l.jsx("br",{})]},I))},w)})},b)}),i.sections?.map((v,b)=>l.jsxs("div",{className:"news-detail-section",children:[l.jsx("h2",{className:"news-detail-section-heading",children:v.heading}),v.paragraphs.map((S,x)=>l.jsx("p",{className:"news-detail-paragraph",children:S},x))]},b))]}),c.length>0&&l.jsxs("div",{className:"news-detail-keep-reading",children:[l.jsxs("div",{className:"news-detail-keep-reading-header",children:[l.jsx("h2",{className:"news-detail-keep-reading-title",children:"Keep reading"}),l.jsx("button",{className:"news-detail-view-all-button",onClick:()=>e("/news"),children:"View all"})]}),l.jsx("div",{className:"news-detail-keep-reading-grid",children:c.map(v
9805=>l.jsx(X1,{hoverable:!0,className:"news-card",onClick:()=>{window.scrollTo({top:0,behavior:"instant"}),e(`/news/${v.id}`)},cover:l.jsxs("div",{className:"news-card-cover",children:[l.jsx("div",{className:"news-card-gradient",style:eq(v.gradient)}),v.imageUrl&&l.jsxs(l.Fragment,{children:[l.jsx("img",{src:v.imageUrl,alt:v.title,className:"news-card-image",loading:"lazy"}),l.jsx("div",{className:"news-card-overlay"})]})]}),styles:{body:{padding:"16px 0 0 0"}},children:l.jsxs("div",{className:"news-card-content",children:[l.jsx("h3",{className:"news-card-title",children:v.title}),l.jsxs("div",{className:"news-card-meta",children:[l.jsx("span",{className:"news-card-category",children:v.category}),l.jsx("span",{className:"news-card-separator"}),l.jsx("time",{className:"news-card-date",children:v.date})]})]})},v.id))})]})]})})}function sq(){const{t,i18n:e}=De(),n=t("header.aiBlog",{defaultValue:e.language==="ja"?"AIコラム":"Kiến thức AI"});return l.jsx(vC,{initialCategory:"AiBlog",overrideTitle:n,hideHeaderTabs:!0})}function oq(){const{t}=De();return l.jsxs("article",{className:"prose mx-auto privacy-policy",children:[l.jsx("h1",{children:t("privacyPolicy.header")}),l.jsxs("section",{children:[l.jsx("h2",{children:t("privacyPolicy.title")}),l.jsx("h3",{children:t("privacyPolicy.section1")}),l.jsx("h4",{children:t("privacyPolicy.section1Content.title1")}),l.jsx("p",{children:t("privacyPolicy.section1Content.content1")}),l.jsx("h4",{children:t("privacyPolicy.section1Content.title2")}),l.jsx("p",{children:t("privacyPolicy.section1Content.content2")}),l.jsx("h4",{children:t("privacyPolicy.section1Content.title3")}),l.jsx("p",{children:t("privacyPolicy.section1Content.content3")}),l.jsx("h4",{children:t("privacyPolicy.section1Content.title4")}),l.jsx("p",{children:t("privacyPolicy.section1Content.content4")}),l.jsxs("div",{className:"privacy-policy-contact",children:[l.jsx("p",{children:l.jsx("strong",{children:t("privacyPolicy.smallInformation.inf1")})}),l.jsx("p",{children:t("privacyPolicy.smallInformation.inf2")}),l.jsx("p",{children:t("privacyPolicy.smallInformation.inf3")}),l.jsx("p",{children:t("privacyPolicy.smallInformation.inf5")}),l.jsx("p",{children:l.jsx("a",{href:"mailto:[email protected]",children:t("privacyPolicy.smallInformation.inf4")})})]})]}),l.jsxs("section",{children:[l.jsx("h2",{children:t("privacyPolicy.section2")}),l.jsx("p",{children:t("privacyPolicy.section2Subtitle")}),l.jsx("h3",{children:t("privacyPolicy.section2Content.title1")}),l.jsx("table",{className:"privacy-policy-table",children:l.jsxs("tbody",{children:[l.jsxs("tr",{children:[l.jsx("td",{children:t("privacyPolicy.section2Content.table1.title1")}),l.jsx("td",{children:t("privacyPolicy.section2Content.table1.row1")})]}),l.jsxs("tr",{children:[l.jsx("td",{children:t("privacyPolicy.section2Content.table1.title2")}),l.jsx("td",{children:t("privacyPolicy.section2Content.table1.row2")})]}),l.jsxs("tr",{children:[l.jsx("td",{children:t("privacyPolicy.section2Content.table1.title3")}),l.jsx("td",{children:t("privacyPolicy.section2Content.table1.row3")})]})]})}),l.jsx("h3",{children:t("privacyPolicy.section2Content.title2")}),l.jsx("h4",{children:t("privacyPolicy.section2Content.title2Subtitle")}),l.jsxs("table",{className:"privacy-policy-table",children:[l.jsx("thead",{children:l.jsxs("tr",{children:[l.jsx("th",{children:t("privacyPolicy.section2Content.table2.header1")}),l.jsx("th",{children:t("privacyPolicy.section2Content.table2.header2")})]})}),l.jsxs("tbody",{children:[l.jsxs("tr",{children:[l.jsx("td",{children:t("privacyPolicy.section2Content.table2.title1")}),l.jsx("td",{children:t("privacyPolicy.section2Content.table2.row1")})]}),l.jsxs("tr",{children:[l.jsx("td",{children:t("privacyPolicy.section2Content.table2.title2")}),l.jsx("td",{children:t("privacyPolicy.section2Content.table2.row2")})]}),l.jsxs("tr",{children:[l.jsx("td",{children:t("privacyPolicy.section2Content.table2.title3")}),l.jsx("td",{children:t("privacyPolicy.section2Content.table2.row3")})]}),l.jsxs("tr",{children:[l.jsx("td",{children:t("privacyPolicy.section2Content.table2.title4")}),l.jsx("td",{children:t("privacyPolicy.section2Content.table2.row4")})]}),l.jsxs("tr",{children:[l.jsx("td",{children:t("privacyPolicy.section2Content.table2.title5")}),l.jsx("td",{children:t("privacyPolicy.section2Content.table2.row5")})]}),l.jsxs("tr",{children:[l.jsx("td",{children:t("privacyPolicy.section2Content.table2.title6")}),l.jsx("td",{children:t("privacyPolicy.section2Content.table2.row6")})]}),l.jsxs("tr",{children:[l.jsx("td",{children:t("privacyPolicy.section2Content.table2.title7")}),l.jsx("td",{children:t("privacyPolicy.section2Content.table2.row7")})]})]})]}),l.jsx("h3",{children:t("privacyPolicy.section2Content.title3")}),l.jsx("p",{children:t("privacyPolicy.section2Content.content3")}),l.jsx("h4",{children:t("privacyPolicy.section2Content.list3.title")}),l.jsxs("ol",{children:[l.jsx("li",{children:t("privacyPolicy.section2Content.list3.item1")}),l.jsx("li",{children:t("privacyPolicy.section2Content.list3.item2")}),l.jsx("li",{children:t("privacyPolicy.section2Content.list3.item3")})]}),l.jsx("h4",{children:t("privacyPolicy.section2Content.card3.title")}),l.jsx("p",{children:t("privacyPolicy.section2Content.card3.subt
9805itle")}),l.jsx("div",{className:"privacy-policy-contact",children:l.jsxs("p",{children:[l.jsx("strong",{children:t("privacyPolicy.section2Content.card3.card1.row1")}),l.jsx("br",{}),t("privacyPolicy.section2Content.card3.card1.row2"),l.jsx("br",{}),t("privacyPolicy.section2Content.card3.card1.row3"),l.jsx("br",{}),l.jsx("a",{href:"https://reactplus.com/",target:"_blank",rel:"noopener noreferrer",children:t("privacyPolicy.section2Content.card3.card1.row4")})]})}),l.jsx("div",{className:"privacy-policy-contact",children:l.jsxs("p",{children:[l.jsx("strong",{children:t("privacyPolicy.section2Content.card3.card2.row1")}),l.jsx("br",{}),t("privacyPolicy.section2Content.card3.card2.row2"),l.jsx("br",{}),t("privacyPolicy.section2Content.card3.card2.row3"),l.jsx("br",{}),l.jsx("a",{href:"https://mirai-plus.co.jp/",target:"_blank",rel:"noopener noreferrer",children:t("privacyPolicy.section2Content.card3.card2.row4")})]})}),l.jsx("h4",{children:t("privacyPolicy.section2Content.list3_2.title")}),l.jsxs("ol",{children:[l.jsx("li",{children:t("privacyPolicy.section2Content.list3_2.item1")}),l.jsx("li",{children:t("privacyPolicy.section2Content.list3_2.item2")}),l.jsx("li",{children:t("privacyPolicy.section2Content.list3_2.item3")})]}),l.jsx("h4",{children:t("privacyPolicy.section2Content.text3.title")}),l.jsxs("p",{children:[t("privacyPolicy.section2Content.text3.content1"),l.jsx("br",{}),t("privacyPolicy.section2Content.text3.content2")]}),l.jsx("h3",{children:t("privacyPolicy.section2Content.title4")}),l.jsx("p",{children:t("privacyPolicy.section2Content.text4")}),l.jsxs("div",{className:"privacy-policy-contact",children:[l.jsx("h4",{children:t("privacyPolicy.section2Content.card4.row1")}),l.jsxs("p",{children:[t("privacyPolicy.section2Content.card4.row2"),l.jsx("br",{}),t("privacyPolicy.section2Content.card4.row3"),l.jsx("br",{}),l.jsx("a",{href:"mailto:[email protected]",children:t("privacyPolicy.section2Content.card4.row4")})]})]}),l.jsx("h3",{children:t("privacyPolicy.section2Content.title5")}),l.jsx("p",{children:t("privacyPolicy.section2Content.text5")}),l.jsx("h3",{children:t("privacyPolicy.section2Content.title6")}),l.jsx("p",{children:t("privacyPolicy.section2Content.text6")}),l.jsx("h3",{children:t("privacyPolicy.section2Content.title7")}),l.jsx("p",{children:t("privacyPolicy.section2Content.text7")}),l.jsx("div",{className:"privacy-policy-contact",children:l.jsxs("p",{children:[t("privacyPolicy.section2Content.card7.row1"),l.jsx("br",{}),t("privacyPolicy.section2Content.card7.row2"),l.jsx("br",{}),t("privacyPolicy.section2Content.card7.row3"),l.jsx("br",{}),l.jsx("a",{href:"mailto:[email protected]",children:t("privacyPolicy.section2Content.card7.row4")})]})})]})]})}class qc{constructor(e=0,n="Network Error"){this.status=e,this.text=n}}const iq=()=>{if(!(typeof localStorage>"u"))return{get:t=>Promise.resolve(localStorage.getItem(t)),set:(t,e)=>Promise.resolve(localStorage.setItem(t,e)),remove:t=>Promise.resolve(localStorage.removeItem(t))}},Qn={origin:"https://api.emailjs.com",blockHeadless:!1,storageProvider:iq()},Q1=t=>t?typeof t=="string"?{publicKey:t}:t.toString()==="[object Object]"?t:{}:{},rq=(t,e="https://api.emailjs.com")=>{if(!t)return;const n=Q1(t);Qn.publicKey=n.publicKey,Qn.blockHeadless=n.blockHeadless,Qn.storageProvider=n.storageProvider,Qn.blockList=n.blockList,Qn.limitRate=n.limitRate,Qn.origin=n.origin||e},yC=async(t,e,n={})=>{const s=await fetch(Qn.origin+t,{method:"POST",headers:n,body:e}),i=await s.text(),r=new qc(s.status,i);if(s.ok)return r;throw r},bC=(t,e,n)=>{if(!t||typeof t!="string")throw"The public key is required. Visit https://dashboard.emailjs.com/admin/account";if(!e||typeof e!="string")throw"The service ID is required. Visit https://dashboard.emailjs.com/admin";if(!n||typeof n!="string")throw"The template ID is required. Visit https://dashboard.emailjs.com/admin/templates"},uq=t=>{if(t&&t.toString()!=="[object Object]")throw"The template params have to be the object. Visit https://www.emailjs.com/docs/sdk/send/"},xC=t=>t.webdriver||!t.languages||t.languages.length===0,AC=()=>new qc(451,"Unavailable For Headless Browser"),lq=(t,e)=>{if(!Array.isArray(t))throw"The BlockList list has to be an array";if(typeof e!="string")throw"The BlockList watchVariable has to be a string"},cq=t=>!t.list?.length||!t.watchVariable,dq=(t,e)=>t instanceof FormData?t.get(e):t[e],CC=(t,e)=>{if(cq(t))return!1;lq(t.list,t.watchVariable);const n=dq(e,t.watchVariable);
9805return typeof n!="string"?!1:t.list.includes(n)},SC=()=>new qc(403,"Forbidden"),pq=(t,e)=>{if(typeof t!="number"||t<0)throw"The LimitRate throttle has to be a positive number";if(e&&typeof e!="string")throw"The LimitRate ID has to be a non-empty string"},gq=async(t,e,n)=>{const s=Number(await n.get(t)||0);return e-Date.now()+s},wC=async(t,e,n)=>{if(!e.throttle||!n)return!1;pq(e.throttle,e.id);const s=e.id||t;return await gq(s,e.throttle,n)>0?!0:(await n.set(s,Date.now().toString()),!1)},EC=()=>new qc(429,"Too Many Requests"),mq=async(t,e,n,s)=>{const i=Q1(s),r=i.publicKey||Qn.publicKey,c=i.blockHeadless||Qn.blockHeadless,p=i.storageProvider||Qn.storageProvider,g={...Qn.blockList,...i.blockList},_={...Qn.limitRate,...i.limitRate};return c&&xC(navigator)?Promise.reject(AC()):(bC(r,t,e),uq(n),n&&CC(g,n)?Promise.reject(SC()):await wC(location.pathname,_,p)?Promise.reject(EC()):yC("/api/v1.0/email/send",JSON.stringify({lib_version:"4.4.1",user_id:r,service_id:t,template_id:e,template_params:n}),{"Content-type":"application/json"}))},hq=t=>{if(!t||t.nodeName!=="FORM")throw"The 3rd parameter is expected to be the HTML form element or the style selector of the form"},_q=t=>typeof t=="string"?document.querySelector(t):t,fq=async(t,e,n,s)=>{const i=Q1(s),r=i.publicKey||Qn.publicKey,c=i.blockHeadless||Qn.blockHeadless,p=Qn.storageProvider||i.storageProvider,g={...Qn.blockList,...i.blockList},_={...Qn.limitRate,...i.limitRate};if(c&&xC(navigator))return Promise.reject(AC());const f=_q(n);bC(r,t,e),hq(f);const h=new FormData(f);return CC(g,h)?Promise.reject(SC()):await wC(location.pathname,_,p)?Promise.reject(EC()):(h.append("lib_version","4.4.1"),h.append("service_id",t),h.append("template_id",e),h.append("user_id",r),yC("/api/v1.0/email/send-form",h))},IC={init:rq,send:mq,sendForm:fq,EmailJSResponseStatus:qc},NC="service_hyixb2l",kq="template_1rv8acy",vq="template_5fk6a7m",RC="0AWo2rdfscBGSHvyB";async function yq(t){await IC.send(NC,kq,t,{publicKey:RC})}async function bq(t){await IC.send(NC,vq,t,{publicKey:RC})}function xq(){const{t,i18n:e}=De(),n="contact",s=N=>t(`${n}.${N}`),[i,r]=y.useState({lastName:"",firstName:"",companyName:"",companySize:"",workEmail:"",phoneNumber:"",productInterest:"",businessNeeds:""}),[c,p]=y.useState({}),[g,_]=y.useState(!1),[f,h]=y.useState(!1),[v,b]=y.useState(null),S=e.language||"en",[x,w]=y.useState(S);x!==S&&(w(S),h(!1));const A=()=>{const N={};if(i.companySize.trim()||(N.companySize="contact.form.errors.required"),i.companyName.trim()?i.companyName.trim().length<2?N.companyName="contact.form.errors.companyNameTooShort":i.companyName.trim().length>100&&(N.companyName="contact.form.errors.companyNameTooLong"):N.companyName="contact.form.errors.required",i.firstName.trim()?i.firstName.trim().length<2?N.firstName="contact.form.errors.nameTooShort":i.firstName.trim().length>50&&(N.firstName="contact.form.errors.nameTooLong"):N.firstName="contact.form.errors.required",i.lastName.trim()?i.lastName.trim().length<2?N.lastName="contact.form.errors.lastNameTooShort":i.lastName.trim().length>50&&(N.lastName="contact.form.errors.lastNameTooLong"):N.lastName="contact.form.errors.required",i.workEmail.trim()?i.workEmail.trim().length<5?N.workEmail="contact.form.errors.emailTooShort":i.workEmail.trim().length>100?N.workEmail="contact.form.errors.emailTooLong":/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(i.workEmail)||(N.workEmail="contact.form.errors.emailInvalid"):N.workEmail="contact.form.errors.required",!i.phoneNumber.trim())N.phoneNumber="contact.form.errors.required";else{const D=i.phoneNumber.replace(/[\s\-().]+/g,"");/^(\+?\d+)$/.test(D)?D.length<10?N.phoneNumber="contact.form.errors.phoneTooShort":D.length>12&&(N.phoneNumber="contact.form.errors.phoneTooLong"):N.phoneNumber="contact.form.errors.phoneInvalid"}return i.productInterest.trim()||(N.productInterest="contact.form.errors.required"),i.businessNeeds.trim()&&i.businessNeeds.trim().length<10?N.businessNeeds="contact.form.errors.businessNeedsTooShort":i.businessNeeds.trim().length>2e3&&(N.businessNeeds="contact.form.errors.businessNeedsTooLong"),p(N),Object.keys(N).length===0},E=async N=>{if(N.preventDefault(),b(null),!!A())try{_(!0),await bq({last_name:i.lastName,first_name:i.firstName,company_name:i.companyName,company_
9805size:i.companySize,email:i.workEmail,phone:i.phoneNumber,product_interest:i.productInterest,business_needs:i.businessNeeds}),h(!0)}catch(D){console.error(D),b(s("form.errors.submitError"))}finally{_(!1)}},I=()=>{h(!1)},j=()=>{h(!1),r({lastName:"",firstName:"",companyName:"",companySize:"",workEmail:"",phoneNumber:"",productInterest:"",businessNeeds:""})},T=[{value:"1-10",label:s("form.companySizeOptions.1-10")},{value:"11-50",label:s("form.companySizeOptions.11-50")},{value:"51-200",label:s("form.companySizeOptions.51-200")},{value:"201-500",label:s("form.companySizeOptions.201-500")},{value:"500+",label:s("form.companySizeOptions.500+")}],P=[{value:"aiFintechSolutions",label:s("form.productOptions.aiFintechSolutions")},{value:"atobarAi",label:s("form.productOptions.atobarAi")},{value:"adHousing",label:s("form.productOptions.adHousing")},{value:"adPassport",label:s("form.productOptions.adPassport")},{value:"liveNowPayLater",label:s("form.productOptions.liveNowPayLater")},{value:"recruitment",label:s("form.productOptions.recruitment")},{value:"other",label:s("form.productOptions.other")}];return l.jsx("div",{className:"contact-page-wrapper",children:l.jsxs("div",{className:"contact-container",children:[l.jsx("div",{className:"contact-left-section",children:l.jsxs("div",{className:"contact-left-content",children:[l.jsx("h1",{className:"contact-main-heading",children:s("mainHeading")}),l.jsx("h2",{className:"contact-subheading",children:s("subheading")}),l.jsx("p",{className:"contact-description",children:s("description")}),l.jsxs("div",{className:"contact-phone-section",style:{display:"flex",flexDirection:"column",gap:"16px"},children:[l.jsxs("div",{className:"contact-phone-card",children:[l.jsx("div",{className:"contact-phone-icon",children:l.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:l.jsx("path",{d:"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"})})}),l.jsxs("div",{className:"contact-phone-info",children:[l.jsx("span",{className:"contact-phone-label",children:s("phoneLabel")}),e.language==="ja"?l.jsx("a",{href:"tel:+817089886363",className:"contact-phone-number",children:"+81-70-8988-6363"}):l.jsx("a",{href:"tel:02462997777",className:"contact-phone-number",children:"024 6299 7777"})]})]}),l.jsxs("div",{className:"contact-phone-card",children:[l.jsx("div",{className:"contact-phone-icon",children:l.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[l.jsx("path",{d:"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"}),l.jsx("polyline",{points:"22,6 12,13 2,6"})]})}),l.jsxs("div",{className:"contact-phone-info",children:[l.jsx("span",{className:"contact-phone-label",children:s("emailLabel")||"Email"}),l.jsx("a",{href:"mailto:[email protected]",className:"contact-phone-number",children:"[email protected]"})]})]})]}),s("features.title")&&l.jsxs("div",{className:"contact-features-section",children:[l.jsx("h3",{className:"contact-features-title",children:s("features.title")}),l.jsxs("ul",{className:"contact-features-list",children:[s("features.feature1")&&l.jsxs("li",{children:[l.jsxs("svg",{className:"contact-feature-icon",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",children:[l.jsx("path",{d:"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),l.jsx("path",{d:"M8 12L11 15L16 9",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]}),s("features.feature1")]}),s("features.feature2")&&l.jsxs("li",{children:[l.jsxs("svg",{className:"contact-feature-icon",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",children:[l.jsx("path",{d:"M12 2L2 7L12 12L22 7L12 2Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),l.jsx("path",{d:"M2 17L12 22L22 17",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),l.jsx("path",{d:"M2 12L12 17L22 12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]}),s("features.feature2")]}),s("features.feature3")&&l.jsxs("li",{children:[l.jsxs("svg",{className:"contact-feature-icon",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",children:[l.jsx("path",{d:"M17 21V19C17 17.9391 16.5786 16.9217 15.8284 16.1716C15.0783 15.4214 14.0609 15 13 15H5C3.93913 15 2.92172 15.4214 2.17157 16.1716C1.42143 16.9217 1 17.9391 1 19V21",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),l.jsx("path",{d:"M9 11C11.2091 11 13 9.20914 13 7C13 4.79086 11.2091 3 9 3C6.79086 3 5 4.79086 5 7C5 9.20914 6.79086 11 9 11Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),l.jsx("path",{d:"M23 21V19C22.9993 18.1137 22.7044 17.2528 22.1614 16.5523C21.6184 15.8519 20.8581 15.3516 20 15.13",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),l.jsx("path",{d:"M16 3.13C16.8604 3.35031 17.623 3.85071 18.1676 4.55232C18.7122 5.25392 19.0078 6.11683 19.0078 7.005C19.0078 7.89318 18.7122 8.75608 18.1676 9.45769C17.623 10.1593 16.8604 10.6597 16 10.88",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]}),s("features.feature3")]}),s("features.feature4")&&l.jsxs("li",{children:[l.jsxs("svg",{className:"contact-feature-icon",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",children:[l.jsx("path",{d:"M21 16V8C20.9996 7.64928 20.9071 7.30481 20.7315 7.00116C20.556 6.69751 20.3037 6.44536 20 6.27L13 2.27C12.696 2.09446 12.3511 2.00205 12 2.00205C11.6489 2.00205 11.304 2.09446 11 2.27L4 6.27C3.69626 6.44536 3.44398 6.69751 3.26846 7.00116C3.09294 7.30481 3.00036 7.64928 3 8V16C3.00036 16.3507 3.09294 16.6952 3.26846 16.9988C3.44398 17.3025 3.69626 17.5546 4 17.73L11 21.73C11.304 21.9055 11.6489 21.9979 12 21.9979C12.3511 21.9979 12.696 21.9055 13 21.73L20 17.73C20.3037 17.5546 20.556 17.3025 20.7315 16.9988C20.9071 16.6952 20.9996 16.3507 21 16Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),l.jsx("path",{d:"M3.27002 6.96L12 12.01L20.73 6.96",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),l.jsx("path",{d:"M12 22.08V12",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]}),s("features.feature4")]})]})]}),l.jsxs("div",{className:"contact-trusted-section",style:{display:"none"},children:[l.jsx("h3",{className:"contact-trusted-title",children:s("trusted.title")}),l.jsx("div",{className:"contact-trusted-marquee-wrapper",children:l.jsxs("div",{className:"contact-marquee-columns",children:[l.jsx("div",{className:"contact-marquee-column",children:l.jsxs("div",{className:"contact-marquee-container contact-marquee-column-1",children:[l.jsx("div",{className:"contact-marquee-item",children:l.jsx("img",{src:"/LOGO CLIENT/1.png",alt:"Client 1",className:"contact-logo-img"})}),l.jsx("div",{className:"contact-marquee-item",children:l.jsx("img",{src:"/LOGO CLIENT/4.png",alt:"Client 4",className:"contact-logo-img"})}),l.jsx("div",{className:"contact-marquee-item",children:l.jsx("img",{src:"/LOGO CLIENT/7.png",alt:"Client 7",className:"contact-logo-img"})}),l.jsx("div",{className:"contact-marquee-item",children:l.jsx("img",{src:"/LOGO CLIENT/10.png",alt:"Client 10",className:"contact-logo-img"})}),l.jsx("div",{className:"contact-marquee-item",children:l.jsx("img",{src:"/LOGO CLIENT/1.png",alt:"Client 1",className:"contact-logo-img"})})]})}),l.jsx("div",{className:"contact-marquee-column",children:l.jsxs("div",{className:"contact-marquee-container contact-marquee-column-2",children:[l.jsx("div",{className:"contact-marquee-item",children:l.jsx("img",{src:"/LOGO CLIENT/2.png",alt:"Client 2",className:"contact-logo-img"})}),l.jsx("div",{className:"contact-marquee-item",children:l.jsx("img",{src:"/LOGO CLIENT/5.png",alt:"Client 5",className:"contact-logo-img"})}),l.jsx("div",{className:"contact-marquee-item",children:l.jsx("img",{src:"/LOGO CLIENT/8.png",alt:"Client 8",className:"contact-logo-img"})}),l.jsx("div",{className:"contact-marquee-item",children:l.jsx("img",{src:"/LOGO CLIENT/11.png",alt:"Client 11",className:"contact-logo-img"})}),l.jsx("div",{className:"contact-marquee-item",children:l.jsx("img",{src:"/LOGO CLIENT/2.png",alt:"Client 2",className:"contact-logo-img"})})]})}),l.jsx("div",{className:"contact-marquee-column",children:l.jsxs("div",{className:"contact-marquee-container contact-marquee-column-3",children:[l.jsx("div",{className:"contact-marquee-item",children:l.jsx("img",{src:"/LOGO CLIENT/3.png",alt:"Client 3",className:"contact-logo-img"})}),l.jsx("div",{className:"contact-marquee-item",children:l.jsx("img",{src:"/LOGO CLIENT/6.png",alt:"Client 6",className:"contact-logo-img"})}),l.jsx("div",{className:"contact-marquee-item",children:l.jsx("img",{src:"/LOGO CLIENT/9.png",alt:"Client 9",className:"contact-logo-img"})}),l.jsx("div",{className:"contact-marquee-item",children:l.jsx("img",{src:"/LOGO CLIENT/3.png",alt:"Client 3",className:"contact-logo-img"})}),l.jsx("div",{className:"contact-marquee-item",children:l.jsx("img",{src:"/LOGO CLIENT/6.png",alt:"Client 6",className:"contact-logo-img"})})]})})]})})]})]})}),l.jsxs("div",{className:"contact-right-section",children:[l.jsx("div",{className:"contact-form",children:l.jsxs("form",{onSubmit:E,children:[l.jsxs("div",{className:"contact-form-row",children:[l.jsxs("div",{className:"contact-form-group",children:[l.jsxs("label",{children:[s("form.companySize")," *"]}),l.jsxs("select",{value:i.companySize,onChange:N=>r({...i,companySize:N.target.value}),className:c.companySize?"contact-input-error":i.companySize?"":"product-interest-select empty",children:[l.jsx("option",{value:"",children:s("form.selectPlaceholder")}),T.map(N=>l.jsx("option",{value:N.value,children:N.label},N.value))]}),c.companySize&&l.jsx("small",{className:"contact-text-error",children:t(c.companySize)})]}),l.jsxs("div",{className:"contact-form-group",children:[l.jsxs("label",{children:[s("form.companyName")," *"]}),l.jsx("input",{type:"text",value:i.companyName,onChange:N=>r({...i,companyName:N.target.value}),className:c.companyName?"contact-input-error":"",placeholder:s("form.companyNamePlaceholder")}),c.companyName&&l.jsx("small",{className:"contact-text-error",children:t(c.companyName)})]})]}),l.jsxs("div",{style:{marginTop:"1.5rem"},children:[l.jsxs("label",{className:"contact-form-group-label",children:[s("form.fullName")," *"]}),l.jsxs("div",{className:"contact-form-row",style:{marginTop:"8px"},children:[l.jsxs("div",{className:"contact-form-group",children:[l.jsx("input",{type:"text",value:i.lastName,onChange:N=>r({...i,lastName:N.target.value}),className:c.lastName?"contact-input-error":"",placeholder:s("form.lastNamePlaceholder")}),c.lastName&&l.jsx("small",{className:"contact-text-error",children:t(c.lastName)})]}),l.jsxs("div",{className:"contact-form-group",children:[l.jsx("input",{type:"text",value:i.firstName,onChange:N=>r({...i,firstName:N.target.value}),className:c.firstName?"contact-input-error":"",placeholder:s("form.firstNamePlaceholder")}),c.firstName&&l.jsx("small",{className:"contact-text-error",children:t(c.firstName)})]})]})]}),l.jsxs("div",{className:"contact-form-row",style:{marginTop:"1.5rem"},children:[l.jsxs("div",{className:"contact-form-group",children:[l.jsxs("label",{children:[s("form.workEmail")," *"]}),l.jsx("input",{type:"text",value:i.workEmail,onChange:N=>r({...i,workEmail:N.target.value}),className:c.workEmail?"contact-input-error":"",placeholder:s("form.workEmailPlaceholder")}),c.workEmail&&l.jsx("small",{className:"contact-text-error",children:t(c.workEmail)})]}),l.jsxs("div",{className:"contact-form-group",children:[l.jsxs("label",{children:[s("form.phoneNumber")," *"]}),l.jsx("input",{type:"tel",value:i.phoneNumber,onChange:N=>r({...i,phoneNumber:N.target.value}),className:c.phoneNumber?"contact-input-error":"",placeholder:s("form.phoneNumberPlaceholder")}),c.phoneNumber&&l.jsx("small",{className:"contact-text-error",children:t(c.phoneNumber)})]})]}),l.jsxs("div",{className:"contact-form-group",style:{marginTop:"1.5rem"},children:[l.jsxs("label",{children:[s("form.productInterest")," *"]}),l.jsxs("select",{value:i.productInterest,onChange:N=>r({...i,productInterest:N.target.value}),className:c.productInterest?"contact-input-error":i.productInterest?"":"product-interest-select empty",children:[l.jsx("option",{value:"",children:s("form.selectDropdownPlaceholder")}),P.map(N=>l.jsx("option",{value:N.value,children:N.label},N.value))]}),c.productInterest&&l.jsx("small",{className:"contact-text-error",children:t(c.productInterest)})]}),l.jsxs("div",{className:"contact-form-group",style:{marginTop:"1.5rem"},children:[l.jsx("label",{children:s("form.businessNeeds")}),l.jsx("textarea",{rows:4,value:i.businessNeeds,onChange:N=>r({...i,businessNeeds:N.target.value}),className:c.businessNeeds?"contact-input-error":"",placeholder:s("form.businessNeedsPlaceholder")}),c.businessNeeds&&l.jsx("small",{className:"contact-text-error",children:t(c.businessNeeds)})]}),l.jsx("button",{type:"submit",className:"contact-submit-btn",disabled:g,style:{marginTop:"1.5rem"},children:s(g?"form.submitting":"form.submit")}),v&&l.jsx("p",{className:"contact-text-error",style:{marginTop:"12px",textAlign:"center"},children:v})]})}),f&&l.jsx("div",{className:"contact-modal-overlay",onClick:I,children:l.jsxs("div",{className:"contact-modal-content",onClick:N=>N.stopPropagation(),children:[l.jsx("button",{type:"button",className:"contact-modal-close-btn",onClick:I,"aria-label":"Close",children:l.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[l.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),l.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}),l.jsxs("div",{className:"contact-thank-you-card",children:[l.jsx("h2",{className:"contact-thank-you-title",children:s("thankYou.title")}),l.jsx("p",{className:"contact-thank-you-message",children:s("thankYou.message")}),l.jsx("button",{type:"button",className:"contact-send-again-btn",onClick:j,children:s("thankYou.sendAgain")})]})]})})]})]})})}function Aq(){const{t}=De(),e="atobar",n=p=>t(`${e}.${p}`),s=[{value:"94%+",label:n("stats.approval_rate"),icon:"/icons/solid/checked.svg"},{value:"<1.5%",label:n("stats.bad_debt_rate"),icon:"/icons/solid/safe.svg"},{value:"720",label:n("stats.average_score"),icon:"/icons/solid/medal.svg"},{value:"<200ms P99",label:n("stats.api_response"),icon:"/icons/solid/rocket.svg"},{value:"250+",label:n("stats.data_features"),icon:"/icons/solid/analytics.svg"}],i=[{title:n("data_sources.mobile_payment.title"),description:n("data_sources.mobile_payment.description"),icon:"/icons/solid/smartphone.svg"},{title:n("data_sources.ewallet.title"),description:n("data_sources.ewallet.description"),icon:"/icons/solid/wallet.svg"},{title:n("data_sources.ecommerce.title"),description:n("data_sources.ecommerce.description"),icon:"/icons/solid/shopping-basket.svg"},{title:n("data_sources.utility_bills.title"),description:n("data_sources.utility_bills.description"),icon:"/icons/solid/note.svg"}
9805,{title:n("data_sources.banking.title"),description:n("data_sources.banking.description"),icon:"/icons/solid/coin.svg"},{title:n("data_sources.telco.title"),description:n("data_sources.telco.description"),icon:"/icons/solid/devices.svg"},{title:n("data_sources.rent.title"),description:n("data_sources.rent.description"),icon:"/icons/solid/building.svg"},{title:n("data_sources.subscription.title"),description:n("data_sources.subscription.description"),icon:"/icons/solid/network.svg"}],r=[{title:n("score.excellent.title"),range:n("score.excellent.range"),color:"purple",description:n("score.excellent.description")},{title:n("score.good.title"),range:n("score.good.range"),color:"orange",description:n("score.good.description")},{title:n("score.fair.title"),range:n("score.fair.range"),color:"yellow",description:n("score.fair.description")},{title:n("score.below_fair.title"),range:n("score.below_fair.range"),color:"sky",description:n("score.below_fair.description")}],c=[{title:n("advantages.first_mover.title"),description:n("advantages.first_mover.description"),icon:"/icons/solid/plane.svg"},{title:n("advantages.plug_play.title"),description:n("advantages.plug_play.description"),icon:"/icons/solid/puzzle.svg"},{title:n("advantages.explainable_ai.title"),description:n("advantages.explainable_ai.description"),icon:"/icons/solid/bulb.svg"},{title:n("advantages.b2b_platform.title"),description:n("advantages.b2b_platform.description"),icon:"/icons/solid/currency.svg"},{title:n("advantages.fairness_first.title"),description:n("advantages.fairness_first.description"),icon:"/icons/solid/balance-scale.svg"}];return l.jsxs("div",{className:"atobar-ai-page",children:[l.jsx("section",{className:"product-hero-section",children:l.jsxs("div",{className:"product-hero-container",children:[l.jsx("div",{className:"product-hero-badge",children:n("hero.badge")}),l.jsx("div",{className:"product-hero-logo",children:l.jsx("img",{src:"/brands/atobarAI.png",alt:"Atobar AI",className:"product-section-logo"})}),l.jsx("h1",{className:"product-hero-title",children:n("hero.title")}),l.jsx("p",{className:"product-hero-description",children:n("hero.description")})]})}),l.jsx("section",{className:"stats-section",children:l.jsxs("div",{className:"product-container",children:[l.jsxs("div",{className:"product-section-header",children:[l.jsx("h2",{className:"product-section-title",children:n("stats.title")}),l.jsx("p",{className:"product-section-description",children:n("stats.description")})]}),l.jsx("div",{className:"product-stats-grid",children:s.map(p=>l.jsxs("div",{className:"product-stat-card",children:[p.icon&&l.jsx("img",{src:p.icon,alt:"",className:"product-stat-icon",onError:g=>{console.error("Failed to load icon:",p.icon),g.currentTarget.style.display="none"}}),l.jsx("div",{className:"product-stat-value",children:p.value}),l.jsx("div",{className:"product-stat-label",children:p.label})]},p.label))})]})}),l.jsx("section",{className:"journey-section",children:l.jsxs("div",{className:"product-container",children:[l.jsxs("div",{className:"product-section-header",children:[l.jsx("h2",{className:"product-section-title",children:n("journey.title")}),l.jsx("p",{className:"product-section-description",children:n("journey.description")})]}),l.jsxs("div",{className:"journey-content",children:[l.jsxs("div",{className:"journey-how-it-works",children:[l.jsx("div",{className:"product-section-badge",children:n("how_it_works.badge")}),l.jsx("h3",{className:"journey-how-it-works-title",children:n("how_it_works.title")}),l.jsx("p",{className:"journey-how-it-works-description",children:n("how_it_works.description")}),l.jsx("p",{className:"journey-how-it-works-detailed",children:n("how_it_works.detailed")})]}),l.jsxs("div",{className:"journey-steps",children:[l.jsxs("div",{className:"journey-step",children:[l.jsx("div",{className:"product-step-number",children:"01"}),l.jsx("h3",{className:"product-step-title",children:n("step1.title")}),l.jsx("p",{className:"product-step-description",children:n("step1.description")})]}),l.jsxs("div",{className:"journey-step",children:[l.jsx("div",{className:"product-step-number",children:"02"}),l.jsx("h3",{className:"product-step-title",children:n("step2.title")}),l.jsx("p",{className:"product-step-description",children:n("step2.description")})]}),l.jsxs("div",{className:"journey-step",children:[l.jsx("div",{className:"product-step-number",children:"03"}),l.jsx("h3",{className:"product-step-title",children:n("step3.title")}),l.jsx("p",{className:"product-step-description",children:n("step3.description")})]})]})]})]})}),l.jsx("section",{className:"values-section",children:l.jsxs("div",{className:"product-container",children:[l.jsx("div",{className:"product-section-header",children:l.jsx("h2",{className:"product-section-title",children:n("core_values.title")})}),l.jsxs("div",{className:"product-values-grid",children:[l.jsxs("div",{className:"product-value-card",children:[l.jsx("div",{className:"product-value-image-wrapper",children:l.jsx("img",{src:"/photos/smiling-japanese-woman-standing-in-a-street-holdi-2025-04-03-02-30-47-utc.jpg",alt:"Individual Users",className:"product-value-image"})}),l.jsx("h3",{className:"product-value-title",children:n("individual.title")}),l.jsx("p",{className:"product-value-subtitle",children:n("individual.subtitle")}),l.jsxs("ul",{className:"product-value-features",children:[l.jsxs("li",{children:[l.jsx("strong",{children:n("individual.track_credit.title")})," - ",n("individual.track_credit.description")]}),l.jsxs("li",{children:[l.jsx("strong",{children:n("individual.ai_advisor.t
9805itle")})," - ",n("individual.ai_advisor.description")]}),l.jsxs("li",{children:[l.jsx("strong",{children:n("individual.bnpl_hub.title")})," - ",n("individual.bnpl_hub.description")]}),l.jsxs("li",{children:[l.jsx("strong",{children:n("individual.smart_shopping.title")})," - ",n("individual.smart_shopping.description")]})]})]}),l.jsxs("div",{className:"product-value-card",children:[l.jsx("div",{className:"product-value-image-wrapper",children:l.jsx("img",{src:"/photos/group-of-young-japanese-professionals-working-on-l-2025-04-05-11-18-17-utc.jpg",alt:"BNPL Providers",className:"product-value-image"})}),l.jsx("h3",{className:"product-value-title",children:n("providers.title")}),l.jsx("p",{className:"product-value-subtitle",children:n("providers.subtitle")}),l.jsxs("ul",{className:"product-value-features",children:[l.jsxs("li",{children:[l.jsx("strong",{children:n("providers.risk_assessment.title")})," - ",n("providers.risk_assessment.description")]}),l.jsxs("li",{children:[l.jsx("strong",{children:n("providers.early_detection.title")})," - ",n("providers.early_detection.description")]}),l.jsxs("li",{children:[l.jsx("strong",{children:n("providers.portfolio.title")})," - ",n("providers.portfolio.description")]}),l.jsxs("li",{children:[l.jsx("strong",{children:n("providers.integration.title")})," - ",n("providers.integration.description")]})]})]})]})]})}),l.jsx("section",{className:"data-sources-section",children:l.jsxs("div",{className:"product-container",children:[l.jsxs("div",{className:"product-section-header",children:[l.jsx("h2",{className:"product-section-title",children:n("alternative_data.title")}),l.jsx("p",{className:"product-section-description",children:n("alternative_data.description")})]}),l.jsx("div",{className:"product-data-sources-grid",children:i.map(p=>l.jsxs("div",{className:"product-data-source-card",children:[p.icon&&l.jsx("img",{src:p.icon,alt:"",className:"product-data-source-icon",onError:g=>{console.error("Failed to load icon:",p.icon),g.currentTarget.style.display="none"}}),l.jsx("h4",{className:"product-data-source-title",children:p.title}),l.jsx("p",{className:"product-data-source-description",children:p.description})]},p.title))})]})}),l.jsx("section",{className:"score-classification-section",children:l.jsxs("div",{className:"product-container",children:[l.jsxs("div",{className:"product-section-header",children:[l.jsx("h2",{className:"product-section-title",children:n("score_classification.title")}),l.jsx("p",{className:"product-section-description",children:n("score_classification.description")})]}),l.jsx("div",{className:"product-score-ranges-grid",children:r.map(p=>l.jsxs("div",{className:`product-score-range-card product-score-${p.color}`,children:[l.jsx("h4",{className:"product-score-range-title",children:p.title}),l.jsx("div",{className:"product-score-range-value",children:p.range}),l.jsx("p",{className:"product-score-range-description",children:p.description})]},p.title))})]})}),l.jsx("section",{className:"advantages-section",children:l.jsxs("div",{className:"product-container",children:[l.jsx("div",{className:"product-section-header",children:l.jsx("h2",{className:"product-section-title",children:n("advantages.title")})}),l.jsx("div",{className:"product-advantages-grid",children:c.map(p=>l.jsxs("div",{className:"product-advantage-card",children:[p.icon&&l.jsx("img",{src:p.icon,alt:"",className:"product-advantage-icon",onError:g=>{console.error("Failed to load icon:",p.icon),g.currentTarget.style.display="none"}}),l.jsx("h4",{className:"product-advantage-title",children:p.title}),l.jsx("p",{className:"product-advantage-description",children:p.description})]},p.title))})]})}),l.jsx("section",{className:"detailed-features-section",children:l.jsxs("div",{className:"product-container",children:[l.jsxs("div",{className:"product-section-header",children:[l.jsx("div",{className:"product-section-badge",children:n("features.badge")}),l.jsx("h2",{className:"product-section-title",children:n("features.title")})]}),l.jsxs("div",{className:"detailed-features-grid",children:[l.jsx("div",{className:"detailed-feature-card detailed-feature-card-green",children:l.jsxs("div",{className:"detailed-feature-card-content",children:[l.jsx("h4",{className:"detailed-feature-card-title",children:n("detailed_features.individual_users.title")}),l.jsx("h5",{className:"detailed-feature-subtitle",children:n("detailed_features.track_manage_credit.title")}),l.jsxs("ul",{className:"detailed-feature-list",children:[l.jsx("li",{children:n("detailed_features.track_manage_credit.feature1")}),l.jsx("li",{children:n("detailed_features.track_manage_credit.feature2")}),l.jsx("li",{children:n("detailed_features.track_manage_credit.feature3")}),l.jsx("li",{children:n("detailed_features.track_manage_credit.feature4")})]}),l.jsx("h5",{className:"detailed-feature-subtitle",children:n("detailed_features.ai_advisor.t
9805itle")}),l.jsxs("ul",{className:"detailed-feature-list",children:[l.jsx("li",{children:n("detailed_features.ai_advisor.feature1")}),l.jsx("li",{children:n("detailed_features.ai_advisor.feature2")}),l.jsx("li",{children:n("detailed_features.ai_advisor.feature3")}),l.jsx("li",{children:n("detailed_features.ai_advisor.feature4")})]}),l.jsx("h5",{className:"detailed-feature-subtitle",children:n("detailed_features.bnpl_hub.title")}),l.jsxs("ul",{className:"detailed-feature-list",children:[l.jsx("li",{children:n("detailed_features.bnpl_hub.feature1")}),l.jsx("li",{children:n("detailed_features.bnpl_hub.feature2")}),l.jsx("li",{children:n("detailed_features.bnpl_hub.feature3")}),l.jsx("li",{children:n("detailed_features.bnpl_hub.feature4")})]}),l.jsx("h5",{className:"detailed-feature-subtitle",children:n("detailed_features.smart_shopping.title")}),l.jsxs("ul",{className:"detailed-feature-list",children:[l.jsx("li",{children:n("detailed_features.smart_shopping.feature1")}),l.jsx("li",{children:n("detailed_features.smart_shopping.feature2")}),l.jsx("li",{children:n("detailed_features.smart_shopping.feature3")}),l.jsx("li",{children:n("detailed_features.smart_shopping.feature4")})]})]})}),l.jsx("div",{className:"detailed-feature-card detailed-feature-card-orange",children:l.jsxs("div",{className:"detailed-feature-card-content",children:[l.jsx("h4",{className:"detailed-feature-card-title",children:n("detailed_features.providers.title")}),l.jsx("h5",{className:"detailed-feature-subtitle",children:n("detailed_features.risk_assessment.title")}),l.jsxs("ul",{className:"detailed-feature-list",children:[l.jsx("li",{children:n("detailed_features.risk_assessment.feature1")}),l.jsx("li",{children:n("detailed_features.risk_assessment.feature2")}),l.jsx("li",{children:n("detailed_features.risk_assessment.feature3")}),l.jsx("li",{children:n("detailed_features.risk_assessment.feature4")})]}),l.jsx("h5",{className:"detailed-feature-subtitle",children:n("detailed_features.early_detection.title")}),l.jsxs("ul",{className:"detailed-feature-list",children:[l.jsx("li",{children:n("detailed_features.early_detection.feature1")}),l.jsx("li",{children:n("detailed_features.early_detection.feature2")}),l.jsx("li",{children:n("detailed_features.early_detection.feature3")}),l.jsx("li",{children:n("detailed_features.early_detection.feature4")})]}),l.jsx("h5",{className:"detailed-feature-subtitle",children:n("detailed_features.portfolio_optimization.title")}),l.jsxs("ul",{className:"detailed-feature-list",children:[l.jsx("li",{children:n("detailed_features.portfolio_optimization.feature1")}),l.jsx("li",{children:n("detailed_features.portfolio_optimization.feature2")}),l.jsx("li",{children:n("detailed_features.portfolio_optimization.feature3")}),l.jsx("li",{children:n("detailed_features.portfolio_optimization.feature4")})]}),l.jsx("h5",{className:"detailed-feature-subtitle",children:n("detailed_features.quick_integration.title")}),l.jsxs("ul",{className:"detailed-feature-list",children:[l.jsx("li",{children:n("detailed_features.quick_integration.feature1")}),l.jsx("li",{children:n("detailed_features.quick_integration.feature2")}),l.jsx("li",{children:n("detailed_features.quick_integration.feature3")}),l.jsx("li",{children:n("detailed_features.quick_integration.feature4")})]})]})})]})]})}),l.jsx("section",{className:"scoring-system-section",children:l.jsx("div",{className:"product-container",children:l.jsxs("div",{className:"product-tech-content",children:[l.jsx("div",{className:"product-tech-image-wrapper",children:l.jsx("img",{src:"/photos/two-young-businesswomen-laughing-while-working-on-2025-10-14-02-08-49-utc.jpg",alt:"Scoring System",className:"product-tech-image"})}),l.jsxs("div",{className:"scoring-system-content",children:[l.jsx("div",{className:"product-section-badge",children:n("advanced_tech.badge")}),l.jsx("h2",{className:"product-section-title",children:n("advanced_tech.title")}),l.jsx("p",{className:"product-section-description",children:n("advanced_tech.description")}),l.jsxs("div",{className:"scoring-system-items",children:[l.jsxs("div",{className:"scoring-system-item",children:[l.jsx("h4",{className:"scoring-system-item-title",children:n("scoring_system.mobile_payment.title")}),l.jsx("p",{className:"scoring-system-item-description",children:n("scoring_system.mobile_payment.description")})]}),l.jsxs("div",{className:"scoring-system-item",children:[l.jsx("h4",{className:"scoring-system-item-title",children:n("scoring_system.ewallet.title")}),l.jsx("p",{className:"scoring-system-item-description",children:n("scoring_system.ewallet.description")})]}),l.jsxs("div",{className:"scoring-system-item",children:[l.jsx("h4",{className:"scoring-system-item-title",children:n("scoring_system.ecommerce.title")}),l.jsx("p",{className:"scoring-system-item-description",children:n("scoring_system.ecommerce.description")})]}),l.jsxs("div",{className:"scoring-system-item",children:[l.jsx("h4",{className:"scoring-system-item-title",children:n("scoring_system.utility_bills.title")}),l.jsx("p",{className:"scoring-system-item-description",children:n("scoring_system.utility_bills.description")})]}),l.jsxs("div",{className:"scoring-system-item",children:[l.jsx("h4",{className:"scoring-system-item-title",children:n("scoring_system.banking.t
9805itle")}),l.jsx("p",{className:"scoring-system-item-description",children:n("scoring_system.banking.description")})]})]})]})]})})}),l.jsx("section",{className:"tech-section",children:l.jsxs("div",{className:"product-container",children:[l.jsxs("div",{className:"product-section-header",children:[l.jsx("h2",{className:"product-section-title",children:n("tech_stack.title")}),l.jsx("p",{className:"product-section-description",children:n("tech_stack.description")})]}),l.jsxs("div",{className:"product-tech-content",children:[l.jsx("div",{className:"product-tech-image-wrapper",children:l.jsx("img",{src:"/photos/business-team-applauding-a-colleague-during-a-meet-2025-10-14-02-08-49-utc.jpg",alt:"Technology Stack",className:"product-tech-image"})}),l.jsxs("div",{className:"product-tech-features",children:[l.jsxs("div",{className:"product-tech-feature",children:[l.jsx("h4",{className:"product-tech-feature-title",children:n("tech_stack.data_sources.title")}),l.jsx("p",{className:"product-tech-feature-description",children:n("tech_stack.data_sources.description")})]}),l.jsxs("div",{className:"product-tech-feature",children:[l.jsx("h4",{className:"product-tech-feature-title",children:n("tech_stack.ai_ml.title")}),l.jsx("p",{className:"product-tech-feature-description",children:n("tech_stack.ai_ml.description")})]}),l.jsxs("div",{className:"product-tech-feature",children:[l.jsx("h4",{className:"product-tech-feature-title",children:n("tech_stack.real_time.title")}),l.jsx("p",{className:"product-tech-feature-description",children:n("tech_stack.real_time.description")})]}),l.jsxs("div",{className:"product-tech-feature",children:[l.jsx("h4",{className:"product-tech-feature-title",children:n("tech_stack.privacy.title")}),l.jsx("p",{className:"product-tech-feature-description",children:n("tech_stack.privacy.description")})]})]})]})]})})]})}function Cq(){const{t}=De(),e="ad_housing",n=_=>t(`${e}.${_}`),s=[{value:"94%+",label:n("stats.accuracy")},{value:"20+",label:n("stats.data_sources")},{value:"75%",label:n("stats.risk_reduction")},{value:"<30s",label:n("stats.processing_time")}],i=[{title:n("features.comprehensive_analysis.title"),description:n("features.comprehensive_analysis.description")},{title:n("features.data_sources.title"),description:n("features.data_sources.description")},{title:n("features.accuracy.title"),description:n("features.accuracy.description")},{title:n("features.real_time.title"),description:n("features.real_time.description")},{title:n("features.early_detection.title"),description:n("features.early_detection.description")},{title:n("features.smart_recommendations.title"),description:n("features.smart_recommendations.description")}
9805],r=[{title:n("benefits.guarantee_companies.title"),description:n("benefits.guarantee_companies.description"),features:[n("benefits.guarantee_companies.feature1"),n("benefits.guarantee_companies.feature2"),n("benefits.guarantee_companies.feature3")]},{title:n("benefits.lnpl_providers.title"),description:n("benefits.lnpl_providers.description"),features:[n("benefits.lnpl_providers.feature1"),n("benefits.lnpl_providers.feature2"),n("benefits.lnpl_providers.feature3")]},{title:n("benefits.property_managers.title"),description:n("benefits.property_managers.description"),features:[n("benefits.property_managers.feature1"),n("benefits.property_managers.feature2"),n("benefits.property_managers.feature3")]}],c=[{number:"01",title:n("process.step1.title"),description:n("process.step1.description")},{number:"02",title:n("process.step2.title"),description:n("process.step2.description")},{number:"03",title:n("process.step3.title"),description:n("process.step3.description")},{number:"04",title:n("process.step4.title"),description:n("process.step4.description")}],p=[{title:n("data_sources.utility_bills.title"),description:n("data_sources.utility_bills.description"),icon:"/icons/solid/note.svg"},{title:n("data_sources.bank_transactions.title"),description:n("data_sources.bank_transactions.description"),icon:"/icons/solid/coin.svg"},{title:n("data_sources.rental_history.title"),description:n("data_sources.rental_history.description"),icon:"/icons/solid/calendar.svg"},{title:n("data_sources.mobile_payments.title"),description:n("data_sources.mobile_payments.description"),icon:"/icons/solid/smartphone.svg"},{title:n("data_sources.ecommerce.title"),description:n("data_sources.ecommerce.description"),icon:"/icons/solid/shopping-cart.svg"},{title:n("data_sources.telco_cdr.title"),description:n("data_sources.telco_cdr.description"),icon:"/icons/solid/headphone.svg"},{title:n("data_sources.social_insurance.title"),description:n("data_sources.social_insurance.description"),icon:"/icons/solid/health-insurance.svg"},{title:n("data_sources.employment_verification.title"),description:n("data_sources.employment_verification.description"),icon:"/icons/solid/id-card.svg"}],g=[{title:n("technology.ml_models.title"),description:n("technology.ml_models.description")},{title:n("technology.real_time.title"),description:n("technology.real_time.description")},{title:n("technology.security.title"),description:n("technology.security.description")}];return l.jsxs("div",{className:"ad-housing-page",children:[l.jsx("section",{className:"ad-housing-hero-section",style:{borderBottom:"none",paddingBottom:"0px"},children:l.jsxs("div",{className:"ad-housing-hero-container",children:[l.jsx("div",{className:"ad-housing-hero-badge",children:n("hero.badge")}),l.jsx("div",{className:"ad-housing-hero-logo",children:l.jsx("img",{src:"/brands/AdHousing.png",alt:"AD Housing",className:"ad-housing-section-logo"})}),l.jsx("h1",{className:"ad-housing-hero-title",children:n("hero.title")}),l.jsx("p",{className:"ad-housing-hero-description",children:n("hero.description")})]})}),l.jsx("section",{className:"ad-housing-stats-section",style:{paddingTop:"0px"},children:l.jsx("div",{className:"ad-housing-container",children:l.jsx("div",{className:"ad-housing-stats-grid",children:s.map(_=>l.jsxs("div",{className:"ad-housing-stat-card",children:[l.jsx("div",{className:"ad-housing-stat-value",children:_.value}),l.jsx("div",{className:"ad-housing-stat-label",children:_.label})]},_.label))})})}),l.jsx("section",{className:"ad-housing-features-section",children:l.jsx("div",{className:"ad-housing-container",children:l.jsxs("div",{className:"ad-housing-features-content",children:[l.jsx("div",{className:"ad-housing-features-image-wrapper",children:l.jsx("img",{src:"/illustrations/i5.jpg",alt:"AD Housing Features",className:"ad-housing-features-image"})}),l.jsxs("div",{className:"ad-housing-features-text",children:[l.jsxs("div",{className:"ad-housing-section-header",children:[l.jsx("h2",{className:"ad-housing-section-title",children:n("features.title")}),l.jsx("p",{className:"ad-housing-section-description",children:n("features.subtitle")})]}),l.jsx("div",{className:"ad-housing-features-grid",children:i.map(_=>l.jsxs("div",{className:"ad-housing-feature-card",children:[l.jsx("h4",{className:"ad-housing-feature-title",children:_.title}),l.jsx("p",{className:"ad-housing-feature-description",children:_.description})]},_.title))})]})]})})}),l.jsx("section",{className:"ad-housing-benefits-section",children:l.jsxs("div",{className:"ad-housing-container",children:[l.jsxs("div",{className:"ad-housing-section-header",children:[l.jsx("h2",{className:"ad-housing-section-title",children:n("benef
9805its.title")}),l.jsx("p",{className:"ad-housing-section-description",children:n("benefits.subtitle")})]}),l.jsx("div",{className:"ad-housing-benefits-grid",children:r.map(_=>l.jsxs("div",{className:"ad-housing-benefit-card",children:[l.jsx("h3",{className:"ad-housing-benefit-title",children:_.title}),l.jsx("p",{className:"ad-housing-benefit-description",children:_.description}),l.jsx("ul",{className:"ad-housing-benefit-features",children:_.features.map(f=>l.jsx("li",{children:f},f))})]},_.title))})]})}),l.jsx("section",{className:"ad-housing-process-section",children:l.jsxs("div",{className:"ad-housing-container",children:[l.jsxs("div",{className:"ad-housing-section-header",children:[l.jsx("h2",{className:"ad-housing-section-title",children:n("process.title")}),l.jsx("p",{className:"ad-housing-section-description",children:n("process.subtitle")})]}),l.jsx("div",{className:"ad-housing-process-steps",children:c.map(_=>l.jsxs("div",{className:"ad-housing-process-step",children:[l.jsx("div",{className:"ad-housing-step-number",children:_.number}),l.jsx("h3",{className:"ad-housing-step-title",children:_.title}),l.jsx("p",{className:"ad-housing-step-description",children:_.description})]},_.number))})]})}),l.jsx("section",{className:"ad-housing-data-sources-section",children:l.jsxs("div",{className:"ad-housing-container",children:[l.jsxs("div",{className:"ad-housing-section-header",children:[l.jsx("h2",{className:"ad-housing-section-title",children:n("data_sources.title")}),l.jsx("p",{className:"ad-housing-section-description",children:n("data_sources.description")})]}),l.jsx("div",{className:"ad-housing-data-sources-grid",children:p.map(_=>l.jsxs("div",{className:"ad-housing-data-source-card",children:[_.icon&&l.jsx("img",{src:_.icon,alt:"",className:"ad-housing-data-source-icon",onError:f=>{console.error("Failed to load icon:",_.icon),f.currentTarget.style.display="none"}}),l.jsx("h4",{className:"ad-housing-data-source-title",children:_.title}),l.jsx("p",{className:"ad-housing-data-source-description",children:_.description})]},_.title))})]})}),l.jsx("section",{className:"ad-housing-tech-section",children:l.jsxs("div",{className:"ad-housing-container",children:[l.jsxs("div",{className:"ad-housing-section-header",children:[l.jsx("h2",{className:"ad-housing-section-title",children:n("technology.title")}),l.jsx("p",{className:"ad-housing-section-description",children:n("technology.description")})]}),l.jsxs("div",{className:"ad-housing-tech-content",children:[l.jsx("div",{className:"ad-housing-tech-features",children:g.map(_=>l.jsxs("div",{className:"ad-housing-tech-feature",children:[l.jsx("h4",{className:"ad-housing-tech-feature-title",children:_.title}),l.jsx("p",{className:"ad-housing-tech-feature-description",children:_.description})]},_.title))}),l.jsxs("div",{className:"ad-housing-tech-images-grid",children:[l.jsx("img",{src:"/illustrations/Pasted image.png",alt:"Tech 1",className:"ad-housing-tech-grid-image"}),l.jsx("img",{src:"/illustrations/i1.JPG",alt:"Tech 2",className:"ad-housing-tech-grid-image"}),l.jsx("img",{src:"/illustrations/i31.JPG",alt:"Tech 3",className:"ad-housing-tech-grid-image"}),l.jsx("img",{src:"/illustrations/i41.png",alt:"Tech 4",className:"ad-housing-tech-grid-image"})]})]})]})}),l.jsx("section",{className:"ad-housing-fair-housing-section",children:l.jsx("div",{className:"ad-housing-container",children:l.jsxs("div",{className:"ad-housing-fair-housing-content",children:[l.jsx("div",{className:"ad-housing-fair-housing-icon",children:"⚖️"}),l.jsx("h2",{className:"ad-housing-fair-housing-title",children:n("fair_housing.title")}),l.jsx("p",{className:"ad-housing-fair-housing-description",children:n("fair_housing.description")}),l.jsxs("ul",{className:"ad-housing-fair-housing-list",children:[l.jsx("li",{children:n("fair_housing.bullet1")}),l.jsx("li",{children:n("fair_housing.bullet2")}),l.jsx("li",{children:n("fair_housing.bullet3")})]}),l.jsx("p",{className:"ad-housing-fair-housing-subtext",children:n("fair_housing.subtext")})]})})})]})}function Sq(){const{t}=De(),e="ad_passport",n=p=>t(`${e}.${p}`),s=[{value:"94%",label:n("stats.reliability")},{value:"30+",label:n("stats.data_sources")},{value:"< 60s",label:n("stats.processing_time")},{value:"95%",label:n("stats.high_risk_detection")}],i=[{title:n("assessment.financial.title"),description:n("assessment.financial.description")},{title:n("assessment.professional.title"),description:n("assessment.professional.description")},{title:n("assessment.education.title"),description:n("assessment.education.description")},{title:n("assessment.migration.title"),description:n("assessment.migration.description")},{title:n("assessment.social.title"),description:n("assessment.social.description")},{title:n("assessment.personal.title"),description:n("assessment.personal.description")}],r=[{title:n("use_cases.recruitment.title"),description:n("use_cases.recruitment.description"),icon:"/icons/solid/conference.svg"},{title:n("use_cases.study.title"),description:n("use_cases.study.description"),icon:"/icons/solid/bulb.svg"},{title:n("use_cases.investment.title"),description:n("use_cases.investment.description"),icon:"/icons/solid/coin.svg"},{title:n("use_cases.family.title"),description:n("use_cases.family.description"),icon:"/icons/solid/employees.svg"}],c=[{title:n("data_integration.international_banks.title"),description:n("data_integration.international_banks.description")},{title:n("data_integration.government_agencies.title"),description:n("data_integration.government_agencies.description")},{title:n("data_integration.social_networks.title"),description:n("data_integration.social_networks.description")},{title:n("data_integration.employment_platforms.title"),description:n("data_integration.employment_platforms.description")},{title:n("data_integration.education_systems.title"),description:n("data_integration.education_systems.description")},{title:n("data_integration.global_databases.title"),description:n("data_integration.global_databases.description")},{title:n("data_integration.credit_bureaus.title"),description:n("data_integration.credit_bureaus.description")},{title:n("data_integration.property_records.title"),description:n("data_integration.property_records.description")}];return l.jsxs("div",{className:"atobar-ai-page",children:[l.jsx("section",{className:"product-hero-section ad-passport-hero",children:l.jsxs("div",{className:"product-hero-container",children:[l.jsx("div",{className:"product-hero-badge",children:n("hero.badge")}),l.jsx("h1",{className:"product-hero-title",children:n("hero.title")}),l.jsx("p",{className:"product-hero-description",children:n("hero.description")})]})}),l.jsx("section",{className:"stats-section ad-passport-stats",children:l.jsx("div",{className:"product-container",children:l.jsx("div",{className:"product-stats-grid",children:s.map(p=>l.jsxs("div",{className:"product-stat-card",children:[l.jsx("div",{className:"product-stat-value",children:p.value}),l.jsx("div",{className:"product-stat-label",children:p.label})]},p.label))})})}),l.jsx("section",{className:"features-section-alt",children:l.jsx("div",{className:"product-container",children:l.jsxs("div",{className:"features-two-col",children:[l.jsx("div",{className:"features-image-col",children:l.jsx("img",{src:"/illustrations/modern-beautiful-skyscrapers-on-a-beautiful-sky-ba-2026-03-17-07-20-18-utc.jpg",alt:n("features.title"),className:"features-single-image"})}),l.jsxs("div",{className:"features-text-col",children:[l.jsx("h2",{className:"features-main-title",children:n("features.title")}),l.jsxs("ul",{className:"features-bullet-list",children:[l.jsxs("li",{children:[l.jsx("strong",{children:n("features.multi_dimensional.title")})," - ",n("features.multi_dimensional.description")]}),l.jsxs("li",{children:[l.jsx("strong",{children:n("features.data_sources.title")})," - ",n("features.data_sources.description")]}),l.jsxs("li",{children:[l.jsx("strong",{children:n("features.risk_profiling.title")})," - ",n("features.risk_profiling.description")]}),l.jsxs("li",{children:[l.jsx("strong",{children:n("features.scoring.title")})," - ",n("features.scoring.description")]}),l.jsxs("li",{children:[l.jsx("strong",{children:n("features.fairness.title")})," - ",n("features.fairness.description")]}),l.jsxs("li",{children:[l.jsx("strong",{children:n("features.explainable.title")})," - ",n("features.explainable.description")]}),l.jsxs("li",{children:[l.jsx("strong",{children:n("features.appeal.title")})," - ",n("features.appeal.description")]})]})]})]})})}),l.jsx("section",{className:"score-classification-section",children:l.jsxs("div",{className:"product-container",children:[l.jsxs("div",{className:"product-section-header",children:[l.jsx("h2",{className:"product-section-title",children:n("benef
9805its.title")}),l.jsx("p",{className:"product-section-description",children:n("benefits.subtitle")})]}),l.jsxs("div",{className:"product-score-ranges-grid",children:[l.jsxs("div",{className:"product-score-range-card",children:[l.jsx("div",{className:"product-score-range-value",children:n("benefits.time_reduction.value")}),l.jsx("h4",{className:"product-score-range-title",children:n("benefits.time_reduction.title")}),l.jsx("p",{className:"product-score-range-description",children:n("benefits.time_reduction.subtitle")})]}),l.jsxs("div",{className:"product-score-range-card",children:[l.jsx("div",{className:"product-score-range-value",children:n("benefits.detection_accuracy.value")}),l.jsx("h4",{className:"product-score-range-title",children:n("benefits.detection_accuracy.title")}),l.jsx("p",{className:"product-score-range-description",children:n("benefits.detection_accuracy.subtitle")})]}),l.jsxs("div",{className:"product-score-range-card",children:[l.jsx("div",{className:"product-score-range-value",children:n("benefits.fast_processing.value")}),l.jsx("h4",{className:"product-score-range-title",children:n("benefits.fast_processing.title")}),l.jsx("p",{className:"product-score-range-description",children:n("benefits.fast_processing.subtitle")})]}),l.jsxs("div",{className:"product-score-range-card",children:[l.jsx("div",{className:"product-score-range-value",children:n("benefits.fraud_reduction.value")}),l.jsx("h4",{className:"product-score-range-title",children:n("benefits.fraud_reduction.title")}),l.jsx("p",{className:"product-score-range-description",children:n("benefits.fraud_reduction.subtitle")})]})]})]})}),l.jsx("section",{className:"values-section",children:l.jsxs("div",{className:"product-container",children:[l.jsxs("div",{className:"product-section-header",children:[l.jsx("h2",{className:"product-section-title",children:n("assessment.title")}),l.jsx("p",{className:"product-section-description",children:n("assessment.description")})]}),l.jsx("div",{className:"product-advantages-grid ad-passport-aspects-grid",children:i.map(p=>l.jsxs("div",{className:"product-advantage-card",children:[l.jsx("h4",{className:"product-advantage-title",children:p.title}),l.jsx("p",{className:"product-advantage-description",children:p.description})]},p.title))})]})}),l.jsx("section",{className:"data-sources-section",children:l.jsxs("div",{className:"product-container",children:[l.jsxs("div",{className:"product-section-header",children:[l.jsx("h2",{className:"product-section-title",children:n("use_cases.title")}),l.jsx("p",{className:"product-section-description",children:n("use_cases.description")})]}),l.jsx("div",{className:"product-data-sources-grid ad-passport-use-cases-grid",children:r.map(p=>l.jsxs("div",{className:"product-data-source-card",children:[p.icon&&l.jsx("img",{src:p.icon,alt:"",className:"product-data-source-icon",onError:g=>{console.error("Failed to load icon:",p.icon),g.currentTarget.style.display="none"}}),l.jsx("h4",{className:"product-data-source-title",children:p.title}),l.jsx("p",{className:"product-data-source-description",children:p.description})]},p.title))})]})}),l.jsx("section",{className:"tech-section",children:l.jsx("div",{className:"product-container",children:l.jsxs("div",{className:"product-tech-content ad-passport-data-tech-content",children:[l.jsx("div",{className:"product-tech-image-wrapper",children:l.jsx("img",{src:"/illustrations/urban-traffic-2026-01-09-00-29-15-utc.jpg",alt:"AD Passport Data Integration",className:"product-tech-image"})}),l.jsxs("div",{children:[l.jsxs("div",{className:"product-section-header ad-passport-data-tech-header",children:[l.jsx("h2",{className:"product-section-title",children:n("data_integration.title")}),l.jsx("p",{className:"product-section-description",children:n("data_integration.description")})]}),l.jsx("div",{className:"product-tech-features ad-passport-data-tech-features",children:c.map(p=>l.jsxs("div",{className:"product-tech-feature",children:[l.jsx("h4",{className:"product-tech-feature-title",children:p.title}),l.jsx("p",{className:"product-tech-feature-description",children:p.description})]},p.title))})]})]})})}),l.jsx("section",{className:"product-section-base product-section-alt",children:l.jsxs("div",{className:"product-container",children:[l.jsxs("div",{className:"product-section-header ad-passport-commitment-header",children:[l.jsx("img",{src:"/icons/solid/secure.svg",alt:"",className:"product-stat-icon"}),l.jsx("h2",{className:"product-section-title",children:n("anti_discrimination.title")}),l.jsx("p",{className:"product-section-description ad-passport-commitment-lead",children:n("anti_discrimination.lead")})]}),l.jsx("div",{className:"ad-passport-excluded-tags",children:[1,2,3,4,5].map(p=>l.jsx("span",{className:"ad-passport-excluded-tag",children:n(`anti_discrimination.excluded${p}`)},p))}),l.jsx("div",{className:"ad-passport-positive-card",children:l.jsx("h3",{className:"ad-passport-positive-title",children:n("anti_discrimination.positive")})}),l.jsxs("div",{className:"ad-passport-commitment-footer",children:[l.jsxs("div",{children:[l.jsx("p",{className:"ad-passport-footer-label",children:"Fairness Assurance"}),l.jsx("p",{className:"ad-passport-footer-content",children:n("anti_discrimination.fairness")})]}),l.jsxs("div",{children:[l.jsx("p",{className:"ad-passport-footer-label",children:"Your Privacy Rights"}),l.jsx("p",{className:"ad-passport-footer-content",children:n("anti_discrimination.rights")})]})]})]})}),l.jsx("section",{className:"product-section-base",children:l.jsxs("div",{className:"product-container",children:[l.jsx("div",{className:"product-section-header",children:l.jsx("h2",{className:"product-section-title",children:n("user_rights.title")})}),l.jsx("div",{className:"product-advantages-grid ad-passport-rights-grid",children:[{icon:"/icons/solid/clipboard.svg",text:n("user_rights.right1")},{icon:"/icons/solid/synchronize.svg",text:n("user_rights.right2")},{icon:"/icons/solid/bucket.svg",text:n("user_rights.right3")},{icon:"/icons/solid/cloud-download.svg",text:n("user_rights.right4")},{icon:"/icons/solid/lock.svg",text:n("user_rights.right5")}].map((p,g)=>l.jsxs("div",{className:"product-advantage-card ad-passport-rights-card",children:[l.jsx("img",{src:p.icon,alt:"",className:"product-advantage-icon"}),l.jsx("p",{className:"product-advantage-description",children:p.text})]},g))})]})}),l.jsx("section",{className:"product-section-base product-section-alt",children:l.jsxs("div",{className:"product-container",children:[l.jsx("div",{className:"product-section-header",children:l.jsx("h2",{className:"product-section-title",children:n("compliance.title")})}),l.jsx("div",{className:"product-score-ranges-grid ad-passport-compliance-grid",children:[1,2,3,4].map(p=>l.jsxs("div",{className:"product-score-range-card ad-passport-compliance-card",children:[l.jsx("img",{src:"/icons/solid/verify.svg",alt:"",className:"ad-passport-badge-icon"}),l.jsxs("div",{children:[l.jsx("h4",{className:"ad-passport-compliance-title",children:n(`compliance.badge${p}.name`)}),l.jsx("p",{className:"ad-passport-compliance-desc",children:n(`compliance.badge${p}.desc`)})]})]},p))})]})})]})}const wq=(t,e=800)=>{const n=window.scrollY,s=t-n,i=performance.now(),r=c=>{let p=(c-i)/e;p>1&&(p=1);const g=p<.5?4*p*p*p:1-Math.pow(-2*p+2,3)/2;window.scrollTo(0,n+s*g),p<1&&window.requestAnimationFrame(r)};window.requestAnimationFrame(r)};function Eq(){const{t}=De(),e=si(),n="lnpl",s=g=>t(`${n}.${g}`),i=[{value:"70%",label:s("stats.upfront_cost_reduction")},{value:"<30s",label:s("stats.approval_time")},{value:"90%",label:s("stats.approval_rate")},{value:"30%",label:s("stats.default_risk_reduction")},{value:"250+",label:s("stats.ai_features")}],r=[{title:s("cost_components.deposit.title"),percentage:"60%",amount:s("cost_components.deposit.amount")},{title:s("cost_components.key_money.title"),percentage:"25%",amount:s("cost_components.key_money.amount")},{title:s("cost_components.advance_rent.title"),percentage:"15%",amount:s("cost_components.advance_rent.amount")}],c=[{number:"1",title:s("process.step1.title"),description:s("process.step1.description")},{number:"2",title:s("process.step2.title"),description:s("process.step2.description")},{number:"3",title:s("process.step3.title"),description:s("process.step3.description")},{number:"4",title:s("process.step4.title"),description:s("process.step4.description")}],p=[{id:"basic",title:s("coverage.basic.title"),description:s("coverage.basic.description"),icon:"/icons/solid/graph.svg"},{id:"standard",title:s("coverage.standard.title"),description:s("coverage.standard.description"),icon:"/icons/solid/like.svg",recommended:!0},{id:"premium",title:s("coverage.premium.title"),description:s("coverage.premium.description"),icon:"/icons/solid/medal.svg"}];return l.jsxs("div",{className:"atobar-ai-page",children:[l.jsx("section",{className:"product-hero-section",children:l.jsxs("div",{className:"product-hero-container",children:[l.jsx("div",{className:"product-hero-badge",children:s("hero.badge")}),l.jsx("div",{className:"product-hero-logo",children:l.jsx("img",{src:"/brands/lnpl.png",alt:"LNPL",className:"product-section-logo"})}),l.jsx("h1",{className:"product-hero-title",children:s("hero.title")}),l.jsx("p",{className:"product-hero-description",children:s("hero.description")}),l.jsxs("div",{className:"product-hero-actions",children:[l.jsx("button",{className:"product-btn-primary",onClick:()=>e("/contact"),children:s("hero.cta_primary")}),l.jsx("button",{className:"product-btn-secondary",onClick:g=>{g.preventDefault();const _=document.getElementById("values-section");if(_){const f=_.getBoundingClientRect().top+window.scrollY-80;wq(f,800)}},children:s("hero.cta_secondary")})]})]})}),l.jsx("section",{className:"stats-section",children:l.jsx("div",{className:"product-container",children:l.jsx("div",{className:"product-stats-grid",children:i.map(g=>l.jsxs("div",{className:"product-stat-card",children:[l.jsx("div",{className:"product-stat-value",children:g.value}),l.jsx("div",{className:"product-stat-label",children:g.label})]},g.label))})})}),l.jsx("section",{id:"values-section",className:"values-section",children:l.jsx("div",{className:"product-container",children:l.jsxs("div",{className:"product-values-grid",children:[l.jsx("div",{className:"product-value-card lnpl-image-card",children:l.jsx("div",{className:"product-value-image-wrapper lnpl-full-bleed-wrapper",children:l.jsx("img",{src:"/photos/portrait-of-happy-asian-family-2025-01-08-14-11-04-utc.jpg",alt:"LNPL Core Value",className:"product-value-image lnpl-full-bleed-image"})})}),l.jsxs("div",{className:"product-value-card",children:[l.jsx("div",{className:"product-section-badge lnpl-core-value-badge",children:s("core_value.badge")}),l.jsx("h3",{className:"product-value-title",children:s("core_value.title")}),l.jsx("p",{className:"product-value-subtitle",children:s("core_value.description")}),l.jsxs("ul",{className:"product-value-features",children:[l.jsxs("li",{children:[l.jsx("strong",{children:s("core_value.tenants.title")})," - ",s("core_value.tenants.description")]}),l.jsxs("li",{children:[l.jsx("strong",{children:s("core_value.providers.title")})," - ",s("core_value.providers.description")]}),l.jsxs("li",{children:[l.jsx("strong",{children:s("core_value.trust.title")})," - ",s("core_value.trust.description")]})]})]})]})})}),l.jsx("section",{className:"score-classification-section",children:l.jsxs("div",{className:"product-container",children:[l.jsxs("div",{className:"product-section-header",children:[l.jsx("h2",{className:"product-section-title",children:s("cost_components.title")}),l.jsx("p",{className:"product-section-description",children:s("cost_components.description")}),l.jsx("div",{className:"lnpl-cost-example",children:l.jsx("strong",{children:s("cost_components.example")})})]}),l.jsx("div",{className:"product-score-ranges-grid",children:r.map(g=>l.jsxs("div",{className:"product-score-range-card",children:[l.jsx("h4",{className:"product-score-range-title",children:g.title}),l.jsx("div",{className:"product-score-range-value",children:g.percentage}),l.jsx("p",{className:"product-score-range-description",children:g.amount})]},g.title))})]})}),l.jsx("section",{className:"data-sources-section",children:l.jsxs("div",{className:"product-container",children:[l.jsxs("div",{className:"product-section-header",children:[l.jsx("h2",{className:"product-section-title",children:s("process.title")}),l.jsx("p",{className:"product-section-description",children:s("process.description")})]}),l.jsx("div",{className:"product-process-stepper",children:c.map(g=>l.jsxs("div",{className:"product-process-step",children:[l.jsx("div",{className:"product-process-step-marker",children:g.number}),l.jsx("h4",{children:g.title}),l.jsx("p",{children:g.description})]},g.number))})]})}),l.jsx("section",{className:"tech-section",children:l.jsxs("div",{className:"product-container",children:[l.jsxs("div",{className:"product-section-header",children:[l.jsx("h2",{className:"product-section-title",children:s("coverage.title")}),l.jsx("p",{className:"product-section-description",children:s("coverage.description")})]}),l.jsx("div",{className:"product-advantages-grid",children:p.map(g=>l.jsxs("div",{className:"product-advantage-card lnpl-coverage-card",children:[g.recommended&&l.jsx("div",{className:"lnpl-recommended-badge",children:s("coverage.recommended")}),g.icon&&l.jsx("img",{src:g.icon,alt:"",className:"product-advantage-icon",onError:_=>{console.error("Failed to load icon:",g.icon),_.currentTarget.style.display="none"}}),l.jsx("h4",{className:"product-advantage-title",children:g.title}),l.jsx("p",{className:"product-advantage-description lnpl-coverage-description",children:g.description}),l.jsx("button",{className:`${g.recommended?"product-btn-primary":"product-btn-secondary"} lnpl-coverage-btn`,onClick:()=>e("/contact"),children:s("coverage.cta")})]},g.id))})]})}),l.jsx("section",{className:"values-section",children:l.jsxs("div",{className:"product-container",children:[l.jsxs("div",{className:"product-section-header",children:[l.jsx("h2",{className:"product-section-title",children:s("fairness.heading")}),l.jsx("p",{className:"product-section-description",children:s("fairness.lead_text")})]}),l.jsxs("div",{className:"product-advantages-grid",children:[l.jsxs("div",{className:"product-advantage-card",children:[l.jsx("h4",{className:"product-advantage-title",children:s("fairness.stat1_title")}),l.jsx("p",{className:"product-advantage-description",children:s("fairness.stat1")})]}),l.jsxs("div",{className:"product-advantage-card",children:[l.jsx("h4",{className:"product-advantage-title",children:s("fairness.stat2_title")}),l.jsx("p",{className:"product-advantage-description",children:s("fairness.stat2")})]}),l.jsxs("div",{className:"product-advantage-card",children:[l.jsx("h4",{className:"product-advantage-title",children:s("fairness.stat3_title")}),l.jsx("p",{className:"product-advantage-description",children:s("fairness.stat3")})]})]})]})}),l.jsx("section",{className:"product-section-base",children:l.jsxs("div",{className:"product-container",children:[l.jsx("div",{className:"product-section-header",children:l.jsx("h2",{className:"product-section-title",children:s("faq.heading")})}),l.jsx("div",{className:"lnpl-faq-list",children:[1,2,3,4,5].map(g=>l.jsxs("div",{className:"lnpl-faq-item",children:[l.jsx("h4",{className:"lnpl-faq-question",children:s(`faq.q${g}_q`)}),l.jsx("p",{className:"lnpl-faq-answer",children:s(`faq.q${g}_a`)})]},g))})]})}),l.jsx("section",{className:"product-section-base product-section-alt",children:l.jsxs("div",{className:"product-container",children:[l.jsxs("div",{className:"product-section-header",children:[l.jsx("h2",{className:"product-section-title",children:s("compliance.heading")}),l.jsx("p",{className:"product-section-description",children:s("compliance.text")})]}),l.jsx("div",{className:"lnpl-compliance-list",children:[1,2,3,4].map(g=>l.jsx("span",{className:"lnpl-compliance-badge",children:s(`compliance.badge${g}`)},g))})]})})]})}const Jx=[{id:"company-hr-system",title:"COMPANY・人事管理システム【機能改修】",subtitle:"基幹管理",category:"Others",imageSrc:"/assets/images/case-study/2.png",imageAlt:"COMPANY・人事管理システム【機能改修】",linkSrc:"/assets/images/case-study/img-1.png"},{id:"warehouse-system",t
9805itle:"倉庫管理システム【リプレイス・機能改修】",subtitle:"基幹管理",category:"Others",imageSrc:"/assets/images/case-study/3.png",imageAlt:"倉庫管理システム【リプレイス・機能改修】",linkSrc:"/assets/images/case-study/img-3.png"},{id:"mirron-matching-app",title:"Mirron・マッチングアプリケーション",subtitle:"マッチングアプリ",category:"Others",imageSrc:"/assets/images/case-study/9.png",imageAlt:"Mirron・マッチングアプリケーション",linkSrc:"/assets/images/case-study/img-4.png"},{id:"photo-ac-ecommerce",title:"Photo AC・Eコマースサイト",subtitle:"Eコマース",category:"Others",imageSrc:"/assets/images/case-study/7.png",imageAlt:"Photo AC・Eコマースサイト",linkSrc:"/assets/images/case-study/img-5.png"},{id:"mobile-phone-store",title:"携帯電話の販売サイト",subtitle:"Eコマース",category:"Others",imageSrc:"/assets/images/case-study/1.png",imageAlt:"携帯電話の販売サイト",linkSrc:"/assets/images/case-study/img-6.png"},{id:"forecast-visualization",title:"予測・可視化システム",subtitle:"可視化",category:"AI",imageSrc:"/assets/images/case-study/4.png",imageAlt:"予測・可視化システム",linkSrc:"/assets/images/case-study/img-7.png"},{id:"finad",title:"FinAd",subtitle:"FinTech",category:"FinTech",imageSrc:"/assets/images/case-study/12.png",imageAlt:"FinAd",linkSrc:"/assets/images/case-study/img-8.png"},{id:"milize-chat",title:"milizeChat",subtitle:"FinTech",category:"FinTech",imageSrc:"/assets/images/case-study/21.png",imageAlt:"milizeChat",linkSrc:"/assets/images/case-study/img-9.png"},{id:"digital-advisor",title:"DIGITAL Advisor",subtitle:"FinTech",category:"FinTech",imageSrc:"/assets/images/case-study/15.png",imageAlt:"DIGITAL Advisor",linkSrc:"/assets/images/case-study/img-10.png"},{id:"money-consulting",title:"お金の窓口・コンサルティングシステム",subtitle:"FinTech",category:"FinTech",imageSrc:"/assets/images/case-study/16.png",imageAlt:"お金の窓口・コンサルティングシステム",linkSrc:"/assets/images/case-study/img-11.png"},{id:"milize-forecast",title:"milizeForecast",subtitle:"FinTech",category:"FinTech",imageSrc:"/assets/images/case-study/20.png",imageAlt:"milizeForecast",linkSrc:"/assets/images/case-study/img-12.png"},{id:"junglebet",title:"JUNGLEbet:Betting for Good",subtitle:"eSports",category:"Others",imageSrc:"/assets/images/case-study/6.png",imageAlt:"JUNGLEbet:Betting for Good",linkSrc:"/assets/images/case-study/img-13.png"},{id:"mosi-mosi",title:"Mosi Mosi・外国語学習モバイルアプリ",subtitle:"教育",category:"AI",imageSrc:"/assets/images/case-study/8.png",imageAlt:"Mosi Mosi・外国語学習モバイルアプリ",linkSrc:"/assets/images/case-study/img-14.png"},{id:"volbox",title:"VOLBOX・eSports Platform",subtitle:"eSports",category:"Others",imageSrc:"/assets/images/case-study/10.png",imageAlt:"VOLBOX・eSports Platform",linkSrc:"/assets/images/case-study/img-15.png"},{id:"bloombox",title:"Bloombox・貧困地域教育支援マッチングアプリ",subtitle:"eSports",category:"Others",imageSrc:"/assets/images/case-study/11.png",imageAlt:"Bloombox・貧困地域教育支援マッチングアプリ",linkSrc:"/assets/images/case-study/img-16.png"},{id:"defense-life-simulation",title:"防衛省に向けるライフシミュレーション",subtitle:"FinTech",category:"FinTech",imageSrc:"/assets/images/case-study/17.png",imageAlt:"防衛省に向けるライフシミュレーション",linkSrc:"/assets/images/case-study/img-17.png"},{id:"household-rating",title:"家計診断金融格付けシステム",subtitle:"FinTech",category:"FinTech",imageSrc:"/assets/images/case-study/19.png",imageAlt:"家計診断金融格付けシステム",linkSrc:"/assets/images/case-study/img-18.png"}],Iq=["All","AI","FinTech","Others"];function Nq(){const{t}=De(),[e,n]=y.useState("All"),[s,i]=y.useState(null),r=y.useRef(0),c=y.useMemo(()=>e==="All"?Jx:Jx.filter(v=>v.category===e),[e]),p=()=>window.innerWidth<=768,g=v=>{p()&&(r.current=window.scrollY||window.pageYOffset||document.documentElement.scrollTop),i(v)},_=()=>{i(null)};y.useEffect(()=>(s!==null?(document.body.style.overflow="hidden",p()&&window.scrollTo({top:0,behavior:"instant"})):(document.body.style.overflow="",p()&&r.current!==0&&requestAnimationFrame(()=>{window.scrollTo({top:r.current,behavior:"instant"})})),()=>{document.body.style.overflow=""}),[s]);const f=()=>{s!==null&&i((s+1)%c.length)},h=()=>{s!==null&&i((s-1+c.length)%c.length)};return l.jsxs("div",{className:"case-study",children:[l.jsxs("div",{className:"case-study-hero",children:[l.jsx("h3",{className:"case-study-title",children:t("header.caseStudy")}),l.jsx("p",{className:"case-study-subtitle",children:t("header.caseStudySubtitle")}),l.jsx("div",{className:"case-study-hero-media","aria-hidden":"true",children:l.jsx("img",{src:"/assets/images/case-study/hero.png",alt:"",loading:"eager"})})]}),l.jsxs("div",{className:"case-study-container",children:[l.jsx("div",{className:"case-study-tabs",role:"tablist","aria-label":"Case study categories",children:Iq.map(v=>{const b=v===e;return l.jsx("button",{type:"button",role:"tab","aria-selected":b,className:`case-study-tab ${b?"active":""}`,onClick:()=>n(v),children:t(`caseStudy.categories.${v}`,{defaultValue:v})},v)})}),l.jsx("div",{className:"case-study-grid",role:"list",children:c.map((v,b)=>l.jsxs("article",{className:"case-study-card",role:"listitem",children:[l.jsx("button",{type:"button",className:"case-study-card-link",onClick:()=>g(b),"aria-label":v.title,style:{cursor:"pointer",border:"none",background:"none",padding:0,width:"100%",textAlign:"left"},children:l.jsx("div",{className:"case-study-card-media",children:l.jsx("img",{src:v.imageSrc,alt:v.imageAlt,loading:"lazy"})})}),l.jsxs("div",{className:"case-study-card-body",children:[l.jsx("div",{className:"case-study-card-title",children:v.title}),l.jsx("p",{className:"case-study-card-subtitle",children:v.subt
9805itle})]})]},v.id))})]}),l.jsxs("div",{className:`safety-overlay${s!==null?" visible":""}`,role:"dialog","aria-modal":"true","aria-label":"Case Study Overlay",onClick:_,style:{zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column"},children:[l.jsx("button",{type:"button",className:"safety-overlay-close",onClick:_,style:{zIndex:1001},children:"×"}),s!==null&&l.jsxs(l.Fragment,{children:[l.jsx("button",{onClick:v=>{v.stopPropagation(),h()},className:"carousel-nav-button",style:{background:"#0f172a",color:"#fff",border:"none",borderRadius:"50%",width:"48px",height:"48px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",position:"fixed",left:"20px",top:"50%",transform:"translateY(-50%)",zIndex:1005,fontSize:"24px",transition:"background 0.2s ease"},onMouseEnter:v=>v.currentTarget.style.background="#1e293b",onMouseLeave:v=>v.currentTarget.style.background="#0f172a",children:"❮"}),l.jsx("button",{onClick:v=>{v.stopPropagation(),f()},className:"carousel-nav-button",style:{background:"#0f172a",color:"#fff",border:"none",borderRadius:"50%",width:"48px",height:"48px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",position:"fixed",right:"20px",top:"50%",transform:"translateY(-50%)",zIndex:1005,fontSize:"24px",transition:"background 0.2s ease"},onMouseEnter:v=>v.currentTarget.style.background="#1e293b",onMouseLeave:v=>v.currentTarget.style.background="#0f172a",children:"❯"}),l.jsxs("div",{onClick:v=>v.stopPropagation(),style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",width:"100%",maxWidth:"1000px",height:"100%",position:"relative",padding:"20px"},children:[l.jsx("img",{src:c[s].linkSrc||c[s].imageSrc,alt:c[s].title,style:{maxHeight:"75vh",maxWidth:"100%",objectFit:"contain",borderRadius:"8px",boxShadow:"4px 4px 10px rgba(0,0,0,0.15) ",background:"#fff"}}),l.jsxs("div",{style:{background:"#fff",padding:"15px 24px",borderRadius:"8px",marginTop:"20px",textAlign:"center",minWidth:"300px",maxWidth:"90%",boxShadow:"4px 4px 10px rgba(0,0,0,0.15)"},children:[l.jsx("h3",{style:{margin:0,fontSize:"1.25rem",color:"#333",fontWeight:600},children:c[s].title}),l.jsx("p",{style:{margin:"5px 0 0 0",color:"#666"},children:c[s].subtitle})]})]})]})]})]})}async function TC(){try{const t=await fetch("https://api.reactplus.vn/api/v1/recruitments");if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);const e=t.headers.get("content-type");if(e&&e.includes("application/json")){const n=await t.json();return Array.isArray(n)?n:n.data&&Array.isArray(n.data)?n.data:[]}throw new Error("Invalid response format from server")}catch(t){throw console.error("Failed to fetch recruitments:",t),t}}const Rq=()=>{const t=si(),{t:e}=De(),[n,s]=y.useState([]),[i,r]=y.useState(!1),[c,p]=y.useState(null),[g,_]=y.useState(""),f=[{id:1,level:"Intern",text:e("recruit.steps.step1")},{id:2,level:"Fresher",text:e("recruit.steps.step2")},{id:3,level:"Middle",text:e("recruit.steps.step3")},{id:4,level:"Senior",text:e("recruit.steps.step4")},{id:5,level:"Team Lead",text:e("recruit.steps.step5")},{id:6,level:"PM",text:e("recruit.steps.step6")},{id:7,level:"Expert",text:e("recruit.steps.step7")}];y.useEffect(()=>{(async()=>{r(!0),p(null);try{const S=(await TC()).map(x=>({id:x.id.toString(),title:x.title,location:x.address,type:x.type_recruitment==="full_time"?e("recruit.jobList.fullTime"):e("recruit.jobList.partTime"),slug:x.url_seo,content:x.content}));s(S)}catch(b){p(b instanceof Error?b.message:String(b))}finally{r(!1)}})()},[e]);const h=n.filter(v=>v.title.toLowerCase().includes(g.toLowerCase())||v.location.toLowerCase().includes(g.toLowerCase()));return l.jsxs("div",{className:"recruit-page",children:[l.jsx("section",{className:"recruit-hero",children:l.jsxs("div",{className:"recruit-hero-content",children:[l.jsx("h1",{className:"recruit-hero-title",children:e("recruit.hero.title")}),l.jsx("p",{className:"recruit-hero-subtitle",children:e("recruit.hero.subtitle")}),l.jsx("button",{className:"recruit-filter-pill active",onClick:()=>t("/recruit/apply"),style:{fontWeight:500},children:e("recruit.hero.applyButton")})]})}),l.jsxs("div",{className:"recruit-container",children:[l.jsxs("section",{className:"recruit-jobs-section",children:[l.jsxs("div",{className:"flex flex-col md:flex-row justify-between items-start md:items-end mb-12 gap-6",children:[l.jsx("div",{children:l.jsx("h2",{className:"recruit-section-title",children:e("recruit.jobList.title")})}),l.jsx("div",{className:"recruit-search-box",children:l.jsx("input",{type:"text",placeholder:e("recruit.jobList.searchPlaceholder"),value:g,onChange:v=>_(v.target.value),style:{border:"none",borderBottom:"1px solid #ccc",padding:"12px 0",fontSize:"18px",width:"100%",maxWidth:"400px",minWidth:"280px",outline:"none",fontFamily:"inherit",backgroundColor:"transparent"}})})]}),l.jsx("div",{className:"recruit-jobs-list",children:i?l.jsx("div",{className:"py-20 text-center",children:l.jsx(Y1,{size:"large"})}):c?l.jsx("div",{className:"py-20 text-center text-red-500 font-medium",children:l.jsxs("p",{children:[e("recruit.jobList.error")," ",c]})}):h.length===0?l.jsx("div",{className:"py-20 text-gray-500 font-medium",children:e("recruit.jobList.notFound")}):h.map(v=>{const b=n.filter(x=>x.id!==v.id),S=b.slice(0,3);return l.jsxs(Wt,{to:`/recruit/${v.slug}`,state:{job:v,relatedJobs:S,allJobs:b},className:"recruit-job-row",children:[l.jsxs("div",{className:"recruit-job-info",children:[l.jsx("h3",{children:v.title}),l.jsxs("p",{className:"recruit-job-meta",children:[v.type," · ",v.location]})]}),l.jsx("div",{className:"recruit-job-arrow",children:l.jsx(mN,{})})]},v.id)})})]}),l.jsxs("section",{className:"recruit-extra-section",children:[l.jsx("h2",{className:"recruit-section-title",children:e("recruit.careerPathTitle")}),l.jsx("div",{className:"recruit-steps-grid",children:f.map(v=>l.jsxs("div",{className:"recruit-step-card",children:[l.jsxs("span",{className:"recruit-step-number",children:["Phase 0",v.id]}),l.jsx("h4",{className:"recruit-step-title",children:v.level}),l.jsx("p",{className:"recruit-step-desc",children:v.text})]},v.id))})]}),l.jsxs("section",{className:"recruit-extra-section",children:[l.jsx("h2",{className:"recruit-section-title",children:e("recruit.process.title")}),l.jsxs("div",{className:"recruit-process-row",children:[l.jsxs("div",{className:"recruit-process-item",children:[l.jsx("span",{className:"recruit-process-label",children:"Step 01"}),l.jsx("h4",{className:"recruit-process-title",children:e("recruit.process.step1.title")}),l.jsx("p",{className:"recruit-step-desc",children:e("recruit.process.step1.desc")})]}),l.jsxs("div",{className:"recruit-process-item",children:[l.jsx("span",{className:"recruit-process-label",children:"Step 02"}),l.jsx("h4",{className:"recruit-process-title",children:e("recruit.process.step2.title")}),l.jsx("p",{className:"recruit-step-desc",children:e("recruit.process.step2.desc")})]}),l.jsxs("div",{className:"recruit-process-item",children:[l.jsx("span",{className:"recruit-process-label",children:"Step 03"}),l.jsx("h4",{className:"recruit-process-title",children:e("recruit.process.step3.title")}),l.jsx("p",{className:"recruit-step-desc",children:e("recruit.process.step3.desc")})]})]})]})]})]})};function Tq(){const{slug:t}=k7(),e=si(),n=qa(),{t:s}=De(),i=y.useMemo(()=>n.state?.job,[n.state]),r=y.useMemo(()=>{const x=n.state;return x?.allJobs??x?.relatedJobs??[]},[n.state]),[c,p]=y.useState(null),[g,_]=y.useState([]),[f,h]=y.useState(!1);y.useEffect(()=>{if(i||!t)return;(async()=>{h(!0);try{const A=(await TC()).map(I=>({id:I.id.toString(),title:I.title,location:I.address,type:I.type_recruitment==="full_time"?"Full-time":"Part-time",slug:I.url_seo,content:I.content??""})),E=A.find(I=>I.slug===t)??null;p(E),_(A)}catch{p(null)}finally{h(!1)}})()},[t,i]);const v=i??c,b=r.length>0?r:g,S=y.useMemo(()=>v?b.filter(x=>x.id!==v.id).slice(0,3):b.slice(0,3),[b,v]);return y.useEffect(()=>{window.scrollTo(0,0)},[t]),f?l.jsx("div",{className:"job-detail-page",children:l.jsx("div",{className:"job-detail-container",children:l.jsx("div",{className:"job-detail-error",children:l.jsx("p",{children:s("recruit.loading")})})})}):v?l.jsx("div",{className:"job-detail-page",children:l.jsxs("div",{className:"job-detail-container",children:[l.jsxs("button",{className:"job-detail-back",onClick:()=>e("/recruit"),children:[l.jsx(dN,{})," ",s("jobDetail.back")]}),l.jsxs("div",{className:"job-detail-layout",children:[l.jsxs("div",{className:"job-detail-main",children:[l.jsxs("div",{className:"job-detail-header",children:[l.jsxs("div",{className:"job-detail-meta",children:[l.jsxs("span",{className:"job-detail-location",children:[l.jsx(Xy,{})," ",v.location]}),l.jsxs("span",{className:"job-detail-type",children:[l.jsx(Wy,{})," ",v.type]})]}),l.jsx("h1",{className:"job-detail-title",children:v.title})]}),l.jsx("div",{className:"job-detail-content",children:v.content?l.jsx("div",{dangerouslySetInnerHTML:{__html:v.content}}):l.jsx("p",{children:s("jobDetail.noContent")})})]}),l.jsxs("aside",{className:"job-detail-sidebar",children:[l.jsx("button",{className:"job-apply-btn-sidebar",type:"button",onClick:()=>e("/recruit/apply",{state:{job:v}}),children:s("jobDetail.applyButton")}),S.length>0&&l.jsxs("div",{className:"job-detail-related",children:[l.jsx("h3",{className:"job-detail-related-title",children:s("jobDetail.relatedJobs")}),l.jsx("ul",{className:"job-detail-related-list",children:S.map(x=>l.jsx("li",{className:"job-detail-related-item",children:l.jsxs(Wt,{to:`/recruit/${x.slug}`,state:{job:x,allJobs:b},className:"job-detail-related-link",children:[l.jsx("div",{className:"job-detail-related-job-title",children:x.title}),l.jsxs("div",{className:"job-detail-related-meta",children:[l.jsxs("span",{className:"job-detail-related-location",children:[l.jsx(Xy,{})," ",x.location]}),l.jsxs("span",{className:"job-detail-related-type",children:[l.jsx(Wy,{})," ",x.type]})]})]})},x.id))})]})]})]})]})}):l.jsx("div",{className:"job-detail-page",children:l.jsx("div",{className:"job-detail-container",children:l.jsxs("div",{className:"job-detail-error",children:[l.jsx("h2",{children:s("jobDetail.notFound")}),l.jsx("p",{children:s("jobDetail.notFoundMessage")}),l.jsx(Wt,{to:"/recruit",children:s("jobDetail.backToRecruit")})]})})})}const jq=Array.from({length:31},(t,e)=>String(e+1).padStart(2,"0")),Pq=Array.from({length:60},(t,e)=>String(new Date().getFullYear()-e)),Mq=Array.from({length:12},(t,e)=>String(e+1).padStart(2,"0"));function Lq(t){return new DOMParser().parseFromString(t,"text/html").body.textContent||""}function Oq(){const t=si(),e=qa(),{t:n}=De(),i=e.state?.job,[r,c]=y.useState({name:"",email:"",day:"",month:"",year:"",phone:"",file:null,link:"",content:""}),[p,g]=y.useState({}),[_,f]=y.useState(!1),[h,v]=y.useState(!1),[b,S]=y.useState(null);y.useEffect(()=>{h&&window.scrollTo({top:0,behavior:"smooth"})},[h]);const x=()=>{const A={};if(r.name.trim()?r.name.trim().length<2?A.name="recruit.form.errors.nameTooShort":r.name.trim().length>100&&(A.name="recruit.form.errors.nameTooLong"):A.name="recruit.form.errors.required",r.email.trim()?r.email.trim().length<5?A.email="recruit.form.errors.emailTooShort":r.email.trim().length>100?A.email="recruit.form.errors.emailTooLong":/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r.email)||(A.email="recruit.form.errors.emailInvalid"):A.email="recruit.form.errors.required",!r.phone.trim())A.phone="recruit.form.errors.required";else{const E=r.phone.replace(/[\s\-().]+/g,"");/^(\+?\d+)$/.test(E)?E.length<10?A.phone="recruit.form.errors.phoneTooShort":E.length>12&&(A.phone="recruit.form.errors.phoneTooLong"):A.phone="recruit.form.errors.phoneInvalid"}return r.file?r.file.size>10485760&&(A.file="recruit.form.errors.fileTooLarge"):A.file="recruit.form.errors.required",r.link.trim()&&(r.link.trim().length<5?A.link="recruit.form.errors.linkTooShort":r.link.trim().length>255?A.link="recruit.form.errors.linkTooLong":!/^https?:\/\/.+/i.test(r.link.trim())&&!r.link.trim().startsWith("www.")&&(A.link="recruit.form.errors.linkInvalid")),r.content.trim().length>0&&r.content.trim().length<10?A.content="recruit.form.errors.contentTooShort":r.content.trim().length>2e3&&(A.content="recruit.form.errors.contentTooLong"),g(A),Object.keys(A).length===0},w=async A=>
9805{if(A.preventDefault(),S(null),!!x())try{f(!0);const E=r.day&&r.month&&r.year?`${r.day}/${r.month}/${r.year}`:"",I=new FormData;I.append("name",r.name),I.append("email",r.email),I.append("birthday",E),I.append("day",r.day),I.append("month",r.month),I.append("year",r.year),I.append("phone",r.phone),I.append("content",r.content),I.append("link",r.link),I.append("title",i?.title||"ứng viên đăng ký tiềm năng"),r.file&&I.append("file",r.file);const j=await fetch("https://api.reactplus.vn/api/v1/candidates",{method:"POST",body:I});if(!j.ok)throw new Error(`HTTP error! status: ${j.status}`);const T=await j.json();try{await yq({name:T.name,birthday:T.birthday,email:T.email,phone:T.phone,file_url:T.file?.url||"",content:T.content,link:T.link,title:Lq(T.title||""),subject_title:(T.title||"").replace(/\//g,"-")})}catch(P){console.error("[EmailJS] Failed to send notification:",P)}v(!0)}catch(E){console.error(E),S(n("recruit.form.errors.submitError"))}finally{f(!1)}};return h?l.jsx("div",{className:"recruit-apply-page",children:l.jsx("div",{className:"recruit-apply-container",children:l.jsxs("div",{className:"recruit-apply-box-form",children:[l.jsx("h2",{className:"recruit-apply-title-page",children:n("recruit.form.submitSuccessTitle")}),l.jsx("p",{className:"recruit-apply-thankyou-text",children:n("recruit.form.submitSuccessMessage")}),l.jsx("div",{className:"recruit-apply-actions",children:l.jsx("button",{type:"button",className:"recruit-apply-btn-primary",onClick:()=>t("/recruit"),children:n("recruit.form.backToRecruit")})})]})})}):l.jsx("div",{className:"recruit-apply-page",children:l.jsxs("div",{className:"recruit-apply-container",children:[l.jsxs(Wt,{to:"/recruit",style:{textDecoration:"none",color:"#666",fontSize:"14px",display:"block",marginBottom:"24px"},children:["← ",n("recruit.form.back")]}),l.jsxs("div",{className:"recruit-apply-box-form",children:[l.jsx("h2",{className:"recruit-apply-title-page",children:n("recruit.applyTitle",{jobTitle:i?.title||n("recruit.defaultJob")})}),l.jsxs("form",{onSubmit:w,encType:"multipart/form-data",className:"recruit-apply-form",children:[l.jsxs("div",{className:"recruit-apply-section",children:[l.jsx("h4",{style:{fontSize:"20px",fontWeight:600,marginBottom:"32px",borderBottom:"1px solid #f0f0f0",paddingBottom:"16px"},children:n("recruit.form.personalInfo")}),l.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"32px"},children:[l.jsxs("div",{className:"recruit-apply-field",children:[l.jsx("label",{children:n("recruit.form.fullName")}),l.jsx("input",{type:"text",value:r.name,onChange:A=>c({...r,name:A.target.value}),className:p.name?"recruit-apply-input-error":"",placeholder:n("recruit.form.fullNamePlaceholder")}),p.name&&l.jsx("small",{className:"recruit-apply-text-error",children:n(p.name)})]}),l.jsxs("div",{className:"recruit-apply-row recruit-apply-row-half-grid",children:[l.jsxs("div",{className:"recruit-apply-field",children:[l.jsx("label",{children:n("recruit.form.email")}),l.jsx("input",{type:"text",value:r.email,onChange:A=>c({...r,email:A.target.value}),className:p.email?"recruit-apply-input-error":"",placeholder:n("recruit.form.emailPlaceholder")}),p.email&&l.jsx("small",{className:"recruit-apply-text-error",children:n(p.email)})]}),l.jsxs("div",{className:"recruit-apply-field",children:[l.jsx("label",{children:n("recruit.form.phone")}),l.jsx("input",{type:"tel",value:r.phone,onChange:A=>c({...r,phone:A.target.value}),className:p.phone?"recruit-apply-input-error":"",placeholder:n("recruit.form.phonePlaceholder")}),p.phone&&l.jsx("small",{className:"recruit-apply-text-error",children:n(p.phone)})]})]}),l.jsxs("div",{className:"recruit-apply-field",children:[l.jsx("label",{children:n("recruit.form.dob")}),l.jsx("div",{className:"recruit-apply-row-birthday",children:l.jsxs("div",{className:"recruit-apply-birthday-selects",children:[l.jsxs("select",{value:r.day,onChange:A=>c({...r,day:A.target.value}),children:[l.jsx("option",{value:"",children:n("recruit.form.day")}),jq.map(A=>l.jsx("option",{value:A,children:A},A))]}),l.jsxs("select",{value:r.month,onChange:A=>c({...r,month:A.target.value}),children:[l.jsx("option",{value:"",children:n("recruit.form.month")}),Mq.map(A=>l.jsx("option",{value:A,children:A},A))]}),l.jsxs("select",{value:r.year,onChange:A=>c({...r,year:A.target.value}),children:[l.jsx("option",{value:"",children:n("recruit.form.year")}),Pq.map(A=>l.jsx("option",{value:A,children:A},A))]})]})})]})]})]}),l.jsxs("div",{className:"recruit-apply-section",children:[l.jsx("h4",{style:{fontSize:"20px",fontWeight:600,marginBottom:"32px",borderBottom:"1px solid #f0f
98050f0",paddingBottom:"16px"},children:n("recruit.form.resume")}),l.jsxs("div",{className:"recruit-apply-field",children:[l.jsxs("div",{className:p.file?"recruit-apply-cv-box recruit-apply-cv-box-error":"recruit-apply-cv-box",children:[l.jsxs("div",{className:"recruit-apply-cv-texts",children:[l.jsx("div",{className:"recruit-apply-cv-label",children:n("recruit.form.uploadTitle")}),l.jsx("div",{className:"recruit-apply-cv-helper",children:r.file?.name?r.file.name:n("recruit.form.uploadHelper")})]}),l.jsx("div",{className:"recruit-apply-cv-upload",children:l.jsxs("button",{type:"button",className:"recruit-apply-btn-outline",children:[l.jsx("span",{className:"recruit-apply-btn-outline-text",children:n("recruit.form.selectFile")}),l.jsx("input",{type:"file",accept:".pdf,.docx,image/png,image/jpg,image/jpeg",onChange:A=>c({...r,file:A.target.files?.[0]||null})})]})})]}),p.file&&l.jsx("small",{className:"recruit-apply-text-error",children:n(p.file)})]})]}),l.jsxs("div",{className:"recruit-apply-section",children:[l.jsx("h4",{style:{fontSize:"20px",fontWeight:600,marginBottom:"32px",borderBottom:"1px solid #f0f0f0",paddingBottom:"16px"},children:n("recruit.form.linksTitle")}),l.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"32px"},children:[l.jsxs("div",{className:"recruit-apply-field",children:[l.jsx("label",{children:n("recruit.form.portfolio")}),l.jsx("input",{type:"text",value:r.link,onChange:A=>c({...r,link:A.target.value}),className:p.link?"recruit-apply-input-error":"",placeholder:n("recruit.form.portfolioPlaceholder")}),p.link&&l.jsx("small",{className:"recruit-apply-text-error",children:n(p.link)})]}),l.jsxs("div",{className:"recruit-apply-field",children:[l.jsx("label",{children:n("recruit.form.additionalInfo")}),l.jsx("textarea",{rows:4,value:r.content,onChange:A=>c({...r,content:A.target.value}),className:p.content?"recruit-apply-input-error":"",placeholder:n("recruit.form.additionalInfoPlaceholder")}),p.content&&l.jsx("small",{className:"recruit-apply-text-error",children:n(p.content)})]})]})]}),l.jsxs("div",{className:"recruit-apply-actions",style:{marginTop:"20px",borderTop:"1px solid #f0f0f0",paddingTop:"40px"},children:[l.jsx("button",{type:"submit",className:"recruit-apply-btn-primary",disabled:_,children:n(_?"recruit.form.submitting":"recruit.form.submit")}),l.jsx("button",{type:"button",className:"recruit-apply-btn-secondary",onClick:()=>t("/recruit"),children:n("recruit.form.cancel")})]}),b&&l.jsx("p",{className:"recruit-apply-text-error",style:{marginTop:"16px",textAlign:"center"},children:b})]})]})]})})}function Dq(){const{t}=De(),e="about.companyCulture",[n]=y.useState(0),[s]=y.useState(0),[i,r]=y.useState(0),[c,p]=y.useState(!1),g=y.useRef(null),_=A=>{const E=t(A,{returnObjects:!0});return Array.isArray(E)?E:[]},f=_(`${e}.villages`),h=_(`${e}.offices`),v=_(`${e}.health`),b=_(`${e}.festival`),S=y.useCallback(()=>{f.length!==0&&r(A=>(A+1)%f.length)},[f.length]),x=y.useCallback(()=>{f.length!==0&&r(A=>(A-1+f.length)%f.length)},[f.length]);y.useEffect(()=>(!c&&f.length>0&&(g.current=setInterval(S,5e3)),()=>{g.current&&clearInterval(g.current)}),[c,S,f.length]);const w=A=>typeof A=="string"?A.replace(/^\/assets\//,"/"):void 0;return l.jsx("div",{className:"van-hoa-page",children:l.jsxs("div",{className:"main",children:[l.jsx("div",{className:"culture-container",children:l.jsxs("div",{className:"backgroudReact",children:[l.jsx("div",{className:"box-village-react",children:l.jsxs("div",{className:"village-react-top",children:[l.jsx("h3",{className:"village-title",children:t(`${e}.pageCulture.title`)}),l.jsx("div",{className:"village-react-text",dangerouslySetInnerHTML:{__html:t(`${e}.pageCulture.description`)}})]})}),l.jsxs("div",{className:"signals-section",onMouseEnter:()=>p(!0),onMouseLeave:()=>p(!1),children:[l.jsx("div",{className:"signals-container",children:f.map((A,E)=>{let I="hidden";return E===i?I="active":E===(i+1)%f.length?I="next":E===(i+2)%f.length&&(I="back"),l.jsxs("div",{className:`signal-card ${I}`,children:[l.jsx("div",{className:"card-image",style:{backgroundImage:`url(${w(A.image?.url)})`}}),l.jsx("div",{className:"card-gradient"}),l.jsx("div",{className:"card-overlay-bottom"}),l.jsxs("div",{className:"card-content",children:[l.jsx("h4",{className:"card-title",children:A.title}),l.jsx("p",{className:"card-description",children:A.description})]})]},A.id||E)})}),l.jsxs("div",{className:"signals-controls",children:[l.jsx("button",{className:"signal-btn",onClick:x,"aria-label":"Previous image",children:l.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:l.jsx("path",{d:"M19 12H5M12 19l-7-7 7-7"})})}),l.jsx("div",{className:"signal-dots",children:f.map((A,E)=>l.jsx("div",{className:`signal-dot ${E===i?"active":""}`,onClick:()=>r(E)},E))}),l.jsx("button",{className:"signal-btn",onClick:S,"aria-label":"Next image",children:l.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:l.jsx("path",{d:"M5 12h14m-7 7l7-7-7-7"})})})]})]}),l.jsx("div",{className:"distance"}),l.jsx("h3",{className:"Office-TitleContent",children:t(`${e}.pageCulture.subTitleOffice`)}),l.jsx("p",{className:"office-description",children:t(`${e}.pageCulture.officeDescription`)}),l.jsxs("div",{className:"Office-Images",children:[l.jsxs("div",{className:"Office-Images-Left",children:[h[2]?.image?.url&&l.jsxs("div",{className:"Office-Image-Item-Left",children:[l.jsx("img",{src:w(h[2].image.url),alt:"Office 3"}),h[2]?.title&&l.jsx("div",{className:"image-caption",children:h[2].title})]}),h[3]?.image?.url&&l.jsxs("div",{className:"Office-Image-Item-Left",children:[l.jsx("img",{src:w(h[3].image.url),alt:"Office 4"}),h[3]?.title&&l.jsx("div",{className:"image-caption",children:h[3].title})]})]}),h[4]?.image?.url&&l.jsxs("div",{className:"Office-Images-Right",children:[l.jsx("img",{src:w(h[4].image.url),alt:"Office 5"}),h[4]?.title&&l.jsx("div",{className:"image-caption",children:h[4].title})]})]})]})}),l.jsx("div",{className:"Office-Content",children:l.jsx("div",{className:"culture-container",children:l.jsxs("div",{className:"culture-modern-grid",children:[l.jsxs("div",{className:"culture-card",children:[l.jsxs("div",{className:"culture-card-text",children:[l.jsx("h3",{className:"culture-card-title",children:t(`${e}.pageCulture.titleHealth`)}),l.jsx("div",{className:"culture-card-desc",dangerouslySetInnerHTML:{__html:t(`${e}.pageCulture.descriptionHealth`)}})]}),l.jsx("div",{className:"culture-card-img-wrap",children:v.length>0&&v[n]&&l.jsx("img",{src:w(v[n].image?.url),className:"culture-card-img womans-football",alt:"Health and Sport"},`health-${n}`)})]}),l.jsxs("div",{className:"culture-card",children:[l.jsxs("div",{className:"culture-card-text",children:[l.jsx("h3",{className:"culture-card-title",children:t(`${e}.pageCulture.titleFestival`)}),l.jsx("div",{className:"culture-card-desc",dangerouslySetInnerHTML:{__html:t(`${e}.pageCulture.descriptionFestival`)}})]}),l.jsx("div",{className:"culture-card-img-wrap",children:b.length>0&&b[s]&&l.jsx("img",{src:w(b[s].image?.url),className:"culture-card-img",alt:"Fe
9805stival Culture"},`festival-${s}`)})]}),l.jsxs("div",{className:"culture-card",children:[l.jsxs("div",{className:"culture-card-text",children:[l.jsx("h3",{className:"culture-card-title",children:t(`${e}.pageCulture.titleKaraoke`)}),l.jsx("div",{className:"culture-card-desc",dangerouslySetInnerHTML:{__html:t(`${e}.pageCulture.descriptionKaraoke`)}})]}),l.jsx("div",{className:"culture-card-img-wrap",children:l.jsx("img",{src:"/images/culture/KaraokeLegend.png",className:"culture-card-img",alt:"Karaoke Legend"})})]}),l.jsxs("div",{className:"culture-card",children:[l.jsxs("div",{className:"culture-card-text",children:[l.jsx("h3",{className:"culture-card-title",children:t(`${e}.pageCulture.titleMatxa`)}),l.jsx("div",{className:"culture-card-desc",dangerouslySetInnerHTML:{__html:t(`${e}.pageCulture.descriptionMatxa`)}})]}),l.jsx("div",{className:"culture-card-img-wrap",children:l.jsx("img",{src:"/images/culture/matxa.jpeg",className:"culture-card-img",alt:"Chăm sóc sức khỏe"})})]}),l.jsxs("div",{className:"culture-card",children:[l.jsxs("div",{className:"culture-card-text",children:[l.jsx("h3",{className:"culture-card-title",children:t(`${e}.pageCulture.titleWomanDay`)}),l.jsx("div",{className:"culture-card-desc",dangerouslySetInnerHTML:{__html:t(`${e}.pageCulture.descriptionWomanDay`)}})]}),l.jsx("div",{className:"culture-card-img-wrap",children:l.jsx("img",{src:"/images/culture/Scented_candles.jpeg",className:"culture-card-img",alt:"Scented candles"})})]}),l.jsxs("div",{className:"culture-card",children:[l.jsxs("div",{className:"culture-card-text",children:[l.jsx("h3",{className:"culture-card-title",children:t(`${e}.pageCulture.titleEsport`)}),l.jsx("div",{className:"culture-card-desc",dangerouslySetInnerHTML:{__html:t(`${e}.pageCulture.descriptionEsport`)}})]}),l.jsx("div",{className:"culture-card-img-wrap",children:l.jsx("img",{src:"/images/culture/EsportStreetFighter.jpg",className:"culture-card-img",style:{objectPosition:"top"},alt:"Esport Street Fighter"})})]})]})})}),l.jsx("div",{className:"mr-70"}),l.jsx("div",{className:"culture-container",children:l.jsx("div",{className:"join-now-banner",children:l.jsxs("div",{className:"join-now-content",children:[l.jsx("h2",{children:t(`${e}.pageCulture.titleBanner`)}),l.jsx(Wt,{to:t(`${e}.pageCulture.linkUrl`),className:"join-now-btn",children:t(`${e}.pageCulture.textLink`)})]})})}),l.jsx("div",{className:"mr-110"})]})})}function zq(){const{t}=De(),e="appos",n=r=>t(`${e}.${r}`),s=[{title:n("principles.ai_first.title"),description:n("principles.ai_first.description")},{title:n("principles.metadata_driven.title"),description:n("principles.metadata_driven.description")},{title:n("principles.human_in_loop.title"),description:n("principles.human_in_loop.description")}],i=[{number:"01",title:n("steps.step1.title"),description:n("steps.step1.description")},{number:"02",title:n("steps.step2.title"),description:n("steps.step2.description")},{number:"03",title:n("steps.step3.title"),description:n("steps.step3.description")},{number:"04",title:n("steps.step4.title"),description:n("steps.step4.description")},{number:"05",title:n("steps.step5.title"),description:n("steps.step5.description")},{number:"06",title:n("steps.step6.title"),description:n("steps.step6.description")}];return l.jsxs("div",{className:"product-page appos-page",children:[l.jsx("section",{className:"product-hero-section appos-hero",style:{borderBottom:"none"},children:l.jsxs("div",{className:"product-hero-container",children:[l.jsx("div",{className:"product-hero-badge",children:n("hero.badge")}),l.jsx("h1",{className:"product-hero-title appos-hero-title",children:n("hero.title")}),l.jsx("p",{className:"product-hero-description",dangerouslySetInnerHTML:{__html:n("hero.description")}})]})}),l.jsx("section",{className:"appos-flow-section",children:l.jsx("div",{className:"product-container",children:l.jsxs("div",{className:"appos-flow-visual",children:[l.jsxs("div",{className:"appos-flow-card appos-flow-idea",children:[l.jsx("div",{className:"appos-flow-card-label",children:n("flow.idea_label")}),l.jsx("div",{className:"appos-flow-card-example",children:n("flow.idea_example")})]}),l.jsxs("div",{className:"appos-flow-arrow",children:[l.jsxs("div",{className:"appos-flow-engine",children:[l.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:l.jsx("path",{d:"M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"})}),l.jsx("span",{children:n("flow.engine")})]}),l.jsx("svg",{className:"appos-arrow-icon",width:"40",height:"40",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:l.jsx("path",{d:"M5 12h14M12 5l7 7-7 7"})})]}),l.jsxs("div",{className:"appos-flow-card appos-flow-app",children:[l.jsx("div",{className:"appos-flow-card-label",children:n("flow.app_label")}),l.jsx("div",{className:"appos-flow-card-features",children:n("flow.app_features").split(/[··・]/).map((r,c)=>l.jsx("span",{className:"appos-feature-tag",children:r.trim()},c))})]})]})})}
9805),l.jsx("section",{className:"product-section-base appos-principles-section",children:l.jsxs("div",{className:"product-container",children:[l.jsxs("div",{className:"product-section-header",children:[l.jsx("div",{className:"product-section-badge",children:n("principles.badge")}),l.jsx("h2",{className:"product-section-title",children:n("principles.title")}),l.jsx("p",{className:"product-section-description",children:n("principles.subtitle")})]}),l.jsxs("div",{className:"appos-principles-content",children:[l.jsx("div",{className:"appos-principles-list",children:s.map((r,c)=>l.jsxs("div",{className:"appos-principle-card",children:[l.jsx("div",{className:"appos-principle-number",children:String(c+1).padStart(2,"0")}),l.jsx("h3",{className:"appos-principle-title",children:r.title}),l.jsx("p",{className:"appos-principle-description",children:r.description})]},c))}),l.jsx("div",{className:"appos-principles-image",children:l.jsx("img",{src:n("principles.image"),alt:"AppOS Preview"})})]})]})}),l.jsx("section",{className:"product-section-base product-section-alt appos-steps-section",children:l.jsxs("div",{className:"product-container",children:[l.jsxs("div",{className:"product-section-header",children:[l.jsx("div",{className:"product-section-badge",children:n("steps.badge")}),l.jsx("h2",{className:"product-section-title",children:n("steps.title")}),l.jsx("p",{className:"product-section-description",children:n("steps.subtitle")})]}),l.jsx("div",{className:"appos-steps-grid",children:i.map(r=>l.jsxs("div",{className:"appos-step-card",children:[l.jsxs("div",{className:"appos-step-badge",children:["STEP ",r.number.replace(/^0/,"")]}),l.jsx("h3",{className:"appos-step-title",children:r.title}),l.jsx("p",{className:"appos-step-description",children:r.description})]},r.number))})]})})]})}function Bq(){const{t}=De(),e="cvagent",n=c=>t(`${e}.${c}`),s=[{number:"01",title:n("how.step1.title"),description:n("how.step1.description")},{number:"02",title:n("how.step2.title"),description:n("how.step2.description")},{number:"03",title:n("how.step3.title"),description:n("how.step3.description")}],i=[{title:n("values.anonymity.title"),headline:n("values.anonymity.headline"),description:n("values.anonymity.description")},{title:n("values.ai_agent.title"),headline:n("values.ai_agent.headline"),description:n("values.ai_agent.description")},{title:n("values.advisor.title"),headline:n("values.advisor.headline"),description:n("values.advisor.description")},{title:n("values.bonus.title"),headline:n("values.bonus.headline"),description:n("values.bonus.description")}],r=[{badge:n("why.moat1.badge"),title:n("why.moat1.title"),description:n("why.moat1.description")},{badge:n("why.moat2.badge"),title:n("why.moat2.title"),description:n("why.moat2.description")},{badge:n("why.moat3.badge"),title:n("why.moat3.title"),description:n("why.moat3.description")}];return l.jsxs("div",{className:"product-page cvagent-page",children:[l.jsx("section",{className:"product-hero-section cvagent-hero",style:{borderBottom:"none"},children:l.jsxs("div",{className:"product-hero-container",children:[l.jsx("div",{className:"product-hero-badge",children:n("hero.badge")}),l.jsx("h1",{className:"product-hero-title cvagent-hero-title",children:n("hero.title")}),l.jsx("p",{className:"cvagent-hero-tagline",children:n("hero.tagline")}),l.jsx("p",{className:"product-hero-description",dangerouslySetInnerHTML:{__html:n("hero.description")}})]})}),l.jsx("section",{className:"cvagent-how-section",children:l.jsxs("div",{className:"product-container",children:[l.jsxs("div",{className:"product-section-header",children:[l.jsx("div",{className:"product-section-badge",children:n("how.badge")}),l.jsx("h2",{className:"product-section-title",children:n("how.title")})]}),l.jsx("div",{className:"cvagent-how-grid",children:s.map(c=>l.jsxs("div",{className:"cvagent-how-card",children:[l.jsx("div",{className:"cvagent-how-number",children:c.number}),l.jsx("h3",{className:"cvagent-how-title",children:c.title}),l.jsx("p",{className:"cvagent-how-description",dangerouslySetInnerHTML:{__html:c.description}})]},c.number))})]})}),l.jsx("section",{className:"product-section-base cvagent-values-section",children:l.jsxs("div",{className:"product-container",children:[l.jsxs("div",{className:"product-section-header",children:[l.jsx("div",{className:"product-section-badge",children:n("values.badge")}),l.jsx("h2",{className:"product-section-title",children:n("values.title")})]}),l.jsx("div",{className:"cvagent-values-grid",children:i.map((c,p)=>l.jsxs("div",{className:"cvagent-value-card",children:[l.jsxs("div",{className:"cvagent-value-header",children:[l.jsx("span",{className:"cvagent-value-index",children:String(p+1).padStart(2,"0")}),l.jsx("h3",{className:"cvagent-value-title",children:c.title})]}),l.jsx("p",{className:"cvagent-value-headline",children:c.headline}),l.jsx("p",{className:"cvagent-value-description",children:c.description})]},p))})]})}),l.jsx("section",{className:"cvagent-mission-section",children:l.jsx("div",{className:"product-container",children:l.jsxs("div",{className:"cvagent-mission-content",children:[l.jsx("div",{className:"product-section-badge",children:n("mission.badge")}),l.jsx("h2",{className:"cvagent-mission-title",children:n("mission.title")}),l.jsx("p",{className:"cvagent-mission-subtitle",children:n("mission.subtitle")}),l.jsxs("div",{className:"cvagent-mission-pillars",children:[l.jsxs("div",{className:"cvagent-mission-pillar",children:[l.jsx("div",{className:"cvagent-pillar-icon",children:l.jsxs("svg",{width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[l.jsx("path",{d:"M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z"}),l.jsx("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1Z"})]})}),l.jsx("h3",{children:n("mission.pillar1.title")}),l.jsx("p",{children:n("mission.pillar1.description")})]}),l.jsx("div",{className:"cvagent-mission-arrow",children:"→"}),l.jsxs("div",{className:"cvagent-mission-pillar",children:[l.jsx("div",{className:"cvagent-pillar-icon",children:l.jsxs("svg",{width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[l.jsx("path",{d:"M6 9H4.5a2.5 2.5 0 0 1 0-5h1a2 2 0 0 1 2 2v1M18 9h1.5a2.5 2.5 0 0 0 0-5h-1a2 2 0 0 0-2 2v1"}),l.jsx("path",{d:"M4 22h16"}),l.jsx("path",{d:"M10 22V8a2 2 0 1 0-4 0h0"}),l.jsx("path",{d:"M14 22V8a2 2 0 1 1 4 0h0"}),l.jsx("path",{d:"M8 6h8"})]})}),l.jsx("h3",{children:n("mission.pillar2.title")}),l.jsx("p",{children:n("mission.pillar2.description")})]})]})]})})}),l.jsx("section",{className:"product-section-base cvagent-why-section",children:l.jsxs("div",{className:"product-container",children:[l.jsxs("div",{className:"product-section-header",children:[l.jsx("div",{className:"product-section-badge",children:n("why.badge")}),l.jsx("h2",{className:"product-section-title",children:n("why.title")}),l.jsx("p",{className:"product-section-description",dangerouslySetInnerHTML:{__html:n("why.subtitle")}})]}),l.jsx("div",{className:"cvagent-moats-grid",children:r.map((c,p)=>l.jsxs("div",{className:"cvagent-moat-card",children:[l.jsx("div",{className:"cvagent-moat-badge",children:c.badge}),l.jsx("h3",{className:"cvagent-moat-title",children:c.title}),l.jsx("p",{className:"cvagent-moat-description",children:c.description})]},p))})]})})]})}function $q(){const{t}=De();return l.jsxs("article",{className:"cv-page prose mx-auto",children:[l.jsxs("header",{className:"cv-hero cv-sol-hero",children:[l.jsx("div",{className:"cv-grid-bg","aria-hidden":"true"}),l.jsxs("div",{className:"cv-page-wrap cv-hero-inner",children:[l.jsx("p",{className:"cv-section-label",children:t("core.coreValueSolutions.hero.label")}),l.jsxs("h1",{children:[t("core.coreValueSolutions.hero.title1"),l.jsx("br",{}),l.jsx("span",{className:"cv-shimmer-text",children:t("core.coreValueSolutions.hero.title2")})]}),l.jsx("p",{className:"cv-hero-desc",children:t("core.coreValueSolutions.hero.desc")})]})]}),l.jsx("hr",{className:"cv-divider cv-page-wrap"}),l.jsx("section",{className:"cv-section",style:{paddingTop:"clamp(60px, 4vh, 60px)"},children:l.jsx("div",{className:"cv-page-wrap",children:l.jsx("div",{className:"cv-sol-detail",children:Array.from({length:10},(e,n)=>
9805{const s=t(`core.coreValueSolutions.catalog.items.${n}.scope`,{returnObjects:!0}),i=t(`core.coreValueSolutions.catalog.items.${n}.fit`,{defaultValue:""});return l.jsxs("div",{className:"cv-sol-item",children:[l.jsx("div",{className:"cv-sol-num",children:String(n+1).padStart(2,"0")}),l.jsxs("div",{className:"cv-sol-main",children:[l.jsx("h3",{children:t(`core.coreValueSolutions.catalog.items.${n}.title`)}),l.jsx("p",{children:t(`core.coreValueSolutions.catalog.items.${n}.desc`)}),Array.isArray(s)&&s.length>0&&l.jsxs("div",{className:"cv-sol-scope",children:[l.jsx("div",{className:"cv-sol-scope-label",children:t("core.coreValueSolutions.catalog.scopeLabel")}),l.jsx("ul",{className:"cv-sol-scope-list",children:s.map((r,c)=>l.jsx("li",{children:r},c))})]}),i&&l.jsxs("p",{className:"cv-sol-fit",children:[l.jsx("strong",{children:t("core.coreValueSolutions.catalog.fitLabel")})," ",i]})]})]},n)})})})}),l.jsx("hr",{className:"cv-divider cv-page-wrap"}),l.jsx("section",{className:"cv-section",style:{paddingTop:"clamp(60px, 4vh, 60px)"},children:l.jsxs("div",{className:"cv-page-wrap",children:[l.jsxs("div",{className:"cv-section-header",children:[l.jsx("p",{className:"cv-section-label",children:t("core.coreValueSolutions.process.label")}),l.jsx("h2",{className:"cv-section-title",children:t("core.coreValueSolutions.process.title")}),l.jsx("p",{className:"cv-section-desc",style:{marginBottom:0},children:t("core.coreValueSolutions.process.desc")})]}),l.jsx("div",{className:"cv-process-row",children:Array.from({length:4},(e,n)=>{const s=t(`core.coreValueSolutions.process.items.${n}.gate`,{defaultValue:""});return l.jsxs("div",{className:"cv-process-cell",children:[l.jsxs("div",{className:"cv-process-header",children:[l.jsx("div",{className:"cv-process-num",children:String(n+1).padStart(2,"0")}),l.jsx("h3",{children:t(`core.coreValueSolutions.process.items.${n}.title`)})]}),l.jsx("p",{className:"cv-process-desc",children:t(`core.coreValueSolutions.process.items.${n}.desc`)}),s?l.jsxs(l.Fragment,{children:[l.jsx("div",{className:"cv-process-gate-label",children:"Quality gate"}),l.jsx("p",{className:"cv-process-gate-text",children:s})]}):l.jsxs(l.Fragment,{children:[l.jsx("div",{className:"cv-process-gate-label",style:{visibility:"hidden"},children:"Quality gate"}),l.jsx("p",{className:"cv-process-gate-text",style:{visibility:"hidden"},children:" "})]})]},n)})})]})}),l.jsx("hr",{className:"cv-divider cv-page-wrap"}),l.jsx("section",{className:"cv-section",style:{paddingTop:"clamp(60px, 4vh, 60px)"},children:l.jsxs("div",{className:"cv-page-wrap",children:[l.jsxs("div",{className:"cv-section-header",children:[l.jsx("p",{className:"cv-section-label",children:t("core.coreValueSolutions.engagement.label")}),l.jsx("h2",{className:"cv-section-title",children:t("core.coreValueSolutions.engagement.title")}),l.jsx("p",{className:"cv-section-desc",style:{marginBottom:0},children:t("core.coreValueSolutions.engagement.desc")})]}),l.jsx("div",{className:"cv-engage-strip",children:["A","B","C","D"].map((e,n)=>l.jsxs("div",{className:"cv-engage-item",children:[l.jsx("div",{className:"cv-engage-tag",children:e}),l.jsx("h4",{children:t(`core.coreValueSolutions.engagement.items.${n}.title`)}),l.jsx("p",{children:t(`core.coreValueSolutions.engagement.items.${n}.desc`)})]},n))})]})}),l.jsx("hr",{className:"cv-divider cv-page-wrap"}),l.jsx("section",{className:"cv-section cv-cta-section",style:{paddingTop:"clamp(60px, 4vh, 60px)"},children:l.jsxs("div",{className:"cv-page-wrap cv-cta-inner",children:[l.jsx("div",{className:"cv-cta-title",children:t("core.coreValueSolutions.cta.title")}),l.jsx("p",{className:"cv-cta-desc",children:t("core.coreValueSolutions.cta.desc")}),l.jsxs("div",{className:"cv-hero-actions",children:[l.jsx(Wt,{className:"cv-btn-primary",to:"/contact",children:t("core.coreValueSolutions.cta.btnPrimary")}),l.jsx(Wt,{className:"cv-btn-outline",to:"/core-values/fintech",children:t("core.coreValueSolutions.cta.btnSecondary")})]})]})})]})}function Gq(){const{t}=De(),e="core.aiCapabilities",n=r=>t(`${e}.${r}`),s=r=>t(`${e}.${r}`,{returnObjects:!0})||[],i=t(`${e}.team.roles`,{returnObjects:!0})||[];return l.jsxs("article",{className:"cv-page prose mx-auto",children:[l.jsxs("header",{className:"cv-hero cv-tech-hero",children:[l.jsx("div",{className:"cv-grid-bg","aria-hidden":"true"}),l.jsxs("div",{className:"cv-page-wrap cv-hero-inner",children:[l.jsx("p",{className:"cv-section-label",children:n("hero.eyebrow")}),l.jsx("h1",{children:n("hero.headline")}),l.jsx("div",{className:"cv-hero-desc",children:s("hero.body").map((r,c)=>l.jsx("p",{children:r},c))}),l.jsx("p",{className:"ai-cap-hero-groups-title",children:n("hero.groupsTitle")}),l.jsx("div",{className:"cv-overview-steps cv-hero-groups",children:t(`${e}.hero.groups`,{returnObjects:!0}).map((r,c)=>l.jsxs("div",{className:"cv-step-card",children:[l.jsxs("div",{className:"cv-step-number",children:["0",c+1]}),l.jsxs("div",{className:"cv-step-content",children:[l.jsx("div",{className:"cv-step-phase",children:r.phase}),l.jsx("div",{className:"cv-step-desc",children:r.content})]})]},c))}),l.jsx("p",{className:"ai-cap-hero-supplementary",children:n("hero.supplementary")})]})]}),l.jsx("hr",{className:"cv-divider cv-page-wrap"}),l.jsx("section",{className:"cv-section",style:{paddingTop:"clamp(60px, 4vh, 60px)"},children:l.jsxs("div",{className:"cv-page-wrap",children:[l.jsxs("div",{className:"cv-section-header",children:[l.jsx("div",{className:"ai-cap-eyebrow",children:t("core.coreValueTechnology.capabilities.label")}),l.jsx("h2",{className:"cv-section-title",children:t("core.coreValueTechnology.capabilities.title")})]}),l.jsx("div",{className:"cv-capability-list",children:[0,1,2,3,4,5].map(r=>{const c=t(`core.coreValueTechnology.capabilities.items.${r}.rows`,{returnObjects:!0})||[],p=t(`core.coreValueTechnology.capabilities.items.${r}.techStack`,{defaultValue:""}),g=t(`core.coreValueTechnology.capabilities.items.${r}.industries`,{defaultValue:""}),_=t(`core.coreValueTechnology.capabilities.items.${r}.note`),f=t(`core.coreValueTechnology.capabilities.items.${r}.context`,{defaultValue:""}),h=t(`core.coreValueTechnology.capabilities.items.${r}.industriesLabel`,{defaultValue:"Ứng dụng trong ngành"});return l.jsxs("div",{className:"cv-capability-block",children:[l.jsxs("div",{className:"cv-capability-header",children:[l.jsx("div",{className:"cv-capability-num",children:String(r+1).padStart(2,"0")}),l.jsxs("div",{className:"cv-capability-info",children:[l.jsx("h3",{children:t(`core.coreValueTechnology.capabilities.items.${r}.title`)}),l.jsx("p",{className:"cv-capability-subtitle",children:t(`core.coreValueTechnology.capabilities.items.${r}.subtitle`)})]})]}),f&&l.jsx("div",{className:"cv-capability-context",children:l.jsx("p",{children:f})}),l.jsx("div",{className:"cv-capability-cards",style:c.length===4?{gridTemplateColumns:"repeat(4, 1fr)"}:void 0,children:c.map((v,b)=>l.jsxs("div",{className:"cv-cap-feature",children:[l.jsxs("div",{className:"cv-cap-f-header",children:[l.jsxs("svg",{className:"cv-cap-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[l.jsx("rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",ry:"2"}),l.jsx("rect",{x:"9",y:"9",width:"6",height:"6"}),l.jsx("line",{x1:"9",y1:"1",x2:"9",y2:"4"}),l.jsx("line",{x1:"15",y1:"1",x2:"15",y2:"4"}),l.jsx("line",{x1:"9",y1:"20",x2:"9",y2:"23"}),l.jsx("line",{x1:"15",y1:"20",x2:"15",y2:"23"}),l.jsx("line",{x1:"20",y1:"9",x2:"23",y2:"9"}),l.jsx("line",{x1:"20",y1:"14",x2:"23",y2:"14"}),l.jsx("line",{x1:"1",y1:"9",x2:"4",y2:"9"}),l.jsx("line",{x1:"1",y1:"14",x2:"4",y2:"14"})]}),l.jsx("span",{className:"cv-cap-f-title",children:v.col1})]}),l.jsx("div",{className:"cv-cap-f-def",children:v.col2}),v.col3&&l.jsxs("div",{className:"cv-cap-f-app",children:[l.jsxs("strong",{children:[t(`core.coreValueTechnology.capabilities.items.${r}.th3`),":"]})," ",v.col3]})]},b))}),(p||g)&&l.jsxs("div",{className:"cv-capability-meta",children:[p&&l.jsxs("div",{className:"cv-capability-meta-group",children:[l.jsx("div",{className:"cv-capability-meta-label",children:"Tech Stack"}),l.jsx("div",{className:"cv-capability-meta-tags",children:p.split(/[•、/,]+/).map((v,b)=>l.jsx("span",{className:"cv-meta-tag cv-meta-tag--tech",children:v.trim()},b))})]}),g&&l.jsxs("div",{className:"cv-capability-meta-group",children:[l.jsx("div",{className:"cv-capability-meta-label",children:h}),l.jsx("div",{className:"cv-capability-meta-tags",children:g.split(/[•、/,]+/).map((v,b)=>l.jsx("span",{className:"cv-meta-tag cv-meta-tag--industry",children:v.trim()},b))})]})]}),_&&l.jsx("p",{className:"cv-capability-note",style:{fontStyle:"normal",color:"#000"},children:_})]},r)})}),l.jsx("p",{className:"cv-capability-footer",children:t("core.coreValueTechnology.capabilities.footer")})]})}),l.jsx("hr",{className:"cv-divider cv-page-wrap"}),l.jsx("section",{className:"cv-section",style:{paddingTop:"clamp(60px, 4vh, 60px)"},children:l.jsxs("div",{className:"cv-page-wrap",children:[l.jsxs("div",{className:"cv-section-header",children:[l.jsx("div",{className:"ai-cap-eyebrow",children:t("core.coreValueTechnology.principles.label")}),l.jsx("h2",{className:"cv-section-title",children:t("core.coreValueTechnology.principles.title")})]}),l.jsx("div",{className:"cv-principle-grid",children:[0,1,2,3].map(r=>l.jsxs("div",{className:"cv-principle-cell",children:[l.jsx("div",{className:"cv-principle-num",children:String(r+1).padStart(2,"0")}),l.jsx("h3",{children:t(`core.coreValueTechnology.principles.items.${r}.title`)}),l.jsx("p",{children:t(`core.coreValueTechnology.principles.items.${r}.desc`)})]},r))})]})}),l.jsx("hr",{className:"cv-divider cv-page-wrap"}),l.jsx("section",{className:"cv-section",style:{paddingTop:"clamp(60px, 4vh, 60px)"},children:l.jsxs("div",{className:"cv-page-wrap",children:[l.jsxs("div",{className:"cv-section-header",children:[l.jsx("div",{className:"ai-cap-eyebrow",children:t("core.coreValueTechnology.governance.label")}),l.jsx("h2",{className:"cv-section-title",children:t("core.coreValueTechnology.governance.title")}),l.jsx("p",{className:"cv-section-desc",style:{marginBottom:0},children:t("core.coreValueTechnology.governance.desc")})]}),l.jsx("h3",{className:"cv-subsection-title",children:t("core.coreValueTechnology.governance.pillarsTitle")}),l.jsx("div",{className:"cv-stack-table-wrapper",style:{marginBottom:"48px"},children:l.jsxs("table",{className:"cv-stack-table",children:[l.jsx("thead",{children:l.jsxs("tr",{children:[l.jsx("th",{children:t("core.coreValueTechnology.governance.th1")}),l.jsx("th",{children:t("core.coreValueTechnology.governance.th2")}),l.jsx("th",{children:t("core.coreValueTechnology.governance.th3")})]})}),l.jsx("tbody",{children:[0,1,2,3,4].map(r=>l.jsxs("tr",{children:[l.jsx("td",{children:t(`core.coreValueTechnology.governance.items.${r}.title`)}),l.jsx("td",{children:t(`core.coreValueTechnology.governance.items.${r}.goal`)}),l.jsx("td",{children:t(`core.coreValueTechnology.governance.items.${r}.mechanism`)})]},r))})]})}),l.jsxs("div",{className:"cv-gov-standards",children:[l.jsx("h3",{className:"cv-subsection-title",children:t("core.coreValueTechnology.governance.standards.title")}),l.jsx("div",{className:"cv-stack-table-wrapper",children:l.jsxs("table",{className:"cv-stack-table cv-standards-table",children:[l.jsx("thead",{children:l.jsxs("tr",{children:[l.jsx("th",{children:t("core.coreValueTechnology.governance.standards.th1")}),l.jsx("th",{children:t("core.coreValueTechnology.governance.standards.th2")}),l.jsx("th",{children:t("core.coreValueTechnology.governance.standards.th3")})]})}),l.jsx("tbody",{children:[0,1,2,3,4].map(r=>l.jsxs("tr",{children:[l.jsx("td",{children:t(`core.coreValueTechnology.governance.standards.rows.${r}.standard`)}),l.jsx("td",{children:t(`core.coreValueTechnology.governance.standards.rows.${r}.issuer`)}),l.jsx("td",{children:t(`core.coreValueTechnology.governance.standards.rows.${r}.scope`)})]},r))})]})})]}),l.jsxs("div",{className:"cv-gov-commitment",style:{marginTop:"40px"},children:[l.jsx("h3",{className:"cv-subsection-title",children:t("core.coreValueTechnology.governance.commitments.title")}),l.jsx("p",{className:"cv-capability-footer",style:{margin:"16px 0 0",textAlign:"left",maxWidth:"none"},children:t("core.coreValueTechnology.governance.commitments.text")})]})]})}),l.jsx("hr",{className:"cv-divider cv-page-wrap"}),l.jsx("section",{className:"cv-section",style:{paddingTop:"clamp(60px, 4vh, 60px)"},children:l.jsxs("div",{className:"cv-page-wrap",children:[l.jsxs("div",{className:"cv-section-header",children:[l.jsx("div",{className:"ai-cap-eyebrow",children:t("core.coreValueTechnology.stack.label")}),l.jsx("h2",{className:"cv-section-title",children:t("core.coreValueTechnology.stack.title")}),l.jsx("p",{className:"cv-section-desc",style:{marginBottom:0},children:t("core.coreValueTechnology.stack.desc")})]}),l.jsx("div",{className:"cv-stack-table-wrapper",children:l.jsxs("table",{className:"cv-stack-table",children:[l.jsx("thead",{children:l.jsxs("tr",{children:[l.jsx("th",{children:t("core.coreValueTechnology.stack.th1")}),l.jsx("th",{children:t("core.coreValueTechnology.stack.th2")})]})}),l.jsx("tbody",{children:t("core.coreValueTechnology.stack.rows",{returnObjects:!0}).map((r,c)=>l.jsxs("tr",{children:[l.jsx("td",{children:r.layer}),l.jsx("td",{children:r.technologies})]},c))})]})})]})}),l.jsx("hr",{className:"cv-divider cv-page-wrap"}),l.jsx("section",{className:"ai-cap-team",style:{paddingTop:"clamp(60px, 4vh, 60px)"},children:l.jsxs("div",{className:"ai-cap-team-container",children:[l.jsxs("div",{className:"ai-cap-team-header",children:[l.jsx("div",{className:"ai-cap-eyebrow",children:n("team.eyebrow")}),l.jsx("h2",{children:n("team.headline")}),l.jsx("h3",{children:n("team.subheadline")}),l.jsx("div",{className:"ai-cap-team-body",children:n("team.body").split(`
9806`).map((r,c)=>l.jsx("p",{children:r},c))})]}),l.jsx("div",{className:"ai-cap-roles-grid",children:i.map(r=>l.jsxs("div",{className:"ai-cap-role-card",children:[l.jsx("div",{className:"ai-cap-role-icon-wrapper",children:l.jsx("img",{src:r.icon,alt:"",className:"ai-cap-role-icon",onError:c=>{c.target.style.visibility="hidden"},onLoad:c=>{c.target.style.visibility="visible"}})}),l.jsxs("div",{className:"ai-cap-role-content",children:[l.jsx("div",{className:"ai-cap-role-title",children:r.title}),l.jsx("p",{className:"ai-cap-role-desc",children:r.description})]})]},r.id))})]})}),l.jsx("hr",{className:"cv-divider cv-page-wrap"}),l.jsx("section",{className:"cv-section cv-cta-section",style:{paddingTop:"clamp(60px, 4vh, 60px)"},children:l.jsxs("div",{className:"cv-page-wrap cv-cta-inner",children:[l.jsxs("div",{className:"cv-cta-title",children:[t("core.coreValueTechnology.cta.title1"),l.jsx("br",{}),t("core.coreValueTechnology.cta.title2")]}),l.jsx("p",{className:"cv-cta-desc",children:t("core.coreValueTechnology.cta.desc")}),l.jsxs("div",{className:"cv-hero-actions",children:[l.jsx(Wt,{className:"cv-btn-primary",to:"/contact",children:t("core.coreValueTechnology.cta.btnPrimary")}),l.jsx(Wt,{className:"cv-btn-outline",to:"/core-values/ai-solutions",children:t("core.coreValueTechnology.cta.btnSecondary")})]})]})})]})}function Hq(){const{t}=De();return l.jsxs("article",{className:"cv-page prose mx-auto",children:[l.jsxs("header",{className:"cv-hero cv-fin-hero",children:[l.jsx("div",{className:"cv-grid-bg","aria-hidden":"true"}),l.jsx("div",{className:"cv-hero-glow","aria-hidden":"true",style:{opacity:.5}}),l.jsxs("div",{className:"cv-page-wrap cv-hero-inner",children:[l.jsx("p",{className:"cv-section-label",children:t("core.coreValueServices.hero.label")}),l.jsxs("h1",{children:[t("core.coreValueServices.hero.title1"),l.jsx("br",{})]}),l.jsx("div",{className:"cv-hero-desc",children:t("core.coreValueServices.hero.desc",{returnObjects:!0}).map((e,n)=>l.jsx("p",{children:e},n))})]})]}),l.jsx("hr",{className:"cv-divider cv-page-wrap"}),l.jsx("section",{className:"cv-section",style:{paddingTop:"clamp(60px, 4vh, 60px)"},children:l.jsxs("div",{className:"cv-page-wrap",children:[l.jsxs("div",{className:"cv-section-header",children:[l.jsx("p",{className:"cv-section-label",children:t("core.coreValueServices.trackRecord.label")}),l.jsx("h2",{className:"cv-section-title",children:t("core.coreValueServices.trackRecord.title")}),l.jsx("p"
9806,{className:"cv-section-desc",style:{marginBottom:0},children:t("core.coreValueServices.trackRecord.desc")})]}),l.jsx("div",{className:"cv-japan-grid",children:t("core.coreValueServices.trackRecord.items",{returnObjects:!0}).map((e,n)=>l.jsxs("div",{className:"cv-card",children:[l.jsx("div",{className:"cv-card-title",children:e.title}),l.jsx("div",{className:"cv-card-desc",children:e.desc})]},n))})]})}),l.jsx("hr",{className:"cv-divider cv-page-wrap"}),l.jsx("section",{className:"cv-section",style:{paddingTop:"clamp(60px, 4vh, 60px)"},children:l.jsxs("div",{className:"cv-page-wrap",children:[l.jsxs("div",{className:"cv-section-header",children:[l.jsx("p",{className:"cv-section-label",children:t("core.coreValueServices.capabilities.label")}),l.jsx("h2",{className:"cv-section-title",children:t("core.coreValueServices.capabilities.title")}),l.jsx("p",{className:"cv-section-desc",style:{marginBottom:0},children:t("core.coreValueServices.capabilities.desc")})]}),l.jsx("div",{className:"cv-cards-grid cv-cols-2",children:t("core.coreValueServices.capabilities.items",{returnObjects:!0}).map((e,n)=>l.jsxs("div",{className:"cv-card cv-uc-card",children:[l.jsxs("div",{className:"cv-uc-card-body",children:[l.jsx("div",{className:"cv-card-num",children:String(n+1).padStart(2,"0")}),l.jsx("h3",{className:"cv-card-title",children:e.title}),l.jsx("p",{className:"cv-card-desc",children:e.desc})]}),l.jsxs("div",{className:"cv-uc-card-footer",children:[l.jsxs("div",{className:"cv-uc-tech",children:[l.jsx("span",{className:"cv-uc-tag-label",children:t("core.coreValueServices.capabilities.techLabel")}),e.tech.split(", ").map((s,i)=>l.jsx("span",{children:s},i))]}),l.jsxs("div",{className:"cv-uc-tech",children:[l.jsx("span",{className:"cv-uc-tag-label",children:t("core.coreValueServices.capabilities.appliedLabel")}),e.applied.split(", ").map((s,i)=>l.jsx("span",{children:s},i))]})]})]},n))})]})}),l.jsx("hr",{className:"cv-divider cv-page-wrap"}),l.jsx("section",{className:"cv-section",style:{paddingTop:"clamp(60px, 4vh, 60px)"},children:l.jsxs("div",{className:"cv-page-wrap",children:[l.jsxs("div",{className:"cv-section-header",children:[l.jsx("p",{className:"cv-section-label",children:t("core.coreValueServices.faq.label")}),l.jsx("h2",{className:"cv-section-title",children:t("core.coreValueServices.faq.title")}),l.jsx("p",{className:"cv-section-desc",style:{marginBottom:0},children:t("core.coreValueServices.faq.desc")})]}),l.jsx("div",{className:"cv-faq-list",children:t("core.coreValueServices.faq.items",{returnObjects:!0}).map((e,n)=>l.jsxs("details",{className:"cv-faq-item",children:[l.jsxs("summary",{className:"cv-faq-question",children:[l.jsxs("span",{className:"cv-faq-num",children:[`Q${n+1}`," "]}),l.jsx("span",{children:e.question})]}),l.jsx("div",{className:"cv-faq-answer",children:e.answer.split(`
9807
9808`).map((s,i)=>l.jsx("p",{children:s},i))})]},n))})]})}),l.jsx("hr",{className:"cv-divider cv-page-wrap"}),l.jsx("section",{className:"cv-section cv-cta-section",style:{paddingTop:"clamp(60px, 4vh, 60px)"},children:l.jsxs("div",{className:"cv-page-wrap cv-cta-inner",children:[l.jsxs("div",{className:"cv-cta-title",children:[t("core.coreValueServices.cta.title1"),l.jsx("br",{}),t("core.coreValueServices.cta.title2")]}),l.jsx("p",{className:"cv-cta-desc",children:t("core.coreValueServices.cta.desc")}),l.jsxs("div",{className:"cv-hero-actions",children:[l.jsx(Wt,{className:"cv-btn-primary",to:"/contact",children:t("core.coreValueServices.cta.btnPrimary")}),l.jsx(Wt,{className:"cv-btn-outline",to:"/core-values/ai-driven-development",children:t("core.coreValueServices.cta.btnSecondary")})]})]})})]})}function Fq(){const{i18n:t}=De(),[e,n]=y.useState(!1),s=y.useRef(null),i=t.resolvedLanguage||t.language,r=i==="ja"?"Ja":"Vi";return y.useEffect(()=>{const c=p=>{s.current&&!s.current.contains(p.target)&&n(!1)};return document.addEventListener("mousedown",c),()=>document.removeEventListener("mousedown",c)},[]),l.jsxs("div",{className:"mobile-lang-selector",ref:s,children:[l.jsxs("button",{className:"mobile-lang-toggle",onClick:()=>n(c=>!c),children:[l.jsx("span",{children:r}),l.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:l.jsx("path",{d:"M6 9l6 6 6-6"})})]}),e&&l.jsxs("div",{className:"mobile-lang-dropdown",children:[l.jsx("button",{className:`mobile-lang-option ${i==="en"?"active":""}`,onClick:()=>{t.changeLanguage("en"),n(!1)},children:"Vietnamese"}),l.jsx("button",{className:`mobile-lang-option ${i==="ja"?"active":""}`,onClick:()=>{t.changeLanguage("ja"),n(!1)},children:"日本語"})]})]})}function Uq(){const{pathname:t}=qa(),e=y.useRef(t);return y.useEffect(()=>{if(e.current!==t){e.current=t;const n=setTimeout(()=>{au()},100);return()=>clearTimeout(n)}},[t]),null}function Vq(){const[t,e]=y.useState(!0);y.useEffect(()=>{const s=()=>{window.innerWidth<=1024?e(!1):e(!0)};
9808return s(),window.addEventListener("resize",s),()=>window.removeEventListener("resize",s)},[]);const n=y.useCallback(()=>{e(s=>!s)},[]);return l.jsxs(l.Fragment,{children:[l.jsx(VI,{isOpen:t,onToggle:n}),!t&&l.jsxs("div",{className:"mobile-header-bar",children:[l.jsx("button",{className:"mobile-sidebar-toggle","aria-label":"Open menu",onClick:n,children:l.jsx("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:l.jsx("path",{d:"M3 12H21M3 6H21M3 18H21",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}),l.jsx(Wt,{to:"/",className:"mobile-header-logo",onClick:()=>au(),children:l.jsx("img",{src:"/LOGO_NGANG(2).svg",alt:"React Plus"})}),l.jsx(Fq,{})]}),l.jsx("div",{className:`app-shell ${t?"":"is-sidebar-closed"} ease-curve-sidebar`,children:l.jsxs("main",{className:"main",children:[l.jsxs("div",{className:"content-shell",children:[l.jsx(Uq,{}),l.jsx(UI,{onToggleSidebar:n}),l.jsx("div",{className:`drawer-overlay${t?" visible":""}`,onClick:n}),l.jsx("div",{className:"page",children:l.jsxs(xE,{children:[l.jsx(We,{path:"/",element:l.jsx(WO,{})}),l.jsx(We,{path:"/about/company-information",element:l.jsx(QO,{})}),l.jsx(We,{path:"/about/our-expert",element:l.jsx(JO,{})}),l.jsx(We,{path:"/about/company-culture",element:l.jsx(Dq,{})}),l.jsx(We,{path:"/core-values/ai-driven-development",element:l.jsx(ZO,{})}),l.jsx(We,{path:"/about/for-the-community",element:l.jsx(fB,{})}),l.jsx(We,{path:"/news",element:l.jsx(vC,{})}),l.jsx(We,{path:"/news/:id",element:l.jsx(aq,{})}),l.jsx(We,{path:"/ai-blog",element:l.jsx(sq,{})}),l.jsx(We,{path:"/case-study",element:l.jsx(Nq,{})}),l.jsx(We,{path:"/recruit",element:l.jsx(Rq,{})}),l.jsx(We,{path:"/recruit/apply",element:l.jsx(Oq,{})}),l.jsx(We,{path:"/recruit/:slug",element:l.jsx(Tq,{})}),l.jsx(We,{path:"/privacy-policy",element:l.jsx(oq,{})}),l.jsx(We,{path:"/contact",element:l.jsx(xq,{})}),l.jsx(We,{path:"/products/atobar-ai",element:l.jsx(Aq,{})}),l.jsx(We,{path:"/products/ad-housing",element:l.jsx(Cq,{})}),l.jsx(We,{path:"/products/ad-passport",element:l.jsx(Sq,{})}),l.jsx(We,{path:"/products/live-now-pay-later",element:l.jsx(Eq,{})}),l.jsx(We,{path:"/products/appos",element:l.jsx(zq,{})}),l.jsx(We,{path:"/products/cv-agent",element:l.jsx(Bq,{})}),l.jsx(We,{path:"/core-values/ai-solutions",element:l.jsx($q,{})}),l.jsx(We,{path:"/core-values/ai-capabilities",element:l.jsx(Gq,{})}),l.jsx(We,{path:"/core-values/fintech",element:l.jsx(Hq,{})}),l.jsx(We,{path:"/our-story",element:l.jsx(J6,{})})]})})]}),l.jsx(kB,{})]})})]})}x8.createRoot(document.getElementById("root")).render(l.jsx(y.StrictMode,{children:l.jsx(qE,{children:l.jsx(Vq,{})})}));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.