//Characters PS.
// ---- Created with 3Dmigoto v1.3.16 on Fri Sep 02 23:36:33 2022

cbuffer perMaterialBuffer : register(b0)
{
  float4 g_fogColor : packoffset(c0);
  float4 g_fogParam : packoffset(c1);
  float4 g_ambientColor : packoffset(c2);
  float4 g_lightColor : packoffset(c3);
  float4 g_lightDirection : packoffset(c4);
  float3 g_pointLightPos0 : packoffset(c5);
  float3 g_pointLightColor0 : packoffset(c6);
  float4 g_pointLightParam0 : packoffset(c7);
  float3 g_pointLightPos1 : packoffset(c8);
  float3 g_pointLightColor1 : packoffset(c9);
  float4 g_pointLightParam1 : packoffset(c10);
  float3 g_pointLightPos2 : packoffset(c11);
  float3 g_pointLightColor2 : packoffset(c12);
  float4 g_pointLightParam2 : packoffset(c13);
  float3 g_pointLightPos3 : packoffset(c14);
  float3 g_pointLightColor3 : packoffset(c15);
  float4 g_pointLightParam3 : packoffset(c16);
  row_major float4x4 g_matWorldViewProj : packoffset(c17);
  float4 g_commonParam : packoffset(c21);
  float4 g_lightingParam : packoffset(c22);
  float4 g_msParam0 : packoffset(c23);
  float4 g_specularParam : packoffset(c24);
  float4 g_hatchingParam : packoffset(c25);
  float4 g_outline0Param : packoffset(c26);
  float4 g_outemiParam : packoffset(c27);
  float4 g_waterParam0 : packoffset(c28);
  float4 g_waterParam1 : packoffset(c29);
  row_major float4x4 g_matWorldInvTrans : packoffset(c30);
  float4 g_uvOffset0 : packoffset(c34);
  float3 g_eyePos : packoffset(c35);
  float4 g_ScreenToUV : packoffset(c36);
  float4 g_outlineParam : packoffset(c37);
  float4 g_cparaColor1 : packoffset(c38);
  row_major float4x4 g_matWorld : packoffset(c39);
}

SamplerState g_sampler0_s : register(s0);
SamplerState g_normal0Sampler_s : register(s1);
SamplerState g_hatching0Sampler_s : register(s2);
SamplerState g_hatching1Sampler_s : register(s3);
SamplerState g_hatchingMaskSampler_s : register(s4);
SamplerState g_specular0Sampler_s : register(s5);
Texture2D<float4> g_texture0 : register(t0);
Texture2D<float4> g_normal0Map : register(t1);
Texture2D<float4> g_hatching0Map : register(t2);
Texture2D<float4> g_hatching1Map : register(t3);
Texture2D<float4> g_hatchingMask : register(t4);
Texture2D<float4> g_specular0Map : register(t5);


// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);


void main(
  float4 v0 : SV_Position0,
  float4 v1 : TEXCOORD0,
  float4 v2 : TEXCOORD1,
  float4 v3 : TEXCOORD2,
  float4 v4 : TEXCOORD3,
  float4 v5 : TEXCOORD5,
  float4 v6 : TEXCOORD6,
  float3 v7 : TEXCOORD7,
  float3 v8 : COLOR1,
  float4 v9 : TEXCOORD8,
  float4 v10 : TEXCOORD9,
  float4 v11 : COLOR0,
  float4 v12 : TEXCOORD4,
  out float4 o0 : SV_Target0,
  out float4 o1 : SV_Target1)
{
  float4 r0,r1,r2,r3,r4,r5;
  uint4 bitmask, uiDest;
  float4 fDest;
  
  float4 iniparams10 = IniParams.Load(int2(10,0));
  float4 iniparams11 = IniParams.Load(int2(11,0));
  
  r0.xyzw = g_texture0.Sample(g_sampler0_s, v2.xy).xyzw;
  r0.w = v11.y * r0.w;
  r1.x = cmp(v11.x >= r0.w);
  if (r1.x != 0) discard;
  r1.xyzw = g_normal0Map.Sample(g_normal0Sampler_s, v2.xy).xyzw;
  r1.z = g_hatchingParam.x + g_hatchingParam.x;
  r1.xy = float2(-0.5,-0.5) + r1.xy;
  r1.xy = r1.zz * r1.xy;
  r1.yzw = v5.xyz * r1.yyy;
  r1.xyz = v6.xyz * r1.xxx + r1.yzw;
  r1.xyz = v7.xyz + r1.xyz;
  r1.w = dot(r1.xyz, r1.xyz);
  r1.w = rsqrt(r1.w);
  r1.xyz = r1.xyz * r1.www;
  r2.xy = g_hatchingParam.yy * v2.xy;
  r2.xy = float2(20,10) * r2.xy;
  r3.xyzw = g_hatching0Map.Sample(g_hatching0Sampler_s, r2.xy).xyzw;
  r3.xyz = float3(-0.5,-0.5,-0.5) + r3.xyz;
  r3.xyz = r3.xyz + r3.xyz;
  r2.xyzw = g_hatching1Map.Sample(g_hatching1Sampler_s, r2.xy).xyzw;
  r4.xyzw = g_hatchingMask.Sample(g_hatchingMaskSampler_s, v2.xy).xyzw;
  r2.xyz = r4.xxx * r2.xyz;
  r2.xyz = saturate(g_hatchingParam.zzz * r2.xyz);
  r2.xyz = float3(1,1,1) + -r2.xyz;
  r0.xyz = r2.xyz * r0.xyz;
  r1.w = 1 / g_msParam0.y;
  r2.xyz = v5.xyz * r3.yyy;
  r2.xyz = r3.xxx * v6.xyz + r2.xyz;
  r2.xyz = r3.zzz * v7.xyz + r2.xyz;
  r3.xyz = r2.xyz * g_msParam0.zzz + r1.xyz;
  r2.w = dot(r3.xyz, r3.xyz);
  r2.w = rsqrt(r2.w);
  r3.xyz = r3.xyz * r2.www;
  r2.w = dot(r3.xyz, v3.xyz);
  r1.w = r2.w * r1.w + g_lightingParam.y;
  r1.w = log2(abs(r1.w));
  r1.w = g_msParam0.x * r1.w;
  r1.w = exp2(r1.w);
  r1.w = min(1, r1.w);
  r1.w = 1 + -r1.w;
  r1.w = -r1.w * g_msParam0.w + 1;
  r2.w = 1 / g_lightingParam.x;
  r3.x = dot(r1.xyz, v3.xyz);
  r3.y = g_lightingParam.y + r3.x;
  r2.w = r3.y * r2.w;
  r2.w = max(-1, r2.w);
  r2.w = min(1, r2.w);
  r3.y = r2.w * 0.5 + 0.5;
  r2.w = -r2.w * 0.5 + 0.5;
  r4.xyz = g_ambientColor.xyz * r2.www;
  r3.yzw = r3.yyy * g_lightColor.xyz + r4.xyz;
  r2.xyz = r2.xyz * g_outline0Param.zzz * iniparams10.w + r1.xyz;
  r2.w = dot(r2.xyz, r2.xyz);
  r2.w = rsqrt(r2.w);
  r2.xyz = r2.xyz * r2.www;
  r2.x = dot(r2.xyz, v4.xyz);
  r2.y = -g_outline0Param.x * iniparams10.w + r2.x;
  r2.z = 1 * iniparams10.w / g_outline0Param.y;
  r2.y = saturate(r2.y * r2.z);
  r2.y = 1 + -r2.y;
  r2.y = -r2.y * g_outline0Param.w * iniparams10.w + 1;
  r2.x = -v10.w * 0.200000003 + r2.x;
  r2.x = saturate(-r2.x * 1.66666663 + 1);
  r2.xzw = v10.xyz * r2.xxx;
  r4.x = g_specularParam.x * g_specularParam.x * iniparams11.x;
  r5.xyzw = g_specular0Map.Sample(g_specular0Sampler_s, v2.xy).xyzw;
  r4.yzw = v4.xyz + v3.xyz;
  r5.w = dot(r4.yzw, r4.yzw);
  r5.w = rsqrt(r5.w);
  r4.yzw = r5.www * r4.yzw;
  r4.y = dot(r1.xyz, r4.yzw);
  r4.z = cmp(r3.x >= 0);
  r3.x = max(0, r3.x);
  r4.w = cmp(r4.y >= 0);
  r4.z = r4.z ? r4.w : 0;
  r4.y = log2(r4.y);
  r4.x = r4.x * r4.y;
  r4.x = exp2(r4.x);
  r4.x = r4.z ? r4.x : 0;
  r3.x = r4.x * r3.x;
  r4.xyz = r3.xxx * r5.xyz;
  r4.xyz = g_specularParam.yyy * iniparams11.x * r4.xyz;
  r0.xyz = r3.yzw * r0.xyz;
  r0.xyz = r0.xyz * r1.www;
  r0.xyz = r0.xyz * r2.yyy + r4.xyz;
  r3.xyz = float3(0.300000012,0.300000012,0.300000012) * v8.xyz;
  r3.xyz = r0.xyz * v8.xyz + r3.xyz;
  r0.xyz = saturate(r3.xyz + r0.xyz);
  r0.xyz = saturate(r2.xzw * v10.www + r0.xyz);
  r2.xyz = v9.xyz + -r0.xyz;
  r0.xyz = v9.www * r2.xyz + r0.xyz;
  r2.xyzw = float4(0.850000024,0.850000024,0.850000024,1) * v12.wwww;
  r1.x = dot(r1.xyz, v4.xyz);
  r1.x = -0.100000001 + r1.x;
  r1.x = saturate(1.11111116 * r1.x);
  r1.x = 1 + -r1.x;
  r3.xyzw = float4(4,1.20000005,5,6) * r1.xxxx;
  r4.x = max(0.800000012, r1.x);
  r1.x = r1.x + r1.x;
  r1.x = max(0.699999988, r1.x);
  r4.y = min(1, r1.x);
  r1.xyzw = min(float4(1,1,1,1), r3.xyzw);
  r3.xy = v12.xz * r2.xx;
  r5.xy = r1.xy;
  r5.z = 0;
  r5.xyz = r5.xyz + -r0.xyz;
  r0.xyz = r3.xxx * r5.xyz + r0.xyz;
  r4.z = v12.y;
  r2.xyz = r4.xyz * r2.yzw;
  r3.x = v12.y;
  r3.z = 0.0850000009;
  r0.xyz = saturate(r2.xyz * r3.xxz + r0.xyz);
  r1.xyz = max(float3(0.25,0.25,0.25), r1.xzw);
  r1.xyz = r1.xyz + -r0.xyz;
  o0.xyz = r3.yyy * r1.xyz + r0.xyz;
  o0.w = r0.w;
  o1.xy = v11.wz;
  o1.z = 0;
  o1.w = r0.w;
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 6.3.9600.16384
//
//   using 3Dmigoto v1.3.16 on Fri Sep 02 23:36:33 2022
//
//
// Buffer Definitions:
//
// cbuffer perMaterialBuffer
// {
//
//   float4 g_fogColor;                 // Offset:    0 Size:    16 [unused]
//   float4 g_fogParam;                 // Offset:   16 Size:    16 [unused]
//   float4 g_ambientColor;             // Offset:   32 Size:    16
//   float4 g_lightColor;               // Offset:   48 Size:    16
//   float4 g_lightDirection;           // Offset:   64 Size:    16 [unused]
//   float3 g_pointLightPos0;           // Offset:   80 Size:    12 [unused]
//   float3 g_pointLightColor0;         // Offset:   96 Size:    12 [unused]
//   float4 g_pointLightParam0;         // Offset:  112 Size:    16 [unused]
//   float3 g_pointLightPos1;           // Offset:  128 Size:    12 [unused]
//   float3 g_pointLightColor1;         // Offset:  144 Size:    12 [unused]
//   float4 g_pointLightParam1;         // Offset:  160 Size:    16 [unused]
//   float3 g_pointLightPos2;           // Offset:  176 Size:    12 [unused]
//   float3 g_pointLightColor2;         // Offset:  192 Size:    12 [unused]
//   float4 g_pointLightParam2;         // Offset:  208 Size:    16 [unused]
//   float3 g_pointLightPos3;           // Offset:  224 Size:    12 [unused]
//   float3 g_pointLightColor3;         // Offset:  240 Size:    12 [unused]
//   float4 g_pointLightParam3;         // Offset:  256 Size:    16 [unused]
//   row_major float4x4 g_matWorldViewProj;// Offset:  272 Size:    64 [unused]
//   float4 g_commonParam;              // Offset:  336 Size:    16 [unused]
//   float4 g_lightingParam;            // Offset:  352 Size:    16
//   float4 g_msParam0;                 // Offset:  368 Size:    16
//   float4 g_specularParam;            // Offset:  384 Size:    16
//   float4 g_hatchingParam;            // Offset:  400 Size:    16
//   float4 g_outline0Param;            // Offset:  416 Size:    16
//   float4 g_outemiParam;              // Offset:  432 Size:    16 [unused]
//   float4 g_waterParam0;              // Offset:  448 Size:    16 [unused]
//   float4 g_waterParam1;              // Offset:  464 Size:    16 [unused]
//   row_major float4x4 g_matWorldInvTrans;// Offset:  480 Size:    64 [unused]
//   float4 g_uvOffset0;                // Offset:  544 Size:    16 [unused]
//   float3 g_eyePos;                   // Offset:  560 Size:    12 [unused]
//   float4 g_ScreenToUV;               // Offset:  576 Size:    16 [unused]
//   float4 g_outlineParam;             // Offset:  592 Size:    16 [unused]
//   float4 g_cparaColor1;              // Offset:  608 Size:    16 [unused]
//   row_major float4x4 g_matWorld;     // Offset:  624 Size:    64 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// g_sampler0                        sampler      NA          NA    0        1
// g_normal0Sampler                  sampler      NA          NA    1        1
// g_hatching0Sampler                sampler      NA          NA    2        1
// g_hatching1Sampler                sampler      NA          NA    3        1
// g_hatchingMaskSampler             sampler      NA          NA    4        1
// g_specular0Sampler                sampler      NA          NA    5        1
// g_texture0                        texture  float4          2d    0        1
// g_normal0Map                      texture  float4          2d    1        1
// g_hatching0Map                    texture  float4          2d    2        1
// g_hatching1Map                    texture  float4          2d    3        1
// g_hatchingMask                    texture  float4          2d    4        1
// g_specular0Map                    texture  float4          2d    5        1
// perMaterialBuffer                 cbuffer      NA          NA    0        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float
// TEXCOORD                 0   xyzw        1     NONE   float
// TEXCOORD                 1   xy          2     NONE   float   xy
// TEXCOORD                 2   xyz         3     NONE   float   xyz
// TEXCOORD                 3   xyz         4     NONE   float   xyz
// TEXCOORD                 5   xyz         5     NONE   float   xyz
// TEXCOORD                 6   xyz         6     NONE   float   xyz
// TEXCOORD                 7   xyz         7     NONE   float   xyz
// COLOR                    1   xyz         8     NONE   float   xyz
// TEXCOORD                 8   xyzw        9     NONE   float   xyzw
// TEXCOORD                 9   xyzw       10     NONE   float   xyzw
// COLOR                    0   xyzw       11     NONE   float   xyzw
// TEXCOORD                 4   xyzw       12     NONE   float   xyzw
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
// SV_Target                1   xyzw        1   TARGET   float   xyzw
//
ps_4_0
dcl_constantbuffer cb0[27], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_sampler s4, mode_default
dcl_sampler s5, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture2d (float,float,float,float) t3
dcl_resource_texture2d (float,float,float,float) t4
dcl_resource_texture2d (float,float,float,float) t5
dcl_input_ps linear v2.xy
dcl_input_ps linear v3.xyz
dcl_input_ps linear v4.xyz
dcl_input_ps linear v5.xyz
dcl_input_ps linear v6.xyz
dcl_input_ps linear v7.xyz
dcl_input_ps linear v8.xyz
dcl_input_ps linear v9.xyzw
dcl_input_ps linear v10.xyzw
dcl_input_ps linear v11.xyzw
dcl_input_ps linear v12.xyzw
dcl_output o0.xyzw
dcl_output o1.xyzw
dcl_temps 6
sample r0.xyzw, v2.xyxx, t0.xyzw, s0
mul r0.w, r0.w, v11.y
ge r1.x, v11.x, r0.w
discard_nz r1.x
sample r1.xyzw, v2.xyxx, t1.xyzw, s1
add r1.z, cb0[25].x, cb0[25].x
add r1.xy, r1.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000)
mul r1.xy, r1.xyxx, r1.zzzz
mul r1.yzw, r1.yyyy, v5.xxyz
mad r1.xyz, v6.xyzx, r1.xxxx, r1.yzwy
add r1.xyz, r1.xyzx, v7.xyzx
dp3 r1.w, r1.xyzx, r1.xyzx
rsq r1.w, r1.w
mul r1.xyz, r1.wwww, r1.xyzx
mul r2.xy, v2.xyxx, cb0[25].yyyy
mul r2.xy, r2.xyxx, l(20.000000, 10.000000, 0.000000, 0.000000)
sample r3.xyzw, r2.xyxx, t2.xyzw, s2
add r3.xyz, r3.xyzx, l(-0.500000, -0.500000, -0.500000, 0.000000)
add r3.xyz, r3.xyzx, r3.xyzx
sample r2.xyzw, r2.xyxx, t3.xyzw, s3
sample r4.xyzw, v2.xyxx, t4.xyzw, s4
mul r2.xyz, r2.xyzx, r4.xxxx
mul_sat r2.xyz, r2.xyzx, cb0[25].zzzz
add r2.xyz, -r2.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
mul r0.xyz, r0.xyzx, r2.xyzx
div r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[23].y
mul r2.xyz, r3.yyyy, v5.xyzx
mad r2.xyz, r3.xxxx, v6.xyzx, r2.xyzx
mad r2.xyz, r3.zzzz, v7.xyzx, r2.xyzx
mad r3.xyz, r2.xyzx, cb0[23].zzzz, r1.xyzx
dp3 r2.w, r3.xyzx, r3.xyzx
rsq r2.w, r2.w
mul r3.xyz, r2.wwww, r3.xyzx
dp3 r2.w, r3.xyzx, v3.xyzx
mad r1.w, r2.w, r1.w, cb0[22].y
log r1.w, |r1.w|
mul r1.w, r1.w, cb0[23].x
exp r1.w, r1.w
min r1.w, r1.w, l(1.000000)
add r1.w, -r1.w, l(1.000000)
mad r1.w, -r1.w, cb0[23].w, l(1.000000)
div r2.w, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[22].x
dp3 r3.x, r1.xyzx, v3.xyzx
add r3.y, r3.x, cb0[22].y
mul r2.w, r2.w, r3.y
max r2.w, r2.w, l(-1.000000)
min r2.w, r2.w, l(1.000000)
mad r3.y, r2.w, l(0.500000), l(0.500000)
mad r2.w, -r2.w, l(0.500000), l(0.500000)
mul r4.xyz, r2.wwww, cb0[2].xyzx
mad r3.yzw, r3.yyyy, cb0[3].xxyz, r4.xxyz
mad r2.xyz, r2.xyzx, cb0[26].zzzz, r1.xyzx
dp3 r2.w, r2.xyzx, r2.xyzx
rsq r2.w, r2.w
mul r2.xyz, r2.wwww, r2.xyzx
dp3 r2.x, r2.xyzx, v4.xyzx
add r2.y, r2.x, -cb0[26].x
div r2.z, l(1.000000, 1.000000, 1.000000, 1.000000), cb0[26].y
mul_sat r2.y, r2.z, r2.y
add r2.y, -r2.y, l(1.000000)
mad r2.y, -r2.y, cb0[26].w, l(1.000000)
mad r2.x, -v10.w, l(0.200000), r2.x
mad_sat r2.x, -r2.x, l(1.66666663), l(1.000000)
mul r2.xzw, r2.xxxx, v10.xxyz
mul r4.x, cb0[24].x, cb0[24].x
sample r5.xyzw, v2.xyxx, t5.xyzw, s5
add r4.yzw, v3.xxyz, v4.xxyz
dp3 r5.w, r4.yzwy, r4.yzwy
rsq r5.w, r5.w
mul r4.yzw, r4.yyzw, r5.wwww
dp3 r4.y, r1.xyzx, r4.yzwy
ge r4.z, r3.x, l(0.000000)
max r3.x, r3.x, l(0.000000)
ge r4.w, r4.y, l(0.000000)
and r4.z, r4.z, r4.w
log r4.y, r4.y
mul r4.x, r4.y, r4.x
exp r4.x, r4.x
and r4.x, r4.x, r4.z
mul r3.x, r3.x, r4.x
mul r4.xyz, r5.xyzx, r3.xxxx
mul r4.xyz, r4.xyzx, cb0[24].yyyy
mul r0.xyz, r0.xyzx, r3.yzwy
mul r0.xyz, r1.wwww, r0.xyzx
mad r0.xyz, r0.xyzx, r2.yyyy, r4.xyzx
mul r3.xyz, v8.xyzx, l(0.300000, 0.300000, 0.300000, 0.000000)
mad r3.xyz, r0.xyzx, v8.xyzx, r3.xyzx
add_sat r0.xyz, r0.xyzx, r3.xyzx
mad_sat r0.xyz, r2.xzwx, v10.wwww, r0.xyzx
add r2.xyz, -r0.xyzx, v9.xyzx
mad r0.xyz, v9.wwww, r2.xyzx, r0.xyzx
mul r2.xyzw, v12.wwww, l(0.850000, 0.850000, 0.850000, 1.000000)
dp3 r1.x, r1.xyzx, v4.xyzx
add r1.x, r1.x, l(-0.100000)
mul_sat r1.x, r1.x, l(1.11111116)
add r1.x, -r1.x, l(1.000000)
mul r3.xyzw, r1.xxxx, l(4.000000, 1.200000, 5.000000, 6.000000)
max r4.x, r1.x, l(0.800000)
add r1.x, r1.x, r1.x
max r1.x, r1.x, l(0.700000)
min r4.y, r1.x, l(1.000000)
min r1.xyzw, r3.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
mul r3.xy, r2.xxxx, v12.xzxx
mov r5.xy, r1.xyxx
mov r5.z, l(0)
add r5.xyz, -r0.xyzx, r5.xyzx
mad r0.xyz, r3.xxxx, r5.xyzx, r0.xyzx
mov r4.z, v12.y
mul r2.xyz, r2.yzwy, r4.xyzx
mov r3.x, v12.y
mov r3.z, l(0.085000)
mad_sat r0.xyz, r2.xyzx, r3.xxzx, r0.xyzx
max r1.xyz, r1.xzwx, l(0.250000, 0.250000, 0.250000, 0.000000)
add r1.xyz, -r0.xyzx, r1.xyzx
mad o0.xyz, r3.yyyy, r1.xyzx, r0.xyzx
mov o0.w, r0.w
mov o1.xy, v11.wzww
mov o1.z, l(0)
mov o1.w, r0.w
ret
// Approximately 120 instruction slots used

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
