ELF>@ȝ@8 @ppQtd@@ĽĽPtdhhht3t3p77RtdPP  $$      ]]XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXZ ui ZZui Z@yWl (08@HPX ` h p x  !" #($0%8&@'H(P)X*`+h,p-x./0123456789:;<=>?@AB C(D0E8F@GHHPIXJ`KhLpMxNOPQRSTUVWXYZ[\]^_`ab c(d0e8f@gHhPiXj`khlpmxnopqrstuvwxyz{|}~ (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@HP X ` h p x !"# $(%0&8'@(H)P*X+`,h-p.x/0123456789:;<=>?@ABC D(E0F8G@HHIPJXK`LhMpNxOPQRSTUVWXYZ[\]^_`abc d(e0f8g@hHiPjXk`lhmpnxopqrstuvwxz{|}~ (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08 @ H P X `hpx !"#$% &('0(8)@*H+P,X-`.h/p0x123456789:;<=>?@ABCDE F(G0H8I@JHKPLXM`NhOpPxQRSTUVXYZ[\]^_`abcdef g(h0i8j@kHlPmXn`ohppqxrstuvwxyz{|}~ (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (0 8 @ H P X`hpx !"#$%& '((0)8*@+H,P-X.`/h0p1x23456789:;<=>?@ABCDEF G(H0I8J@KHLPMXN`OhPpQxRSTUVWXYZ[\]^_`abcdef g(h0i8j@kHmPnXo`phqprxstuvwxyz{|}~ (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx ( 0 8 @ H PX`hpx !"#$%&' (()0*8+@,H-P.X/`0h1p2x3456789:;<=>?@ABCDEFG H(I0J8K@LHMPNXO`PhQpRxSTUVWXYZ[\]^_`abcdefg h(i0j8k@lHmPnXo`phqprxstuvwxyz{|}~ (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx  ( 0 8 @ HPX`hpx !"#$ % & ' ( )( *0 +8 ,@ -H .P /X 0` 1h 2p 3x 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I( J0 K8 L@ MH NP OX P` Qh Rp Sx T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i( j0 k8 l@ mH nP oX p` qh rp sx t u v w x y z { | } ~           ( 0 8 @ H P X ` h p x                      ( 0 8 @ H P X ` h p x                  (08@HPX`hpx (08@HPX`hpx  ( 0 8 @ HPX`hpx !"#$%&'( )(*0+8,@-H.P/X0`1h2p3x456789:;<=>?@ABCDEFGH I(J0K8L@MHNPOXP`QhRpSxTUVWXYZ[\]^_`abcdefgh i(j0k8l@mHnPoXp`qhrpsxtuvwxyz{|}~HH/HtK H5/%/@%/h%/h%/h%/h%/h%/h%/h%/hp%/h`%/h P%/h @%/h 0%/h %z/h %r/h%j/h%b/h%Z/h%R/h%J/h%B/h%:/h%2/h%*/hp%"/h`%/hP%/h@% /h0%/h %.h%.h%.h%.h %.h!%.h"%.h#%.h$%.h%%.h&%.h'p%.h(`%.h)P%.h*@%.h+0%.h, %z.h-%r.h.%j.h/%b.h0%Z.h1%R.h2%J.h3%B.h4%:.h5%2.h6%*.h7p%".h8`%.h9P%.h:@% .h;0%.h< %-h=%-h>%-h?%-h@%-hA%-hB%-hC%-hD%-hE%-hF%-hGp%-hH`%-hIP%-hJ@%-hK0%-hL %z-hM%r-hN%j-hO%b-hP%Z-hQ%R-hR%J-hS%B-hT%:-hU%2-hV%*-hWp%"-hX`%-hYP%-hZ@% -h[0%-h\ %,h]%,h^%,h_%,h`%,ha%,hb%,hc%,hd%,he%,hf%,hgp%,hh`%,hiP%,hj@%,hk0%,hl %z,hm%r,hn%j,ho%b,hp%Z,hq%R,hr%J,hs%B,ht%:,hu%2,hv%*,hwp%",hx`%,hyP%,hz@% ,h{0%,h| %+h}%+h~%+h%+h%+h%+h%+h%+h%+h%+h%+hp%+h`%+hP%+h@%+h0%+h %z+h%r+h%j+h%b+h%Z+h%R+h%J+h%B+h%:+h%2+h%*+hp%"+h`%+hP%+h@% +h0%+h %*h%*h%*h%*h%*h%*h%*h%*h%*h%*h%*hp%*h`%*hP%*h@%*h0%*h %z*h%r*h%j*h%b*h%Z*h%R*h%J*h%B*h%:*h%2*h%**hp%"*h`%*hP%*h@% *h0%*h %)h%)h%)h%)h%)h%)h%)h%)h%)h%)h%)hp%)h`%)hP%)h@%)h0%)h %z)h%r)h%j)h%b)h%Z)h%R)h%J)h%B)h%:)h%2)h%*)hp%")h`%)hP%)h@% )h0%)h %(h%(h%(h%(h%(h%(h%(h%(h%(h%(h%(hp%(h`%(hP%(h@%(h0%(h %z(h%r(h%j(h%b(h%Z(h%R(h%J(h%B(h%:(h%2(h%*(hp%"(h`%(hP%(h@% (h0%(h %'h%'h%'h%'h%'h%'h%'h%'h%'h%'h%'hp%'h`%'h P%'h @%'h 0%'h  %z'h %r'h%j'h%b'h%Z'h%R'h%J'h%B'h%:'h%2'h%*'hp%"'h`%'hP%'h@% 'h0%'h %&h%&h%&h%&h %&h!%&h"%&h#%&h$%&h%%&h&%&h'p%&h(`%&h)P%&h*@%&h+0%&h, %z&h-%r&h.%j&h/%b&h0%Z&h1%R&h2%J&h3%B&h4%:&h5%2&h6%*&h7p%"&h8`%&h9P%&h:@% &h;0%&h< %%h=%%h>%%h?%%h@%%hA%%hB%%hC%%hD%%hE%%hF%%hGp%%hH`%%hIP%%hJ@%%hK0%%hL %z%hM%r%hN%j%hO%b%hP%Z%hQ%R%hR%J%hS%B%hT%:%hU%2%hV%*%hWp%"%hX`%%hYP%%hZ@% %h[0%%h\ %$h]%$h^%$h_%$h`%$ha%$hb%$hc%$hd%$he%$hf%$hgp%$hh`%$hiP%$hj@%$hk0%$hl %z$hm%r$hn%j$ho%b$hp%Z$hq%R$hr%J$hs%B$ht%:$hu%2$hv%*$hwp%"$hx`%$hyP%$hz@% $h{0%$h| %#h}%#h~%#h%#h%#h%#h%#h%#h%#h%#h%#hp%#h`%#hP%#h@%#h0%#h %z#h%r#h%j#h%b#h%Z#h%R#h%J#h%B#h%:#h%2#h%*#hp%"#h`%#hP%#h@% #h0%#h %"h%"h%"h%"h%"h%"h%"h%"h%"h%"h%"hp%"h`%"hP%"h@%"h0%"h %z"h%r"h%j"h%b"h%Z"h%R"h%J"h%B"h%:"h%2"h%*"hp%""h`%"hP%"h@% "h0%"h %!h%!h%!h%!h%!h%!h%!h%!h%!h%!h%!hp%!h`%!hP%!h@%!h0%!h %z!h%r!h%j!h%b!h%Z!h%R!h%J!h%B!h%:!h%2!h%*!hp%"!h`%!hP%!h@% !h0%!h % h% h% h% h% h% h% h% h% h% h% hp% h`% hP% h@% h0% h %z h%r h%j h%b h%Z h%R h%J h%B h%: h%2 h%* hp%" h`% hP% h@% h0% h %h%h%h%h%h%h%h%h%h%h%hp%h`%h P%h @%h 0%h  %zh %rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h %h!%h"%h#%h$%h%%h&%h'p%h(`%h)P%h*@%h+0%h, %zh-%rh.%jh/%bh0%Zh1%Rh2%Jh3%Bh4%:h5%2h6%*h7p%"h8`%h9P%h:@% h;0%h< %h=%h>%h?%h@%hA%hB%hC%hD%hE%hF%hGp%hH`%hIP%hJ@%hK0%hL %zhM%rhN%jhO%bhP%ZhQ%RhR%JhS%BhT%:hU%2hV%*hWp%"hX`%hYP%hZ@% h[0%h\ %h]%h^%h_%h`%ha%hb%hc%hd%he%hf%hgp%hh`%hiP%hj@%hk0%hl %zhm%rhn%jho%bhp%Zhq%Rhr%Jhs%Bht%:hu%2hv%*hwp%"hx`%hyP%hz@% h{0%h| %h}%h~%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%h P%h @%h 0%h  %zh %rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h %h!%h"%h#%h$%h%%h&%h'p%h(`%h)P%h*@%h+0%h, %zh-%rh.%jh/%bh0%Zh1%Rh2%Jh3%Bh4%:h5%2h6%*h7p%"h8`%h9P%h:@% h;0%h< %h=%h>%h?%h@%hA%hB%hC%hD%hE%hF%hGp%hH`%hIP%hJ@%hK0%hL %zhM%rhN%jhO%bhP%ZhQ%RhR%JhS%BhT%:hU%2hV%*hWp%"hX`%hYP%hZ@% h[0%h\ %h]%h^%h_%h`%ha%hb%hc%hd%he%hf%hgp%hh`%hiP%hj@%hk0%hl %zhm%rhn%jho%bhp%Zhq%Rhr%Jhs%Bht%:hu%2hv%*hwp%"hx`%hyP%hz@% h{0%h| %h}%h~%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%hп%h%h鰿%h頿%h鐿%h逿%hp%h`%h P%h @%h 0%h  %zh %rh%jh%bh%Zhо%Rh%Jh鰾%Bh頾%:h鐾%2h逾%*hp%"h`%hP%h@% h0%h %h%h%h%h %h!н%h"%h#鰽%h$頽%h%鐽%h&逽%h'p%h(`%h)P%h*@%h+0%h, %zh-%rh.%jh/%bh0%Zh1м%Rh2%Jh3鰼%Bh4頼%:h5鐼%2h6逼%*h7p%"h8`%h9P%h:@% h;0%h< % h=% h>% h?% h@% hAл% hB% hC鰻% hD頻% hE鐻% hF逻% hGp% hH`% hIP% hJ@% hK0% hL %z hM%r hN%j hO%b hP%Z hQк%R hR%J hS鰺%B hT頺%: hU鐺%2 hV逺%* hWp%" hX`% hYP% hZ@% h[0% h\ % h]% h^% h_% h`% haй% hb% hc鰹% hd頹% he鐹% hf逹% hgp% hh`% hiP% hj@% hk0% hl %z hm%r hn%j ho%b hp%Z hqи%R hr%J hs鰸%B ht頸%: hu鐸%2 hv逸%* hwp%" hx`% hyP% hz@% h{0% h| % h}% h~% h% h% hз% h% h鰷% h頷% h鐷% h逷% hp% h`% hP% h@% h0% h %z h%r h%j h%b h%Z hж%R h%J h鰶%B h頶%: h鐶%2 h逶%* hp%" h`% hP% h@% h0% h % h% h% h% h% hе% h% h鰵% h頵% h鐵% h逵% hp% h`% hP% h@% h0% h %z h%r h%j h%b h%Z hд%R h%J h鰴%B h頴%: h鐴%2 h逴%* hp%" h`% hP% h@% h0% h % h% h% h% h% hг% h% h鰳% h頳% h鐳% h逳% hp% h`% hP% h@% h0% h %z h%r h%j h%b h%Z hв%R h%J h鰲%B h頲%: h鐲%2 h進%* hp%" h`% hP% h@% h0% h %h%h%h%h%hб%h%h鰱%h頱%h鐱%h週%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zhа%Rh%Jh鰰%Bh頰%:h鐰%2h逰%*hp%"h`%hP%h@% h0%h %h%h%h%h%hЯ%h%h鰯%h頯%h鐯%h逯%hp%h`%h P%h @%h 0%h  %zh %rh%jh%bh%ZhЮ%Rh%Jh鰮%Bh頮%:h鐮%2h逮%*hp%"h`%hP%h@% h0%h %h%h%h%h %h!Э%h"%h#鰭%h$頭%h%鐭%h&逭%h'p%h(`%h)P%h*@%h+0%h, %zh-%rh.%jh/%bh0%Zh1Ь%Rh2%Jh3鰬%Bh4頬%:h5鐬%2h6逬%*h7p%"h8`%h9P%h:@% h;0%h< %h=%h>%h?%h@%hAЫ%hB%hC鰫%hD頫%hE鐫%hF逫%hGp%hH`%hIP%hJ@%hK0%hL %zhM%rhN%jhO%bhP%ZhQЪ%RhR%JhS鰪%BhT頪%:hU鐪%2hV逪%*hWp%"hX`%hYP%hZ@% h[0%h\ %h]%h^%h_%h`%haЩ%hb%hc鰩%hd頩%he鐩%hf逩%hgp%hh`%hiP%hj@%hk0%hl %zhm%rhn%jho%bhp%ZhqШ%Rhr%Jhs鰨%Bht頨%:hu鐨%2hv逨%*hwp%"hx`%hyP%hz@% h{0%h| %h}%h~%h%h%hЧ%h%h鰧%h頧%h鐧%h逧%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%ZhЦ%Rh%Jh鰦%Bh頦%:h鐦%2h逦%*hp%"h`%hP%h@% h0%h %h%h%h%h%hХ%h%h鰥%h頥%h鐥%h逥%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%ZhФ%Rh%Jh鰤%Bh頤%:h鐤%2h逤%*hp%"h`%hP%h@% h0%h %h%h%h%h%hУ%h%h鰣%h頣%h鐣%h連%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%ZhТ%Rh%Jh鰢%Bh頢%:h鐢%2h逢%*hp%"h`%hP%h@% h0%h %h%h%h%h%hС%h%h鰡%h頡%h鐡%h逡%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%ZhР%Rh%Jh鰠%Bh頠%:h鐠%2h造%*hp%"h`%hP%h@% h0%h %h%h%h%h%hП%h%h鰟%h頟%h鐟%h速%hp%h`%h P%h @%h 0%h  %zh %rh%jh%bh%ZhО%Rh%Jh鰞%Bh頞%:h鐞%2h逞%*hp%"h`%hP%h@% h0%h %h%h%h%h %h!Н%h"%h#鰝%h$頝%h%鐝%h&逝%h'p%h(`%h)P%h*@%h+0%h, %zh-%rh.%jh/%bh0%Zh1М%Rh2%Jh3鰜%Bh4頜%:h5鐜%2h6逜%*h7p%"h8`%h9P%h:@% h;0%h< %h=%h>%h?%h@%hAЛ%hB%hC鰛%hD頛%hE鐛%hF逛%hGp%hH`%hIP%hJ@%hK0%hL %zhM%rhN%jhO%bhP%ZhQК%RhR%JhS鰚%BhT頚%:hU鐚%2hV通%*hWp%"hX`%hYP%hZ@% h[0%h\ %h]%h^%h_%h`%haЙ%hb%hc鰙%hd頙%he鐙%hf這%hgp%hh`%hiP%hj@%hk0%hl %zhm%rhn%jho%bhp%ZhqИ%Rhr%Jhs鰘%Bht領%:hu鐘%2hv逘%*hwp%"hx`%hyPH=IHBH9tHHt H=H5H)HH?HHHtHHtfD=u/UH=Ht H=bh]{f.AWAVAUATUSHH|$,HT$L$L$(D$<kHcHLMALK4Ht$Hct$,LkIfIHHILNMPDAIHLAf(IIDf2HAf0LfYfCMf^XfXL9uʼnȃt+ALcDB1DHcHBYD^XBXLIC I9L$FLl$(Lt$<$AUH MLt$(H5H=L|$DAWLL$0#H$H HcL$(~C1ffDT$,LHcf.Q^A H9I$MLAUHgH=dPHAWLL$0萦H$H dT$(X~1fۋD$,A fWHf.Q^A H9ƅDl$,$BMHs1D$AIcAL4HcL<A9AfELAA9Df(K,1ff(HfTf<HfYf^XfXH9uDB D9t HcHA Y ^XAXAADILABA9FD$IXHH[]A\A]A^A_f(1BDf(D$HD$\$ L$\L$HD$HcL$(\$ ^A H9\$L$L$T$(~\$^A H91AWf(f(IAVIAUIATIULSLHx"DD~H$f(fA/fD(fAT8D^DYfATfEfE/Bf/H$fTfUfVfA/w:fE/A}A6A/H$Hx[]A\A]A^A_@A<$u+fE(D'f(DL$(D\t$ A\d$l$fA(DT$PY|$HDd$@Dl$8T$0^XX\$D~yf(D$fATd$l$f(D$D~Ff(fD(t$ DL$(D^^^YAYfE\fD.QT$0Dl$8Dd$@|$HDT$PYfD/vfWD^f(\$\XX X^DXA^YAXfD(E\fETYYAXf(A\fATfA/H$fA(Df(D\$@\Y?t$0A\d$l$DT$8|$(^DL$ XX\$-D~f(D$fATd$l$f(D$D\$@f(f(t$0D~^^Y^Y\fD.QDL$ |$(DT$8YfA/vfW.f(\$f(H$\\fA/XXf(^X^fA(\YXf(\fATYXf(\fATfTfUfVE $AH$EA8Jf\H$YXfE(D'fD(\$`D\T$XDY-WE\DL$Pt$@D\$hDT$HE^|$8Dd$0d$l$DXDXDl$3D~f(D$fATl$d$L$fD(D\$hfD(l$ ^f(Dt$D\$d$(A^YE^AY\fA(D\$Dt$l$ t$@fD.DL$PD~1T$X\$` Qd$(Dd$0|$8DT$HDYfA(\fE(fD(fE.D\fA(EfA/E\fW \XL$E\A^fD/vf(fD(H$D\f(A^fD(D\fETYXf(\fDTąEfA/D\$0l$(t$ fATfDUA$|$fAVDL$\Y+DT$X5|$t$ f(DT$DL$l$(D\$0dDEMDD!f(A\D\$PYA!DL$HfE(t$(D\f(l$fATd$DT$@A^Dd$8|$0Dl$ XX\$oD~f(D$fATRT$d$l$f(D\$P^f(t$(DL$Hf(^Y^Y\fD.$QDl$ |$0Dd$8DT$@YfA/vfWkf(\$\XXX^AYXED\$8l$(t$ fATfDUf(|$fAVDL$DT$T$0}T$0f(f(:DT$DL$|$t$ f(l$(D\$8if.EX\XL$EXA^fD/vtYXf(yD\$0l$(t$ \$DL$EA'H$Eet$ fE(D~ 8D\$0D\l$(\$f(DL$A\l$ t$L$EMA'H$ED~l$ 8t$L$8f(D\$0l$(t$ L$DL$@E$$#El$(f(H$fE(D\$0t$ L$8DL$D\D\$@\$8T$0l$(t$ Dt$DL$EeA'H$ED~D\$@8\$8T$0l$(t$ Dt$DL$fAWAVAUATUSH(Ld$`Ht$HT$I$HMLLcE1fZfD+HD$CT$B\藡T$f(DfT f(ICf(A$M9tRB f.z@BTtff/v~HD$CT$B\T$f(A $H([]A\A]A^A_AWAVAUATAUSHH$p$t$ L$HT$ HL$pL$LD$XL$hL$DŽ$05H$$H$[$0H$[$H$[ $H$$H$[ $H$[$H$[\$TH$[\$PH$[$H$[ $4H$[$$H$[,$H$[0$HH$K4[8$H$$,[<\$0H$[@$H$[D$LH$[H\$H$[L\$H$3${sS`ch$ {$sP${Xt$sp${x$@$H$($BH$pH$x-fn$$ffn$0H$fn$fn$fbfbfnt$Pfn$flfnL$TH$fn$fbfn$fblj$fn$Hflfn@ fbfnt$fn$X$4fbfn$flX $fn$L@,fnD$0X$\$fbfbflXL@<$f$ H$$P`f$@D$f$@P$(f$@pHĨ[]A\A]A^A_H$x=.=-RL$(HH$HPL$LD$0H$HT$hH$$PY^L$(f/N$0DŽ$H$D5 $DŽ$,Y$hDD$ Eff/x$4L\$pH\$X11Hc$L$1L$pL$x HH9tXAvAAAuAf/vHAAH9u@t$,H$p8IH|$ H$E11~+DH\$pf//v AHH9uD$LT$XE11H$H$`AE1Ʌu5E1HH9t8uH\$pA\f/< HAH9u5=D$0f(D$$,D$D$D$0DŽ$DŽ$HDŽ$DŽ$D$PD$TDŽ$DŽ$LDŽ$DŽ$4DŽ$DŽ$DŽ$$(d$$$$$ $H$x8L$0H$@H$HMLHk[MLHH$H$0M[H$$ $@$, $Hf.H\$X f/H$pDD$ H$xE|!H$pH$xgH$pff/H$x=f/]2H$~L$@$ T$`d$hf(\$(fTfTҷ%f(d$8軷\$(L$@Y$T$`$ d$h\f/2EH$HH9$0JAD$JDH$H$01Hff$f\HH9uDAt!H$0HH$\H$0L$0H$LH~Y$Hf.L$8f($(fWJ  d$\$(d$$0Yr$f/D$2$DŽ$HcD$ fH$8H$8H$H$4H$\$ H$PLL$@Hcʉ$LH$@L\$(HHH$HHH$H$PLH$$4$0…!C$H$8$HH$H$ LHHL$LH$HH$HHBHHH$H$S$HcHcHVHH$QHH$ICH$pHcH$HH$XIBH$`H$D$P"$$ff/$@$DŽ$p$D$P$X$`$x%$h~%HH$P1d$HGd$LcD$P\$0Lcf(H$PDL$ D$xf(~=A@f(DŽ$D$H$`L\1H$hfD(L$L$@L$$AHD$ A:DHD$pf(\4lf/zf(fATf/f(f(ˋT$TH$8YfW H$P D$P\Ѕ~F@HADYXAƍBYBXABHI9uAyqf/gD$H$hf(HcD$,H^H$@ЅS$T$xf/]$GЉT$x@HHII95L$@$H$h$f.uf/L$pcH$XHt$ MLH$(Hd$@T$8H$PS|$T$8d$@Hc$h~/H$H1d$8T$0x|d$8T$0~5$`$x)t$@fWf(YL$h%f(|$@D$HDŽ$fWf(^$"Hcf(fD(L$Id$`AH$HcD$xIHDH$D$H$hHTH$x)!|$x9|$ A$DtAمA,$DU" @HL6D9HcHcH4M4I|4Af/v rf(LHcf/ITHDw"f(D0EA,DTf(A\$f/IcH$8H|$ XHHH4H$(H$`$f/\$`HH $H|$X,f(\>(EYf($x$`YYXYYXf(\\Ӆ YD$hHT$0d$8衮T$0f(]f(|$@d$8AۋD$fWfD(f($^$)H$$D0AH$8fH$H$4H$H$D$4DŽ$83=.@=H$H$8d$(H$t$^P$0d$($f(Y$t$0$4B$4AH|$ LD$pHc1=4LL$Xf(H$ tRH$8à f/>~1f/v+A\f/=f(Yf/v^f(HH9u$HH$H;0\$LHD$0\$(H$8H$HT$(Y\$OD$0$HT$(YfD*H$8HfH|$p,f(\>(ED$;$XL$d$`$$`=$,DŽ$D$h\$hM $$$D$I$q$H$XSL$`DHt@HcEHE~ HcωTHH9uA9|$@D;$!;Hc$L$X1L$`Ic EHE HcσTHA9݅|$ ƿ@ E#L$hIcD1L$XL$`DLcCHH9tEELcCHH9uDL$h)ȉ$L$T$P$OH$,HD$0$HcL$h1fW HT$ H$H$(L$0L$XMcBB\YB\AHH9ud$Ht$8H$L$`L$L$`H$ |$ZY$,d$ \$PD$t$h`,H$PCHcD\$`D$@L$0HL$X$HLHcHT$8T$THD$HD$A1Yf.A4HcA ADYYAXXAHH9uɍBH|$ I9uD$h\$PD$pDŽ$DL$`$xۉ$HT$8D$@\$8H$PL$0LH\$T$T$L$XAf(f(1E@A4AHDHcA\YAYXXH9uY͍B|$  HI9u$\$8d$@HH5{H=v$H$$H$HHD$8It$0L$AW$`AWL$8e~$LH d$@-T$POʃ~6H$PHHffWH@H9uȃtH$PHHfWd$@HIH=t$0HAW$`AWL$8HL$X}D$LH d$@EpHc$xD$pHT$H$PL$@DT$TL$0$L$XH DE1D@E EMcCDYC Y ^AXXAHH9učBAHH|$ D;D$P|L$@L$H$0Hd$%LH$xL$p$^$$HIHLH$HH$(G$xd$}7H$XH$0H$hH\$@HHd$8HHD$D$0L$@.*SHHH9\$hHc;H$L$(EHd$N$L$d$`$HDŽ$f(yDŽ$D$P$D$`D$x$ D$xNH$ HcT$H]AwH$HD$@D$H$$$LHDHD$0)H$hHL$@Ld$(L D$TD$81fDDD$8L\$@1H$T$TD$ELf.D$q H$hf(f(AfDHB HcHADAYDXAAYXI9uD9|$ H|$0f(f(AfHA4HcHcADAYDXAAYXI9uAX B|$ \A M\XL;l$D$8HD$@|$ T$8;l$x\$ L$@H$h؉D$9kH$H$L$@$H$hLHDHD$0$+D$HЋT$TL H$\$ T$8HD$@A܉DD$8L\$@DT$TENjD$f(̅~;H$hf(AfHB4HcHAAYDXI9uD9|$eHt$0f(AHA<HcHcAAYDXI9u9AX \A BL\$(A9\$AD$8HD$@AT$8;l$ L$@H$h$DT$`$E~HcT$`H$H$H$$IHH4H$ HH$^H$ Y4H$H|$(41HHA9H$DL$`H$XH$A$AqHH$L$L$H$L$HD$`~L$f(HcΉt$fH LH$H$@H$H$LJL$H$Hc$IAH$H$8HD8H$ HH$H$Ht$Dp449D|$,DxH8pff.sff.;zff.kAff. ff.cff.Pff.kff.+eff.@ff.;ff.*ff.[Aff.cff.˃ff.Jff.Uff.;{ff.cff.yff.雈ff.+;ff.kCff.黉ff.lff.Yff.+_ff.iff.[ff.[4ff.pff.+*ff.$ff.Dff.%ff.^ff.{ff.;uff."ff.;Pff.aff.)ff.[_ff.0ff.|ff.fff.{|ff.;iff.[Aff.xff.cff.2ff.{hff.=ff.\ff.Mff.[ff.{Uff.{#ff.Kff.鋄ff.cff.uff.^ff.yff./ff.&ff.k~ff.iff.+&ff.k5ff.Eff.~ff.Gff..ff.;aff.[pff.nff.[ff.;^ff.3ff.uff.(ff.kff.ff. ~ff. Nff.Iff.xff.8ff.[@ff.K&ff.Tff.ff.~ff. 8ff.uff.!ff.{tff. &ff.sff.=ff.+7ff.鋂ff.yff.$ff.{{ff.;pff.[(ff.kkff.^ff.ff.{*ff.-ff.mff.&ff.;!ff.{Wff.;Pff.(ff.[off.+Uff.Kff.Pff.Lff.`ff.ff.+|ff.#ff.pff.+Zff.|ff.kpff.(ff.{8ff.+Hff.Cff..ff.k`ff.;kff.;Vff.)ff.;Rff.ff.[Rff.Xff.~ff.Dff.Eff.Tff.[^ff.Kxff. Yff.Lff.[8ff.Dff.Sff.;ff."ff./ff.;ff.{Pff.k]ff.kTff.{/ff.[)ff.Kff.KHff.iff.Bff.?ff.=ff.{mff. ff.!ff.4ff.;dff.Eff.;Yff.Bff..ff.Off.Fff.+Vff.K+ff.[=ff.wff.K^ff.;kff.)ff./ff.Lff.Jff.ff.+rff.Kff.]ff.+ff..ff.K=ff.$ff.{"ff.)ff.0ff.k\ff.+ff.K)ff.[eff. ff.#ff.2ff.Sff./ff.Xff.!ff.Uff.5ff.+ff.>ff.k@ff.Zff.{Aff.{aff.#ff.ff.+vff.1ff.[6ff.[tff.,ff.ff. Xff. Fff.;Kff."ff.lff.tff.Zff.[ff.0ff.K\ff.[ff. 7ff.Pff.Off. 7ff.kUff.Off.:ff.ff.(ff.Cff. +ff.*ff.:ff.Gff.[ff.,ff.ff.Kff.7ff.K`ff.3ff.ff.{ff.ff.(ff.{&ff.;aff.iff.;.ff._ff.Xff.8ff.kff.kfff.+7ff.tff.ff.)ff.mff.9ff.]ff.Kff.ff.ff.Qff.fff.K:ff.{Xff. Off.[Dff./ff.[ff.[iff.k>ff.fff.fff.ff.#ff.Pff.Uff.>ff.ff.*ff.Rff.ff.;ff.+ff.Dff. 7ff.;dff. ff.6ff.[ff.fff.kWff.Vff.;off.jff.,ff.]ff.iff.6ff. Kff.Kqff.-ff.Lff.[mff.;iff. Hff.lff.1ff.Kgff.=ff.kff.[iff.[Aff.5ff.[ff.ff.;mff.fff. ff.ff.{ ff.+ff.[Vff.[:ff.%ff.Kkff.3ff.;=ff.Kcff.cff.Nff.!ff.;3ff..ff.ff.Dff.+jff.kQff.=ff.;Uff.ff.+nff. Vff. ff.{nff.,ff.bff.kYff./ff. mff.;0ff.ff.;Off.Sff.;9ff.[!ff.^ff. Dff.{?ff.[Mff.k)ff.[ff.KYff.ff.cff.;Zff._ff.k7ff.K-ff.KYff.hff.{ff.;2ff.6ff.[,ff.kQff. Lff.^ff.3ff.ff.1ff.ff.@ff.Nff.;Mff.ff.KXff.6ff.3ff. ff.[6ff.Kff. ff.Sff.{ff.ff.KIff.;Yff.Kff.ff.k/ff.[ff.bff.{ff.,ff. ff.;ff.ff.Kff.5ff.{$ff.{Jff.:ff.;6ff.+)ff.[>ff.)ff. ff.KQff.0ff.ff.k#ff.ff.kff.!ff.+Dff.-ff.8ff.;*ff.+ff.kff.ff.{ff.Uff.[ff. ff.Off.Nff. ff.[:ff.ff.;Dff.?ff.KEff.;ff.;8ff.Dff.Kff.Wff.;ff.ff.[ff.&ff.(ff. ff.;Gff.[ff.[.ff.+ff.K)ff.2ff. ff.{ff.9ff.ff.0ff.-ff.{ff.ff.Jff.{6ff.>ff.'ff.Dff. ff.Nff.ff.{ ff.1ff.[?ff. ff.;Yff.[-ff.ff.kff.ff.'ff.!ff.ff.Tff.Wff.[Lff.Fff. Qff. ff.ff.ff.ff.[ff.ff.ff.ff./ff.Kff.{?ff.ff.,ff.ff.ff.2ff. ff. 2ff.Eff.{'ff.%ff. Jff. Gff.k8ff.ff.ff.K"ff.Aff.8ff.;Eff.ff.ff.[&ff.;5ff.)ff.-ff.{9ff.ff.ff.9ff.+ ff.ff.'ff.+9ff.3ff.;ff. ff.{+ff.Cff.(ff.{Iff.ff.Eff.ff.+Cff.;Off.{Fff.{ff.+ff.Jff.@ff. ff.k@ff.ff.{ff.Hff.'ff.7ff.KKff.ff.+ ff.ff.[.ff. ff. *ff.ff.&ff.[ff.Fff.kff.ff.5ff.Kff.Hff.kLff.[ff. -ff.[ff.kff.;ff.K$ff.ff.Kff.ff.*ff.6ff.6ff.*ff.+%ff.;ff. ff.;ff.kff.{ff.Aff.ff.kff.;ff.[ff. 3ff.{ff.ff.ff. ff.k7ff. Cff.2ff.{ff.ff.+ff.kKff.kff.[ff.[!ff.;ff.[)ff.ff.{%ff.;ff.?ff.;:ff.;!ff.ff..ff.ff.[ff. 9ff.ff.ff.;&ff.[ff.2ff.kff.ff.[ ff.Kff.ff.ff.+ff.ff.;@ff.[)ff.k ff.ff.ff.; ff. ff.ff.6ff.6ff. "ff.ff.ff.+ff.{?ff.8ff.5ff.{Dff.+ff.Aff.+!ff.1ff.;Dff.kff.k1ff.ff.K ff.{ff.+ff. ff.ff. ff.Kff.ff.ff.;ff.[=ff.Fff.[ff.kff.ff.Eff.8ff.)ff.+ff.ff.ff.-ff.Kff.ff.+*ff.{ff. ff.[@ff.ff.Aff.2ff.{ff.>ff.;ff.ff.ff.6ff.ff.ff. !ff.Kff.ff.Cff.{Bff.@ff.{ff.Dff. ff. ff.Aff.Kff.ff.K*ff.ff.;*ff.#ff.kff.(ff.K+ff.[!ff.ff.[ff.;,ff.1ff.9ff.ff. ff.ff.;ff.[%ff.ff.ff.ff.ff.ff.ff.ff.ff.[ff.Kff.;ff.,ff.{ff.kff.ff.ff.{ff.ff.ff.{ff.kff.ff.+0ff.{ff.!ff.{5ff.ff.+ff.;ff. ff. ff.ff.-ff.8ff.{ff.;(ff.kAff.ff.{%ff.[ff.4ff.ff.@ff.+ff.ff. ff.ff.8ff.;ff. "ff.k ff.Kff.ff.;ff.ff.[ ff.K?ff.ff.ff.ff.3ff.5ff.[ff.{ff.-ff.ff. ff.+ff.ff. ff.ff. ff.;ff.+=ff.Kff.%ff. 3ff.Kff.ff.+3ff.ff.7ff.ff.(ff. ff.ff. ff."ff.;ff.ff.[ff.{ff.[ff.[ff.ff.!ff.ff.;ff.ff.ff.ff..ff.kff.6ff.K5ff.ff. ff.;9ff.-ff.+ff.kff.[ff.ff.k4ff.ff.+ff.ff.ff. ff.ff.{ ff.[ff.ff.9ff. 'ff.ff.ff.ff.ff.;ff.ff.ff.ff.+ff.!ff.k%ff.ff.{ff.-ff.;5ff.kff.9ff.*ff.1ff./ff.Kff.!ff.ff.ff.ff.ff. ff. ff.ff.ff.ff.ff.ff.[ff..ff.ff.ff.ff.{!ff.ff.k9ff.$ff.7ff.ff.ff. ff.k+ff.ff.Kff.ff.[ff.kff.ff.k ff.+ff.4ff. ff.;%ff.&ff.ff.ff.4ff..ff.;ff. ff.;ff.8ff.ff.ff.ff.ff.+ff.ff.;ff.ff.+ff.ff.ff.;ff. ff.{ff.+ff.[-ff.+ff. ff.ff.ff.{ff.ff.[ff.ff.ff.$ff.;ff.ff.kff. .ff.+ff.ff.kff.ff.+ff.ff.ff.K/ff.+ff.[ff.+ff.;ff.+ff.[%ff.k3ff.{ff.Kff.;0ff.ff.+ff.[ff."ff.ff.ff.{ff.&ff.ff.ff.;ff. ff.+ff. ff.Kff.2ff. ff.Kff.[ff.'ff.;ff.ff.&ff.ff.;ff.[ff.kff. ff./ff. ff.ff.ff.ff.{ff.ff. ff.+ ff.ff. ff.ff.[-ff.&ff.ff.ff.kff.ff. ff.ff.kff. #ff.ff.ff.Kff.;ff.; ff. *ff.ff.ff.Kff.ff.[ff.ff.;'ff.0ff.;ff. ff.[ff.*ff.+ff.ff.+ff.{(ff.ff.ff.K/ff.ff.ff.ff.{ff.ff.ff.ff.ff.ff.{ff.kff.Kff.ff.ff.*ff.ff.ff.ff.ff.ff.ff.K)ff.Kff.[ff.+ff.ff. ff.ff.[ff.ff.ff. ff.{ff.ff.ff.ff.ff.ff. ff.;ff.ff.;ff.ff.kff. ff.{ff. ff.ff.Kff.ff.ff.;ff.ff.ff.ff.ff.)ff.ff.(ff.ff.Kff.ff.ff.ff.{ff.ff. ff.Kff.ff.ff.{ff.;ff.)ff.ff.+ff.ff.ff.(ff.ff.+ff.ff.Kff.ff.ff.ff.[ff.ff.kff.+ ff.[ff.ff. ff.ff.Kff.ff.+ff. ff.ff.+ff.ff.ff.ff.ff. ff.;"ff.ff.ff.&ff.[ff.[ff. ff.ff. ff.ff.Kff.ff. ff.;ff.Kff.; ff.ff.ff.$ff. ff.ff.ff.[ff.ff.+ff.ff.ff.ff.ff. ff. ff.kff.ff.ff. ff.%ff.+ff.ff.kff.$ff.[ff.ff.+ff.ff.ff.+HHNTUiO!O!O!O!dO!ddO!O!O!O!O!O!iO!numpy._core._multiarray_umathnumpy.core._multiarray_umath_ARRAY_API_ARRAY_API is NULL pointer_lbfgsb.error_lbfgsbsetulb Argument (x) must be a contiguous array of type float64. Argument (l) must be a contiguous array of type float64. Argument (u) must be a contiguous array of type float64. Argument (wa) must be a contiguous array of type float64. Argument (iwa) must be a contiguous array of type int32. Argument (dsave) must be a contiguous array of type float64. Argument (nbd) must be a contiguous array of type int32. Argument (task) must be a contiguous array of type int32. Argument (lsave) must be a contiguous array of type int32. Argument (isave) must be a contiguous array of type int32. Argument (ln_task) must be a contiguous array of type int32._ARRAY_API is not PyCapsule objectmodule compiled against ABI version 0x%x but this version of numpy is 0x%xmodule was compiled against NumPy C-API version 0x%x (NumPy 1.23) but the running NumPy has C-API version 0x%x. Check the section C-API incompatibility at the Troubleshooting ImportError section at https://numpy.org/devdocs/user/troubleshooting-importerror.html#c-api-incompatibility for indications on how to solve this problem.FATAL: module compiled as unknown endianFATAL: module compiled as little endian, but detected different endianness at runtimenumpy._core.multiarray failed to import@?Q?? _BH>X,>h@>xT>h>|>>>ȉ>؉>>>??(0?8D?HX?Xl?h?x?????Ȋ?؊ @ @4@H@\@(p@8@H@X@h@x@@@A$Aȋ8A؋LA`AtAAA(A8AHAXAhBxB(B P^A_IHAI]BIGA]jKGAXIB$DBLB B(A0A8GYAFIAIAIAIAIAIAIIIAIIAIAIVFBGDAHAGEHFAEMMMPMOMMMPGGAS` 8A0A(B BBBJ 8 JBHD ' DBE u DBE L|LxL(tL<pLPlLdhLxdL`L\LXLTLPLLLHLDL,@L@@ >@4>@H>@\>@p>@>@>@>@>@>@>@>@?@$?@8?@L?@`?@t?@?@?@?@?@?@?@@|@@x@(@t@<@p@P@l@d@h@x@d@@`@@\@@X@@T@@P@@L@AH@AD@,A@@@A<@TA8@hA4@|A0@A,@A(@A$@A @A@A@B@B@0B @DB@XB@lB@B?B?B?B?B?B?B? C? C?4C?HC?\C?pC?C?C?C?C?C?C?C?D?$D?8D?LD?`D?tD?D?D?D?D?D?D?E|?Ex?(Et?G>G>G>G>G>G> H> H>4H>HH>\H>pH>H>H>H>H>H>H>H>I>$I>8I>LI>`I>tI>I>I>I>I>I>I>J|>Jx>(Jt>PJl>dJh>xJd>J`>J\>JX>JT>JP>JL>KH>KD>,K@>@K<>TK8>hK4>|K0>K,>K(>K$>K >K>K>L>L>0L >DL>XL>lL>L=L=L=L=L=L=L= M= M=4M=HM=\M=pM=M=M=M=M=M=M=M=N=$N=8N=LN=`N=tN=N=N=N=N=N=N=O|=Ox=(Ot=0 [MXL  @)EB/ @PP20(!`JC?P9I  O@ P2p6N`0 h[ТP~PP%H0C:1pYi#Y@P:>pH+,*F`E3/(Фi*0IGU)3LHp"p-+[p4E  MpP&P@'WP0;PH)H )p A`G Z%J@:IB'pIVPD7@3{ m%pL`/A`IY0JQ (U.!p}32PI?PGP{!0mEPG@7@6.d0E" ;-0x,P>`pZl(ЭMU9/`H1JV[ U A6`7`f&KP@@ 5 P;7p: G-FPQ%Д> "\D!p,^/P"} .NOe-P`(\O0)E-0{ XCNP o`(0@@- гNPF,A(-@$#`<GP'PERCzSj jHа$0c+ WWp-$3GIR`6'0 Y`OO ;\WV0@ )@bX&3PБ{A`G9:pN LC [() IНZ0t2F021`&/=p-VPG %#,`3F. PXE!"N,B@B7VP0,B]H VPZШ<к.ZpI0I`UI`L`3PV+>@% K REQ?РPl8`r)`R/p+`H<ЮPDPWRi(5: ;Y #F $+^50LF@<K&r" 'W@GЖ   AI 6Y/pFP''`S`k[ OHQ&0,6Л^SУ7 RUp&A:1LeЯH5`H$Cr7T `4@E0<&@ECЍZTP, !Х6 `*PX vNЙp\ (YJГ5X 6Y`5;G =V`kQ`eV 2'paPC%) RZ V#L0 9lC `M&@(@7Kp9` 0?P34tXJZPp /0'l5$*VPM SD0@EaRRYQ?]F@.2O`8=!$A?@rP.R@Y-PU`90`>i0K@7pD.@@G$#`z/Pd);`cI?eG%$2* p<> 5Wo B$E   e>|'@(NPOPIPN? 0-@3 R07p>T"X[pйMLIOyFW(j@7E X>P<pFr9p/P`;% G&S@r<1TPT O@lS ,0= 1  i`8@'P D@L(КRp3H@w p9@EY eZPBS7)a.P;  PS 06@ J_ O&S@m? W-BP}MPtB6C`[Ws pN @O:Q nTp# 0$3#($%,@0'Xg 0 ;0 k=w(SЦp!R)D 6PP0K e x36 +$.'px[PaM@z6SI0PWW`A9m4"PK@`6U<RNYX@UP9t&0G,9Ь&c@[@H`\,%< fX X20]:ЎV0_>9`Z@AQ Y3:6!PsZ3DUА/A,PCX 0еN`[@c\0WP иB0mn^CTpkF> D'B0,<@XZЏY@24573P/06>4 QqR0p,1y: Mp$O`@ZL=@&U@ x *+ppVA@T,@2OK.G 3Q0U`%6V)0{U;a3fB @r`I`?p9PIPy8@+@2]Q\0HMpV7_?s>UW u@$*-7PG`pqP@TDhA Qp8;V';оAQLV{%K3 !!p4@+`@&;BYP@ Q;0@q+Mp  (pl/k* O4[+>=p12@I-@pA`"7+p8Е-.pQ`5j`z5B-  <BW,p*E`%:Wp  + C0:+з~ пNOF &p  .l6@Ns0HP,IH)?IR0A#d1``dR@B%- >P^pS08p*дPO0_p67 "0P=D/D|P"]0P51 W @) IR' AJG` Ep|YppC c9@ +@=(PY@Pp&`3Jp p"HP9М5 6p&J>0k:pIA[ XP"СS.`A>p\4p23:AHA@8xQV$p PWI 0 жJVd@2$N0s `@}.@ !P`[PUu И=AHpG`*1`*(?`KDpL# 8\ )p58vC@nY d7>О?LX+C8RPgy;Њp %Pc{4S 0 $Qp< P-000 WB 7CO4e@J4^6;R Y vLp$*M{-%K``Tp&>@DDC V(.Z0s- `uTOQW00s0 л1>0VPM=ppBP:)  [+3@mU:ph04@B5/  U`C;>-- &5+`0]I Z0`|Kn w*PKRЫ7 GPF0=#, Q" S3RI\h=;ЌCEEF3`x @@\P%:PL :90gD@ 00Ve  3W*%7= S 0PE'8`VP0.PA:@@*0}=@:-@80j,@:[L09H`5W _;03@  :<!PJ H;$@SK(76wO >+SM&"Ч-\ЋZ=@)%6%0#@M00 )_%@Np)\`wPS Q/@; e0qI'yNVp) _Up)  Z H<p #!6?L0P4- 8;ЗB;@G .@!(0!@P/``'AKa1\#O#2~\S4PLdPPZ@XP0jO`1="0M "D Z0% p7P.-V@,)pQOK <в)T/.>0=M0IQ ** 5I7tDP5X0O[oMZp%.&@zCP@34XNAZ`SM_!V12<@V\ ][`@y90Q4P50@p`4nKЩ)`?DD ,p,U;P0xv0Gб C0&[N`r$YD1`pX&!m!'!P,Pr10;QzmqAw0RВ .=KZlz#1>KYgu#1?LYgu &4BO]ky-AN\jx .;IWes '5AO]ky   + 9 G U c q             ( 6 D R _ m {            # 1 ? M [ h u             - : H V d r             ) 7 E S a o }           &4CQ_n| $1?LYgu %3AP^lz -;HVdr '5CP^lz$1?M[iw*8FSap}"0=KZhv+9GUcq %2@MZhv .<JXft+9GTbp~ &4BQ_mz,:HVcq} &4AO[iw-;IWdr  )7EQ_m|#0>L[iw  ' 5 C Q _ m z          !!"!0!>!L!Y!g!u!!!!!!!!!!""")"7"E"R" l"y""""""""""###-#;#I#V#c#q########### $$'$5$B$P$^$l$z$$$$$$$$$$%%#%0%=%K%Y%g%u%%%%%%%%"%% &&(&6&E&R&`&n&|&&&&&&&&&&''!'0'>'L'Z'h'v''''''''''((()(7(E(U(c(q((((((((((( ))&)4)B)P)^)l)z))))))))))***,*:*H*V*c*q*********** ++'+4+B+P+]+l+y++++++++++,,,-,;,H,V,d,r,,,,,,,,,,, --'-5-C-Q-_-m-{----------..".0.>.M.[.h.y..........// /./>(>6>D>R>_>m>{>>>>>>>>>>??"?0?=?K?Y?g?v??????????@@@*@8@F@S@a@o@|@@@@@@@@@@ AA&A4ABAPA]AjAxAAAAAAAAAA BB'B5BCBQB`BnB|BBBBBBBBBBCC#C1C?CKCXCfCtCCCCCCCCCCDDD)D7DEDSDaDnD|DDDDDDDDDDEE#E1E?EMEZEgEuEEEEEEEEEEFFF-F;FIFWFeFsFFFFFFFFFFF GG(G5GCGQG_GmGzGGGGGGGGGGHHH-H;HIHWHdHrHHHHHHHHHHH II&I3IAIOI]IkIyIIIIIIIIIIJJJ-J;JIJWJmJ{JJJJJJJJJJKKK-K;KIKWKhKvKKKKKKKKKKLLL+L9LGLULcLpL~LLLLLLLLLL MM%M3MAMMM[MiMwMMMMMMMMMMNN"N0N=NKNYNeNsNNNNNNNNNNOOO,O:OHOVOdOqOOOOOOOOOOO PP)P5PCPPP^PkPxPPPPPPPPPPQQQ-Q;QIQWQeQrQQQQQQQQQQQ RR(R5RCRQR^RkRyRRRRRRRRRRSS S.SUKUYUgUuUUUUUUUUUUU VV'V5VCVQV_VmV{VVVVVVVVVVWW!W/WYLYZYhYvYYYYYYYYYYY ZZ(Z6ZDZRZ_ZmZzZZZZZZZZZZ[[ [.[;[I[W[e[r[[[[[[[[[[[ \\'\5\C\P\]\j\x\\crtstuff.cderegister_tm_clones__do_global_dtors_auxcompleted.0__do_global_dtors_aux_fini_array_entryframe_dummy__frame_dummy_init_array_entry__lbfgsb.cbmvdcstepprojgrmainlblbfgsb_setulbPyArray_APIlbfgsb_errormoduledeflbfgsb_module_methodsdoc_setulbblas_lapack_wrappers.c__FRAME_END____GNU_EH_FRAME_HDR_fini_GLOBAL_OFFSET_TABLE___TMC_END____dso_handle_DYNAMIC_initscipy_zlapmt_scipy_cgbtrf_scipy_dgelsy_scipy_zgemm_scipy_dlantp_scipy_ztrcon_scipy_zpocon_scipy_dlaqr4_scipy_sspcon_scipy_slarrb_scipy_zpptrf_scipy_sdisna_scipy_cgemqrt_scipy_zher2k_scipy_slartgp_PyExc_ImportErrorscipy_zlarnv_scipy_clantb_scipy_ssbgvd_scipy_dtpqrt_scipy_slaqge_scipy_icamax_scipy_zhetrs2_scipy_cgesvd_scipy_zlartv_scipy_cptrfs_scipy_zbdsqr_scipy_dgelq2_scipy_cgebd2_scipy_slasd6_scipy_zposv_scipy_ztrsv_scipy_csptrs_scipy_zlaqr5_scipy_dggqrf_scipy_ssfrk_PyDict_SetItemStringscipy_dormhr_scipy_dppequ_scipy_strevc_scipy_slaed7_scipy_dggrqf_scipy_chseqr_scipy_zgeqrt_scipy_dormtr_scipy_dpotri_scipy_cunm2r_scipy_checon_scipy_dlasdq_scipy_dtrmm_scipy_crotg_scipy_slamch_scipy_dsytrd_scipy_srotmg_scipy_sgbcon_scipy_dtrsm_scipy_dlaed6_scipy_dggesx_scipy_csyrk_scipy_cheevr_scipy_ztrtri_scipy_zpotri_scipy_dpotf2_scipy_cher_scipy_zhpr2_scipy_clarfb_scipy_cspcon_scipy_dpotrf_scipy_csymv_scipy_dlasda_scipy_ctrsen_scipy_ztpqrt_scipy_dlarrb_scipy_slagtm_scipy_spbcon_scipy_cgbequ_scipy_crot_scipy_strexc_scipy_cpbsvx_scipy_sormtr_scipy_dgeql2_scipy_cstemr_scipy_dlasyf_scipy_shsein_scipy_slauum_memset@@GLIBC_2.2.5scipy_dsygv_scipy_sorm2l_scipy_strrfs_scipy_dlaqsb_scipy_ssbgvx_scipy_ztprfb_scipy_cpotrs_scipy_shgeqz_scipy_dlaln2_scipy_slasd0_scipy_ssbgst_scipy_cggglm_scipy_zlansp_scipy_sgsvj0_scipy_dspcon_scipy_dsbevx_scipy_sgelq2_scipy_ssymv_scipy_ztfttr_scipy_dlaqr1_scipy_sggglm_scipy_ssyr2k_scipy_clatrz_scipy_sorglq_scipy_ztbsv_scipy_iladlc_scipy_sgeql2_scipy_ccopy_scipy_sgebrd_scipy_sorgql_scipy_dlasq4_scipy_slaexc_scipy_zlantb_scipy_clarrv_scipy_slag2d_scipy_dsterf_scipy_drot_scipy_zlatrd_scipy_dpocon_scipy_cungrq_scipy_zgtrfs_scipy_slals0_scipy_dlarre_scipy_dlagtf_scipy_cgecon_scipy_zher_scipy_slarre_scipy_dtpsv_scipy_sptts2_scipy_zscal_scipy_sspgvx_scipy_izamax_scipy_clascl_scipy_cgghrd_scipy_cgesdd_scipy_dlaswp_scipy_clag2z_scipy_slaic1_scipy_sormqr_scipy_spftri_scipy_sgeqrfp_scipy_cher2k_scipy_slaed5_scipy_dtgsja_scipy_ctrrfs_scipy_sgbtrf_scipy_ztrti2_scipy_zlapll_scipy_dgeqrfp_scipy_zpotrf_scipy_zlarzt_scipy_ctbsv_scipy_zppsvx_scipy_zhpevx_scipy_cgbcon_scipy_csysv_scipy_slaqr5_scipy_zdscal_scipy_dgerqf_scipy_ztptri_scipy_claqr4_scipy_slarrj_scipy_dsytrf_scipy_dgebak_scipy_sopmtr_scipy_sggbak_scipy_dormql_scipy_slacn2_scipy_slasrt_scipy_zuncsd_scipy_dlanhs_scipy_slaln2_scipy_slar1v_scipy_dtrtri_scipy_chegv_scipy_ztrmm_scipy_zlaed0_scipy_sstedc_scipy_ilazlr_scipy_zsytri2x_scipy_zsprfs_scipy_dgetrs_scipy_dsgesv_scipy_dtzrzf_scipy_zsytri2_scipy_dlae2_scipy_dlanv2_scipy_dggbak_scipy_dpbcon_scipy_cgbsv_scipy_slaqr2_scipy_zhptri_scipy_zgecon_scipy_sspevd_scipy_stgsen_scipy_zhpgst_scipy_dlaruv_scipy_cpotrf_scipy_zlacon_scipy_zhfrk_scipy_dlaqps_scipy_dtpqrt2_scipy_cpoequb_scipy_cgeev_scipy_zpbtrf_scipy_slanv2___gmon_start__scipy_cptts2_scipy_dorgr2_scipy_zhecon_scipy_cunmr3_scipy_dgerq2_scipy_chegst_scipy_cbbcsd_scipy_slags2_scipy_ctrexc_scipy_zlasyf_scipy_zlartg_scipy_dlaeda_scipy_dgehd2_scipy_dlaqr2_scipy_dlauu2_scipy_stbcon_scipy_sgeequb_scipy_spttrf_scipy_zlaqps_scipy_zgeqr2p_scipy_sormr3_scipy_slarzt_scipy_zgeqrt2_scipy_slalsd_scipy_dsytri2_scipy_zlahr2_scipy_dlasd3_scipy_cgelss_scipy_zsptrs_scipy_zsyconv_scipy_dlartgp_scipy_zlaev2_scipy_zspmv_scipy_slatps_scipy_zgbsv_scipy_sasum_scipy_zhpev_scipy_dpbstf_scipy_chpsv_scipy_stpsv_scipy_zhegvx_scipy_cgetri_scipy_dgeqr2p_scipy_ssytrs__PyArg_ParseTuple_SizeTscipy_ssymm_scipy_dstev_scipy_dlarfgp_scipy_cpotri_scipy_clar2v_scipy_zgesv_scipy_zhetf2_scipy_zherfs_scipy_zggev_scipy_dorg2r_scipy_dsyevx_PyCapsule_Typescipy_ssyrfs_scipy_zposvx_scipy_cbdsqr_scipy_clagtm_scipy_ssyevx_scipy_dgeqlf_scipy_sorghr_scipy_dlargv_scipy_sstein_scipy_zlaesy_scipy_dgeesx_scipy_dgsvj1_scipy_chbgv_scipy_ctrmm_scipy_zpptrs_scipy_dsbgv_scipy_dgbbrd_scipy_chpev_scipy_zlaqp2_scipy_dtftri_scipy_dsygvx_scipy_sgemm_scipy_dpttrs_scipy_claqr5_scipy_clacrm_scipy_dtbsv_scipy_chegvd_scipy_ilauplo_scipy_cunghr_scipy_clalsa_scipy_ssyevr_scipy_slasd5_scipy_claswp_scipy_dgetf2_scipy_ssbevx_scipy_cgtts2_scipy_sgees_scipy_clarnv_scipy_clansp_scipy_slatrd_scipy_dormlq_scipy_sspgvd_scipy_dlapy3_scipy_cgelq2_scipy_ctpttr_scipy_slaed0_scipy_sgbtrs_scipy_ssyswapr_scipy_dlaqge_scipy_dpprfs_scipy_zgttrf_scipy_ssygvx_scipy_zhpsv_scipy_slabrd_scipy_sggrqf_scipy_zlanht_scipy_sgejsv_scipy_dorcsd_scipy_dormrz_scipy_sgesv_scipy_chprfs_scipy_stprfs_scipy_sptsvx_scipy_zlarfx_scipy_zcopy_scipy_ctpttf_scipy_sgtsvx_scipy_dlasd6_scipy_sgels_scipy_spocon_scipy_zhptrd_scipy_zungql_scipy_zggevx_scipy_cgemm_scipy_dlasdt_scipy_csytri2_scipy_cgtsv_scipy_zhpgvd_scipy_ctprfb_scipy_cgeru_scipy_dlansy_scipy_zdrscl_scipy_cgetrf_scipy_ssyrk_scipy_dlalsa_scipy_cgesv_scipy_sorgr2_scipy_dlarrk_scipy_dlacpy_scipy_sopgtr_scipy_spbsv_scipy_dlarrv_scipy_ztpmqrt_scipy_zhbgst_scipy_zhetrf_scipy_zgbbrd_scipy_sgemqrt_scipy_spotrf_scipy_slansy_scipy_sgesvd_scipy_dsygvd_scipy_csteqr_scipy_dsptrs_scipy_dlatbs_scipy_strsna_scipy_ztrttp_PyExc_ModuleNotFoundErrorscipy_slartv_scipy_claqr2_scipy_cheevx_scipy_sladiv_scipy_chbgvd_scipy_zlar2v_scipy_zsytrf_scipy_slamrg_scipy_zheev_scipy_zgeevx_scipy_sporfs_scipy_dggev_scipy_dpptrf_scipy_dgtsvx_scipy_clansb_scipy_dpotrs_scipy_dgbequ_scipy_cppequ_scipy_dnrm2_scipy_sptrfs_scipy_dswap_scipy_ssbev_scipy_zgebrd_scipy_slacon_scipy_dlaed5_scipy_chegvx_scipy_ssteqr_scipy_cung2l_scipy_stpttr_scipy_sorgbr_scipy_ssytri2_scipy_chetd2_scipy_dlartgs_scipy_clags2_scipy_sbdsdc_scipy_spstrf_scipy_dtrsyl_scipy_zsyr2k_scipy_cpbtf2_scipy_ztrtrs_scipy_zpotrs_scipy_sgelss_scipy_ztfsm_scipy_slaqsy_scipy_zhpmv_scipy_dsptrd_fmin@@GLIBC_2.2.5scipy_zhbevx_scipy_cupgtr_scipy_slargv_scipy_zhemm_scipy_sgbequ_scipy_ctrsv_scipy_zgbequb_scipy_zlauum_scipy_claed7_scipy_cppcon_scipy_zgees_scipy_slantb_scipy_dlasq3_scipy_dlaed0_scipy_cgglse_scipy_ilaclc_scipy_sstev_scipy_dtprfs_scipy_zsytrs2_scipy_sgetf2_scipy_sgeev_scipy_zhetri2_scipy_dsyevr_scipy_sstevd_scipy_zgeqp3_scipy_zlaqr1_scipy_sgesdd_scipy_cpftrf_PyInit__lbfgsbscipy_cpbtrs_scipy_dlaexc_scipy_ctrmv_scipy_zpbtf2_scipy_zgeqlf_scipy_clangb_scipy_clarzt_scipy_dspgv_scipy_cptsv_scipy_dtrevc_scipy_zgerqf_scipy_slantr_scipy_dger_scipy_ctrtri_scipy_sgesvj_scipy_cgeevx_scipy_sspsvx_scipy_chptrd_scipy_dorm2r_scipy_chpr2_scipy_zunmrq_scipy_sger_scipy_scsum1_scipy_dormrq_scipy_zggbak_scipy_zlabrd_scipy_dlarrf_scipy_dcabs1_scipy_zpftrf_scipy_ssygvd_scipy_dgeqrf_scipy_zgeqrfp_scipy_dsyrfs_scipy_cgerfs_scipy_ztrsyl_scipy_drotg_scipy_cpoequ_scipy_csyr_scipy_claqsy_scipy_dlarfx_scipy_dlatrz_scipy_zlagtm_scipy_dlabrd_scipy_dorgql_scipy_zggrqf_scipy_slaqr1_scipy_dlar2v_scipy_zlansy_scipy_dlanst_scipy_dgglse_scipy_dpbrfs_scipy_zgbtrs_scipy_sstevx_scipy_zlarcm_scipy_clalsd_scipy_dzsum1_scipy_zsymm_scipy_zgelqf_scipy_sgeqr2_scipy_zpbsv_PyErr_Formatscipy_dlarra_scipy_dhseqr__ITM_deregisterTMCloneTablescipy_sgeevx_scipy_dgghrd_scipy_zgeqrt3_scipy_sppsvx_scipy_csyswapr_scipy_stgex2_scipy_cppsvx_scipy_chpgvd_scipy_sdot_scipy_dgelss_scipy_ztgsen_scipy_dgeqrt3_scipy_clahr2_scipy_slartg_scipy_dlabad_scipy_dsymm_scipy_clartv_scipy_dlatps_scipy_clatrd_scipy_claqsb_scipy_ztbtrs_scipy_zlaqr0_scipy_sorg2r_scipy_claed0_scipy_slae2_scipy_dspevd_scipy_slasv2_scipy_zgeequb_scipy_csyr2k_scipy_dspgvd_scipy_cgesc2_scipy_dorgl2_scipy_ctftri_scipy_ssptri_scipy_zhemv_scipy_zptrfs_scipy_dstevx_scipy_slasq6_PyErr_ExceptionMatchesscipy_dsptri_scipy_dlaed3_scipy_dlaebz_scipy_slaed6_scipy_ctrsna_scipy_ddisna_scipy_sgehrd_scipy_claqhp_scipy_dtrmv_scipy_sgeesx_scipy_ztpqrt2_scipy_clacrt_scipy_csptri_scipy_dgtts2_scipy_cherk_scipy_zlanhb_scipy_zgebd2_scipy_dlapll_scipy_stfttp_scipy_ctgsen_scipy_spprfs_scipy_dlartv_scipy_zpbstf_scipy_sgelqf_scipy_ssbgv_scipy_dpptrs_scipy_slaqsb_scipy_dsteqr_scipy_zhetrd_scipy_dorgrq_scipy_clange_scipy_sormlq_scipy_clanhf_scipy_cunmhr_scipy_dsysvx_scipy_stptri_scipy_chptri_scipy_clarf_scipy_cggev_scipy_slatrs_scipy_dtfttp_scipy_strtri_scipy_chbev__ITM_registerTMCloneTablescipy_chesv_scipy_chgeqz_scipy_dgtrfs_scipy_dgsvj0_scipy_drscl_scipy_slarrv_scipy_dlaic1_scipy_cpotf2_scipy_shseqr_scipy_slaed9_scipy_cungbr_scipy_clarz_scipy_chegs2_scipy_zlacp2_scipy_sgsvj1_scipy_zgebak_scipy_chbmv_scipy_stbmv_scipy_ssytrd_scipy_zcposv_scipy_zlag2c_scipy_cggesx_scipy_dsygst_scipy_dgebrd_scipy_dlaed4_scipy_dptts2_scipy_dtrcon_scipy_dorml2_scipy_zgghrd_scipy_zunmtr_scipy_clapll_scipy_zunmlq_scipy_dgbtf2_scipy_dsbmv_scipy_ztpttr_scipy_zlanhs_scipy_sgeqrf_scipy_clauu2_scipy_claqp2_scipy_spptrf_scipy_cpbequ_scipy_ctpmqrt_scipy_slatdf_scipy_cgerc_scipy_zheequb_scipy_sgeqp3_scipy_slarzb_scipy_csscal_scipy_dlatrd_scipy_cunmql_scipy_stpmv_scipy_chpmv_scipy_zlaqr3_scipy_cgehrd_scipy_dlasd7_scipy_ztrsna_scipy_sptsv_scipy_zhpgvx_scipy_strcon_scipy_zsymv_scipy_dlarzb_scipy_cunmr2_scipy_slascl___cxa_finalize@@GLIBC_2.2.5scipy_slatbs_scipy_slapmr_scipy_cgges_scipy_slasy2_scipy_slassq_scipy_stpqrt2_scipy_cposv_scipy_claqgb_scipy_zgeqr2_scipy_cptcon_scipy_zhpgv_scipy_dsygs2_scipy_ilaver_scipy_zpstrf_scipy_clapmt_scipy_sspgv_scipy_dlapmt_scipy_cgeqr2_scipy_spptrs_scipy_cgtrfs_scipy_slaein_scipy_zptsv_scipy_cgeqr2p_scipy_cgerq2_scipy_sgebal_scipy_ilaslr_scipy_sgelsd_scipy_cung2r_scipy_dlasy2_scipy_clansy_scipy_ctrttf_scipy_sgerfs_scipy_sggesx_scipy_dgesv_scipy_cpptrs_scipy_dpoequ_scipy_zgeru_scipy_zunmrz_scipy_zhbgvx_scipy_cpbsv_scipy_spbtf2_scipy_csytrf_scipy_cpftri_scipy_csytri2x_scipy_ztgevc_scipy_ssyevd_scipy_ctgevc_scipy_chptrf_scipy_ctptrs_scipy_claqr1_scipy_dtptri_scipy_dgebal_scipy_dgtcon_scipy_sorgrq_scipy_dgeev_scipy_stgsy2_scipy_spbtrf_scipy_cpttrf_scipy_cgehd2_scipy_dlasq2_scipy_dlaqr3_scipy_dstegr_scipy_zsycon_scipy_zungqr_scipy_cggrqf_scipy_dgbmv_scipy_zsyrfs_scipy_dsytd2_scipy_slas2_scipy_srot_scipy_zlar1v_scipy_csprfs_scipy_clarfg_scipy_sgglse_scipy_zhseqr_scipy_dlasd0_scipy_zlange_scipy_zlalsa_scipy_zunm2l_scipy_zpteqr_scipy_ztgsy2_scipy_dgees_scipy_cgttrf_scipy_dormqr_scipy_zhetd2_scipy_dlasd2_scipy_sgetrf_scipy_chetrs_scipy_zhesvx_scipy_dgesc2_scipy_zung2l_scipy_idamax_scipy_cggbak_scipy_dstevr_scipy_dormbr_scipy_zspcon_scipy_ctpsv_scipy_dorgtr_scipy_dtgsen_scipy_ctbmv_scipy_clarfgp_scipy_cswap_scipy_zgehd2_scipy_zgerc_scipy_zlaqhp_scipy_slarrc_scipy_clahqr_scipy_sormql_scipy_slarft_scipy_sppsv_scipy_zlaqsb_scipy_zpbsvx_scipy_stfttr_scipy_csysvx_scipy_ztgsja_scipy_zgesvd_scipy_zhegv_scipy_cgebak_scipy_zgetc2_scipy_clarfx_scipy_stprfb_scipy_dlartg_scipy_slaset_scipy_zung2r_scipy_sbbcsd_scipy_dgebd2_scipy_sstevr_scipy_sspsv_scipy_zlarfg_scipy_dgbsvx_scipy_iladlr_scipy_zpprfs_scipy_ctrti2_scipy_slapy2_scipy_sormhr_scipy_dlagv2_scipy_dtfttr_scipy_clacon_scipy_slahqr_scipy_dsbev_scipy_slaqgb_scipy_dgels_scipy_stpqrt_scipy_zheevd_scipy_cstedc_scipy_cunmtr_scipy_csyequb_scipy_claqps_scipy_cgetrs_scipy_zsysvx_scipy_slasd1_scipy_zpttrs_scipy_zupmtr_scipy_cgeqrt3_scipy_chetf2_scipy_dscal_PyModule_GetDictscipy_zhegst_scipy_dlagts_scipy_chbtrd_scipy_dlatdf_scipy_dlarrj_scipy_sgesvx_scipy_dlag2_scipy_zhbtrd_scipy_cheev_scipy_dgemqrt_scipy_zhegs2_scipy_clangt_scipy_dgeqrt_scipy_cgbrfs_scipy_dposvx_scipy_zlaein_scipy_dsbevd_scipy_zptts2_scipy_ctpqrt2_scipy_zgerfs_scipy_strtrs_scipy_dspsv_scipy_ssprfs_scipy_ssytrf_scipy_cgbtrs_scipy_ctrttp_scipy_zunmbr_scipy_dtbcon_scipy_dorm2l_scipy_chbgvx_scipy_dsbtrd_scipy_cpbtrf_scipy_zgetrs_scipy_dlahqr_scipy_dstevd_scipy_dgttrf_scipy_srotm_scipy_slasyf_scipy_slarf_scipy_zhbgvd_scipy_zgbrfs_scipy_dlasd5_scipy_ssytrs2_scipy_dlaqp2_scipy_zlantp_scipy_ssytri2x_scipy_clasr_scipy_cungqr_scipy_ztrsen_scipy_sormrq_scipy_dtgsna_scipy_zupgtr_scipy_zsptrf_scipy_clacp2_scipy_spttrs_PyExc_RuntimeErrorscipy_dsytrs2_scipy_slasd7_scipy_spftrf_scipy_zsptri_scipy_chetri2_scipy_cgesvx_scipy_zggglm_scipy_zher2_scipy_dlarfg_scipy_sgttrs_scipy_dporfs_scipy_dsbgvx_scipy_dorglq_scipy_cgtsvx_scipy_cgelsy_scipy_dgeevx_scipy_ssygs2_scipy_zgglse_scipy_cgeql2_scipy_zlargv_scipy_dsyr2_scipy_ctptri_scipy_zgeqrf_scipy_csptrf_scipy_ssytd2_scipy_dhgeqz_scipy_slapy3_scipy_dtptrs_scipy_zheevx_scipy_zlatrs_scipy_zpstf2_scipy_clanhe_scipy_ztbcon_scipy_dpbsvx_scipy_zheevr_scipy_ztptrs_scipy_zstegr_scipy_dbdsdc_scipy_zbbcsd_scipy_dorbdb_scipy_cgbtf2_scipy_dpbequ_scipy_zggqrf_scipy_zunghr_scipy_clanht_scipy_cpftrs_scipy_spotri_scipy_csytf2_scipy_dtgsyl_scipy_zsyswapr_scipy_dlarft_scipy_dspgst_scipy_dtrsen_scipy_cgerqf_scipy_dsbgvd_scipy_ssytri_scipy_dlarfb_scipy_dlarz_scipy_cgeqrf_fmax@@GLIBC_2.2.5scipy_zggbal_scipy_ztrrfs_scipy_zporfs_scipy_dstemr_scipy_slaswp_scipy_slansp_scipy_dlaqgb_scipy_dlatrs_scipy_zlacrm_scipy_slarrk_scipy_cgetf2_scipy_dlascl_scipy_slarnv_scipy_cgbequb_scipy_sgerq2_scipy_classq_scipy_cgelsd_scipy_zlaqr4_scipy_zheswapr_scipy_dsytf2_scipy_zlansb_scipy_ztgsyl_scipy_zunm2r_scipy_zgbcon_scipy_dgelqf_scipy_sgeqrt3_scipy_stgsna_scipy_zpoequ_scipy_zgbsvx_scipy_zpftri_scipy_chpr_scipy_claein_scipy_dtrexc_scipy_dggbal_scipy_snrm2_scipy_zungl2_scipy_zlags2_scipy_dspevx_scipy_zgebal_scipy_zlahqr_scipy_sptcon_scipy_cungl2_scipy_dggevx_scipy_zgerq2_scipy_dgtsv_scipy_dsyr2k_scipy_cporfs_scipy_dtrsv_scipy_slaqsp_scipy_dbbcsd_scipy_cscal_scipy_dggglm_scipy_ztzrzf_scipy_slarrr_scipy_slarfgp_scipy_zspsvx_scipy_zlaqhb_scipy_dtpcon_scipy_cgttrs_scipy_dstebz_scipy_zstein_scipy_ctgsyl_scipy_slalsa_scipy_cgeqlf_scipy_lsame_scipy_dsysv_scipy_sgetrs_scipy_dsfrk_scipy_spteqr_scipy_cgeequb_scipy_sgebak_scipy_zrot_scipy_sspr2_scipy_cgeqrt2_scipy_zlascl_scipy_sgetc2_scipy_claic1_scipy_zlarf_scipy_sgetri_scipy_dgetrf_scipy_sgbsv_scipy_sgecon_scipy_zlatps_scipy_zaxpy_scipy_slansb_scipy_dlas2_scipy_slaev2_scipy_dpftrf_scipy_zhgeqz_scipy_ssbevd_scipy_ilatrans_scipy_clanhb_scipy_slasq2_scipy_dlamch_scipy_ddot_scipy_slaed2_scipy_slasd4_scipy_zlanhf_scipy_cpbstf_scipy_cpbcon_scipy_dlasq1_scipy_isamax_scipy_cgtcon_scipy_ctgex2_scipy_clantp_scipy_dlacn2_scipy_xerbla_array_scipy_dsytri2x_scipy_zlantr_scipy_drotm_scipy_dspmv_scipy_dlaqsp_scipy_ssbtrd_scipy_zlacn2_scipy_ilazlc_scipy_dsytri_scipy_stbtrs_scipy_clauum_scipy_slar2v_scipy_ztrsm_scipy_dposv_scipy_chemm_scipy_zlaed8_scipy_dgemv_scipy_clacn2_scipy_sggqrf_scipy_dopmtr_scipy_strmm_scipy_dlasd8_scipy_claqsp_scipy_chetrd_scipy_spstf2_scipy_dlansf_scipy_cspsvx_scipy_ctgsja_scipy_sormrz_scipy_dormr3_scipy_dsposv_scipy_slaeda_scipy_zgemqrt_scipy_dptrfs_scipy_zlaic1_scipy_slarrd_scipy_dlasd1_scipy_dladiv_scipy_dlaqsy_scipy_sgbmv_scipy_dgejsv_scipy_sggev_scipy_zgeequ_scipy_dlaein_scipy_dlag2s_PyObject_GetAttrStringscipy_cgetc2_scipy_zpotf2_scipy_zstedc_scipy_cgeqrfp_scipy_sspmv_scipy_ztgex2_scipy_zhetri2x_scipy_spotf2_scipy_zhetri_scipy_zsytri_scipy_dlauum_scipy_zsytrs_scipy_dtpttr_scipy_clarcm_scipy_cgebal_scipy_dpptri_scipy_slanhs_scipy_dpbtrs_scipy_slangb_scipy_csycon_scipy_cspmv_scipy_dtgsy2_scipy_dlaed8_scipy_sbdsqr_scipy_cgelqf_scipy_slaqtr_scipy_cherfs_scipy_zlalsd_scipy_stzrzf_scipy_dspev_scipy_cuncsd_scipy_scasum_scipy_dgesvx_scipy_dlasq6_scipy_dlangb_scipy_zlassq_scipy_cher2_scipy_zlaqhe_scipy_cpbrfs_scipy_chbevx_scipy_stpmqrt_scipy_cheevd_scipy_dlacon_scipy_dgeequ_scipy_spoequb_scipy_slahr2_scipy_dpteqr_scipy_dbdsqr_scipy_sspevx_scipy_zlasr_scipy_claqhe_scipy_slarz_scipy_slaed8_scipy_ssyev_scipy_zstemr_scipy_csyrfs_scipy_zppsv_scipy_ssygst_scipy_slaqr3_scipy_dsyrk_scipy_dpftrs_scipy_clar1v_scipy_dtfsm_scipy_zunmql_scipy_cheswapr_scipy_claset__Py_NoneStructscipy_zpftrs_scipy_sgemv_scipy_dgeqrt2_scipy_dtgex2_scipy_cunmrq_scipy_sgesc2_scipy_stptrs_scipy_chptrs_scipy_scopy_scipy_dgemm_scipy_zhbevd_PyErr_NewExceptionscipy_ssyequb_scipy_dlat2s_scipy_dlaset_scipy_spptri_scipy_ztrttf_scipy_dgesdd_scipy_dlahr2_scipy_zhpevd_scipy_dpftri_scipy_ztrevc_scipy_slartgs_scipy_dtprfb_scipy_cungql_scipy_dlags2_scipy_dtpmqrt_scipy_claed8_scipy_dtpttf_scipy_csyconv_scipy_stgsyl_scipy_chemv_scipy_ztftri_scipy_clarft_scipy_ssyr2_scipy_dlaed1_scipy_sorg2l_scipy_dpstrf_scipy_zppcon_scipy_zhptrf_scipy_zlatbs_scipy_dsprfs_scipy_slabad_scipy_dsyr_scipy_chpgv_scipy_zsteqr_scipy_dgttrs_scipy_sorgqr_scipy_clatdf_scipy_dlassq_scipy_slarfx_scipy_cpptri_scipy_zggesx_scipy_stpttf_scipy_dpbtf2_scipy_ztgexc_scipy_sstegr_scipy_cggqrf_scipy_zgesdd_scipy_sposv_scipy_chpcon_scipy_stpcon_scipy_dgecon_scipy_zgbequ_scipy_cspsv_scipy_clatps_scipy_ctbrfs_PyErr_Printscipy_ztfttp_scipy_dstedc_scipy_zlangt_scipy_chpgvx_scipy_sgeqr2p_scipy_dlaev2_scipy_ctbcon_scipy_sgtcon_scipy_clatrs_scipy_spftrs_scipy_spoequ_scipy_cunmrz_scipy_dlarrc_scipy_zgbmv_scipy_zsysv_scipy_dlansp_scipy_cpocon_scipy_zlauu2_scipy_sgtts2_scipy_cungr2_scipy_ctrsyl_scipy_zunmhr_scipy_chetri_scipy_sorgl2_scipy_dpoequb_scipy_zgeesx_scipy_dlaqr0_scipy_stfsm_scipy_dsyswapr_scipy_ssptrs_scipy_slapmt_scipy_sposvx_scipy_ztrexc_scipy_zgeql2_scipy_zlatrz_scipy_cunm2l_scipy_slaqr0_scipy_ztrmv_scipy_iladiag_scipy_sgbsvx_scipy_zgttrs_scipy_dpstf2_scipy_dtpmv_scipy_zlacrt_scipy_zpbrfs_scipy_slagtf_scipy_dlarzt_scipy_zlarz_scipy_clapmr_scipy_zgesvx_scipy_spotrs_scipy_zhpsvx_scipy_dptsv_scipy_chetrf_scipy_zptcon_scipy_dlapmr_scipy_zlarfb_scipy_strsm_scipy_slarrf_scipy_cggbal_scipy_dptcon_scipy_dasum_scipy_zptsvx_scipy_dlar1v_scipy_cgels_scipy_slange_scipy_slangt_scipy_slaed3_scipy_slasq3_scipy_slasr_scipy_dlamrg_scipy_csytrs_scipy_clanhs_scipy_clargv_scipy_srscl_scipy_dgeqr2_scipy_cpttrs_scipy_zhegvd_scipy_sgbrfs_scipy_dtgevc_scipy_cgbbrd_scipy_zlat2c_scipy_dspsvx_scipy_strmv_scipy_zgeev_scipy_claev2_scipy_stgsja_scipy_dorghr_scipy_zungtr_scipy_dlaqtr_scipy_claqge_scipy_sggbal_scipy_dorgbr_scipy_cposvx_scipy_cunmlq_scipy_ilaclr_scipy_ieeeck__Py_Deallocscipy_cpptrf_scipy_zgbtrf_scipy_zppequ_scipy_zgetrf_scipy_dgelsd_scipy_dsbgst_scipy_ssptrd_scipy_slaqp2_PyImport_ImportModulescipy_dgbcon_scipy_ztbrfs_scipy_ctfttp_scipy_zpptri_scipy_cgbsvx_scipy_ztpsv_scipy_chbgst_scipy_dgbtrf_scipy_cpprfs_PyErr_Clearscipy_zlatdf_scipy_dgges_scipy_zlanhe_scipy_claqr3_scipy_dlagtm_scipy_dznrm2_scipy_sormbr_PyModule_Create2scipy_dgbrfs_scipy_dsytrs_scipy_zsyequb_scipy_zgtsv_scipy_sgeqlf_scipy_dsyev_scipy_dtrtrs_scipy_slasdq_scipy_cggevx_scipy_zunmqr_scipy_clanhp_scipy_dtrrfs_scipy_slasd2_scipy_sppcon_scipy_dtgexc_scipy_cgeesx_scipy_zlapmr_scipy_slasd3_scipy_sspev_scipy_zlaswp_scipy_cgeequ_scipy_zunglq_scipy_zlacpy_scipy_dgesvj_scipy_dlaqr5_scipy_ssytf2_scipy_zgtsvx_scipy_zpbcon_scipy_slarra_scipy_dopgtr_scipy_zhetrs_scipy_sgges_scipy_slansf_scipy_slanst_scipy_sspr_scipy_zlaqsp_scipy_dtbtrs_scipy_dlasd4_scipy_sgbtf2_scipy_slapll_scipy_zswap_scipy_slarfg_scipy_daxpy_scipy_slaebz_scipy_chla_transtype_scipy_dptsvx_scipy_zrotg_scipy_dtrti2_scipy_dspr_scipy_slasda_scipy_dlarnv_scipy_zdrot_scipy_dspgvx_scipy_sggevx_scipy_zhpr_scipy_zgelsd_scipy_ilaprec_scipy_slacpy_scipy_zhptrs_scipy_dlalsd_scipy_sgerqf_scipy_dtrttp_scipy_chetrs2_PyErr_SetStringscipy_strttp_scipy_sgtrfs_scipy_cupmtr_scipy_dlasr_scipy_sdsdot_scipy_claesy_scipy_sgebd2_scipy_sormr2_scipy_clahef_scipy_dsdot_scipy_dgeequb_scipy_zlaqr2_scipy_strsen_scipy_zpoequb_scipy_sorcsd_scipy_clacgv_scipy_cpstrf_scipy_csytri_scipy_dppsvx_scipy_dtbrfs_scipy_zpttrf_scipy_sgghrd_scipy_sgttrf_scipy_cspr_scipy_zungbr_scipy_dgbsv_scipy_dlange_scipy_zgges_scipy_dppsv_scipy_sswap_scipy_zhbmv_scipy_zlaed7_scipy_dsyequb_scipy_zlangb_scipy_ztpcon_scipy_zgehrd_scipy_caxpy_scipy_claqr0_scipy_sgehd2_scipy_dtrsna_scipy_cstegr_scipy_cheequb_scipy_sspgst_scipy_cstein_scipy_ctzrzf_scipy_dorgqr_scipy_ssysv_scipy_sgbbrd_scipy_sstemr_scipy_dgerfs_scipy_claqhb_scipy_csytrs2_scipy_dsptrf_scipy_dlarf_scipy_stftri_scipy_zlals0_scipy_cunbdb_scipy_cunml2_scipy_scnrm2_scipy_stgevc_scipy_ctrsm_scipy_dlapy2_scipy_zlaqge_scipy_saxpy_scipy_cppsv_scipy_zungr2_scipy_sgbequb_scipy_slarfb_scipy_zgesc2_scipy_icmax1_scipy_dlantb_scipy_slantp_scipy_ssysvx_scipy_zgelsy_scipy_zunmr3_scipy_ztbmv_scipy_csrot_scipy_chpsvx_scipy_sppequ_scipy_dlarrd_scipy_ilaslc_scipy_clasyf_scipy_csrscl_scipy_slatrz_scipy_dgbequb_scipy_izmax1_scipy_dlansb_scipy_dlaed2_scipy_ctpqrt_scipy_ctrevc_scipy_chsein_scipy_zlarfgp_scipy_sgelsy_scipy_slaruv_scipy_zhesv_scipy_slasd8_scipy_cgeqrt_scipy_zhbev_scipy_cpstf2_scipy_zgelss_scipy_ztgsna_scipy_cgemv_scipy_ztpmv_scipy_slaqps_scipy_ssptrf_scipy_dlantr_scipy_ctfttr_scipy_chpevd_scipy_dpbtrf_scipy_dsyevd_scipy_ssyr_scipy_disnan_scipy_dgeqp3_scipy_zcgesv_scipy_dormr2_scipy_ctgsy2_scipy_ssycon_scipy_stbsv_scipy_strti2_scipy_zhpcon_scipy_zlarzb_scipy_chbevd_scipy_zgemv_scipy_dgetri_scipy_ctprfs_scipy_dppcon_scipy_sorml2_scipy_slag2_scipy_ztprfs_scipy_zlaqsy_scipy_ctfsm_scipy_zungrq_scipy_zherk_scipy_chpgst_scipy_cgebrd_scipy_stgexc_scipy_dtrttf_scipy_dlasrt_scipy_cptsvx_scipy_clabrd_scipy_slasq1_scipy_clals0_scipy_strsyl_scipy_drotmg_scipy_slaed1_scipy_csymm_scipy_sgeqrt2_scipy_zhprfs_scipy_sorgtr_scipy_ctpmv_scipy_cgees_scipy_dgetc2_scipy_zgelq2_scipy_dcopy_scipy_zlarrv_scipy_dlangt_sqrt@@GLIBC_2.2.5scipy_chetri2x_scipy_zpbtrs_scipy_slagts_scipy_dlaneg_scipy_spbstf_scipy_cunglq_scipy_ssyconv_scipy_ssbmv_scipy_cgbmv_scipy_sgeqrt_scipy_zlaqgb_scipy_dsycon_scipy_ctrtrs_scipy_dpttrf_scipy_zpbequ_scipy_zlacgv_PyCapsule_GetPointerscipy_ctpcon_scipy_zgtcon_scipy_sorm2r_scipy_dgbtrs_scipy_slasdt_scipy_slasq4_scipy_ctgsna_scipy_chfrk_scipy_dgesvd_scipy_zunbdb_scipy_strttf_scipy_zspsv_scipy_dlasv2_scipy_dgehrd_scipy_slaed4_scipy_sgeequ_scipy_spbtrs_scipy_ctrcon_scipy_clarzb_scipy_dlals0_scipy_cgeqp3_scipy_zgtts2_scipy_zlanhp_scipy_sgtsv_scipy_spbrfs_scipy_zspr_scipy_ctbtrs_scipy_sscal_scipy_chesvx_scipy_zsytf2_scipy_ztpttf_scipy_zunmr2_scipy_clatbs_scipy_dlaed7_scipy_chpevx_scipy_zunml2_scipy_srotg_scipy_zgbtf2_scipy_zsyrk_scipy_stbrfs_scipy_spbequ_scipy_zsyr_scipy_zgels_scipy_dsyconv_scipy_clartg_scipy_sorbdb_scipy_zhsein_scipy_cunmqr_scipy_slagv2_scipy_zgetri_scipy_dzasum_scipy_zlahef_scipy_dspr2_scipy_spbsvx_scipy_dstein_scipy_dlaed9_scipy_ssygv_scipy_cungtr_scipy_zlaset_scipy_slauu2_scipy_zlarft_scipy_dpbsv_scipy_clacpy_scipy_ssterf_scipy_dlarrr_scipy_cunmbr_scipy_ctgexc_scipy_dorg2l_scipy_slaqr4_scipy_dhsein_scipy_sstebz_scipy_zgetf2_scipy_dtbmv_scipy_dsymv_scipy_strsv_scipy_clantr_scipy_zhbgv_scipy_cpteqr_.symtab.strtab.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.data.bss.commentHo"" Uo((@dhhnB  pxs  g~ hhht399H3    0 /P: 8@\˜ $.o( ($8 P PH @"[GNUN Ydѯk帇lV|P 4#XS}$Bq;T2 1; RNBb0!:bSM JRG <2T \Q xB7L)+F7. I)* '8/j2,!  XiT*Ueg*&bXk%o8?a  F%?Q'6:>d.?F$\B:X6"{<3B DP^6,-,4WS$6>1s4x3>U'*8`PE8- S*zMK8%M" ;AB  '8|?[@4n7 0T23XP[TsR&TMS ::VX;/,V>5v)!7=RY;#8:C1NbC`2WU,{1VE!#) g:0NHBEM#&NbM7$p0O S9 (L ) S8FR8JLLJ(f.D?T7 BD_>A%~COJ ] MTI,'P/.+X52&84D<Tl%B 3>h)B# t7@3D$'+vKDM7P6(P4z()I5iFAR6&-4w@NYJ' M!#G " >%)!H>@%XK MGd4@9V5.j-'F(YL< K7j QV 9+LH@P+ *!A BuH/7!CF>Ef&2A'13 YwTH4YW:L@-_KLG;2tGDSH9G'`! 1C0 W53&MX.C~I$Q;5]O"ZSpIT,0J9d5\ C0)Z+2)JhN%SyDI.x X "3%&(HO (1KY:$RPs# )=HCQF1I4S]%  3 I:AUEJk&W; 'KWQ>tY7,=H, (8C ,U.i=f\-!R!7p33+Xfw |OgH#EVA&|S4ABl+:-L)b`?.wFZd >/G& , ;f < ,;"67 Nl6KH.DG,OV .V!+0Z)KZ&@Z6XP4HA=L4D< (-@Qx &XAMFwV>&m<F"=9I ==LFPIMt.D2UBB# dA 8:U  \32:4 '55't*ZK#@skW&D,0:X >F1@j 9'o$-KVY V.`<DQ@u46ZNu&OOYUW )L&5L `Yp- ->)U@)/HP;n?+;-AjQSEGWEJ~L aJ[F%#=nY|2HCCQ1T9D?w"/.8,: >F8L> V<cUZi tCpLi" '%r5$"L BbLp~ *O,qUI-G%-BD Zt/")x r,AJ"- ]=:KG&AE)$nP#E9^X?0ZU<Ae/<M@U J$%6*d,(  PDK RIiD :0TLST/W*FLdXVvyGl( )#KYy@e70V%%, 1 V,E$1&/ ZJX$T-=k9 $(N; g&U;o 5F NQL/6PWZG4ETHS07Y:O,YHdOA4Jt 9:h6Y;;UPE0 x-!V8 .5,A% N3UZ R5Q5z 33R{O9Z&8U*oMB%2~?="7<O +'~ :  !eGG/|P]$jBNR2*/lE: *;N B6^(G&rAW#[d?) -8SI+O;&7!$5H!1" MTV= W5M@MVB(W0L ^+A9G*9')0!2 :-OWG,Pc'#RaPA /F !r@8+BRz7<7D/V,T^Du:q*0/NZV+S/"-5FK$ D''VAY"Mc*X <0P?"S00FHfWn!>+T"NR-7^=V >~'9;fJF+*WpC *J@!FdGN}tW-Oy4"z6i@@0y%Ve#6S6l~$Z>*HE$zE.FC9@XbI(SK: 13Kz+NnSa8L&XR4SJ@N+U#Qa;; +GU$ %9397M=w="A{L2/E R2-THE(Y$^5(11X/HT}J;,C/:=WT O /RO["T6?W/hV[K4=.Q1=q \Z0<A/A P<BR YNB$DhKRSc;P(EM5]9y9xQ/&$39;f7+r51j<O%, 6Y)I1=7>N"5m1IG6Zq'j3?P2QFTr>B+/UU&664|Y#J5+N..OXH31 B(D2ClN-$EOEg#P=Y2;J1#9DEIxZA% 2b>n2I#|!8QV4)<L<L K7IW=:*C#49*J. mG)C G}MeR3  +R?88HXQY?P E_1~'1=*G(74M ?34 ^I.R-#US}8#?BCx4P.+`SvN?K(?=[=r4DY;GU'73?@*" K P6?UHVrXjZp!B2ZP!H^E?VI.d>LN8JFVOv@-!lDR,>Q*JC%H(: TCoJnKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXp[ZR[Z  o( "P  [ p h o(oo"o__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizesqrtfmaxfminmemset_PyArg_ParseTuple_SizeT_Py_NoneStructPyErr_SetStringPyInit__lbfgsbPyImport_ImportModulePyObject_GetAttrStringPyCapsule_TypePyCapsule_GetPointerPyModule_Create2PyModule_GetDictPyErr_NewExceptionPyDict_SetItemStringPyExc_ModuleNotFoundErrorPyErr_ExceptionMatchesPyErr_PrintPyExc_ImportError_Py_DeallocPyErr_ClearPyExc_RuntimeErrorPyErr_Formatscipy_caxpy_scipy_ccopy_scipy_cgbmv_scipy_cgemm_scipy_cgemv_scipy_cgerc_scipy_cgeru_scipy_chbmv_scipy_chemm_scipy_chemv_scipy_cher_scipy_cher2_scipy_cher2k_scipy_cherk_scipy_chpmv_scipy_chpr_scipy_chpr2_scipy_crotg_scipy_cscal_scipy_csrot_scipy_csscal_scipy_cswap_scipy_csymm_scipy_csyr2k_scipy_csyrk_scipy_ctbmv_scipy_ctbsv_scipy_ctpmv_scipy_ctpsv_scipy_ctrmm_scipy_ctrmv_scipy_ctrsm_scipy_ctrsv_scipy_dasum_scipy_daxpy_scipy_dcabs1_scipy_dcopy_scipy_ddot_scipy_dgbmv_scipy_dgemm_scipy_dgemv_scipy_dger_scipy_dnrm2_scipy_drot_scipy_drotg_scipy_drotm_scipy_drotmg_scipy_dsbmv_scipy_dscal_scipy_dsdot_scipy_dspmv_scipy_dspr_scipy_dspr2_scipy_dswap_scipy_dsymm_scipy_dsymv_scipy_dsyr_scipy_dsyr2_scipy_dsyr2k_scipy_dsyrk_scipy_dtbmv_scipy_dtbsv_scipy_dtpmv_scipy_dtpsv_scipy_dtrmm_scipy_dtrmv_scipy_dtrsm_scipy_dtrsv_scipy_dzasum_scipy_dznrm2_scipy_icamax_scipy_idamax_scipy_isamax_scipy_izamax_scipy_lsame_scipy_sasum_scipy_saxpy_scipy_scasum_scipy_scnrm2_scipy_scopy_scipy_sdot_scipy_sdsdot_scipy_sgbmv_scipy_sgemm_scipy_sgemv_scipy_sger_scipy_snrm2_scipy_srot_scipy_srotg_scipy_srotm_scipy_srotmg_scipy_ssbmv_scipy_sscal_scipy_sspmv_scipy_sspr_scipy_sspr2_scipy_sswap_scipy_ssymm_scipy_ssymv_scipy_ssyr_scipy_ssyr2_scipy_ssyr2k_scipy_ssyrk_scipy_stbmv_scipy_stbsv_scipy_stpmv_scipy_stpsv_scipy_strmm_scipy_strmv_scipy_strsm_scipy_strsv_scipy_zaxpy_scipy_zcopy_scipy_zdrot_scipy_zdscal_scipy_zgbmv_scipy_zgemm_scipy_zgemv_scipy_zgerc_scipy_zgeru_scipy_zhbmv_scipy_zhemm_scipy_zhemv_scipy_zher_scipy_zher2_scipy_zher2k_scipy_zherk_scipy_zhpmv_scipy_zhpr_scipy_zhpr2_scipy_zrotg_scipy_zscal_scipy_zswap_scipy_zsymm_scipy_zsyr2k_scipy_zsyrk_scipy_ztbmv_scipy_ztbsv_scipy_ztpmv_scipy_ztpsv_scipy_ztrmm_scipy_ztrmv_scipy_ztrsm_scipy_ztrsv_scipy_cbbcsd_scipy_cbdsqr_scipy_cgbbrd_scipy_cgbcon_scipy_cgbequ_scipy_cgbequb_scipy_cgbrfs_scipy_cgbsv_scipy_cgbsvx_scipy_cgbtf2_scipy_cgbtrf_scipy_cgbtrs_scipy_cgebak_scipy_cgebal_scipy_cgebd2_scipy_cgebrd_scipy_cgecon_scipy_cgeequ_scipy_cgeequb_scipy_cgees_scipy_cgeesx_scipy_cgeev_scipy_cgeevx_scipy_cgehd2_scipy_cgehrd_scipy_cgelq2_scipy_cgelqf_scipy_cgels_scipy_cgelsd_scipy_cgelss_scipy_cgelsy_scipy_cgemqrt_scipy_cgeql2_scipy_cgeqlf_scipy_cgeqp3_scipy_cgeqr2_scipy_cgeqr2p_scipy_cgeqrf_scipy_cgeqrfp_scipy_cgeqrt_scipy_cgeqrt2_scipy_cgeqrt3_scipy_cgerfs_scipy_cgerq2_scipy_cgerqf_scipy_cgesc2_scipy_cgesdd_scipy_cgesv_scipy_cgesvd_scipy_cgesvx_scipy_cgetc2_scipy_cgetf2_scipy_cgetrf_scipy_cgetri_scipy_cgetrs_scipy_cggbak_scipy_cggbal_scipy_cgges_scipy_cggesx_scipy_cggev_scipy_cggevx_scipy_cggglm_scipy_cgghrd_scipy_cgglse_scipy_cggqrf_scipy_cggrqf_scipy_cgtcon_scipy_cgtrfs_scipy_cgtsv_scipy_cgtsvx_scipy_cgttrf_scipy_cgttrs_scipy_cgtts2_scipy_chbev_scipy_chbevd_scipy_chbevx_scipy_chbgst_scipy_chbgv_scipy_chbgvd_scipy_chbgvx_scipy_chbtrd_scipy_checon_scipy_cheequb_scipy_cheev_scipy_cheevd_scipy_cheevr_scipy_cheevx_scipy_chegs2_scipy_chegst_scipy_chegv_scipy_chegvd_scipy_chegvx_scipy_cherfs_scipy_chesv_scipy_chesvx_scipy_cheswapr_scipy_chetd2_scipy_chetf2_scipy_chetrd_scipy_chetrf_scipy_chetri_scipy_chetri2_scipy_chetri2x_scipy_chetrs_scipy_chetrs2_scipy_chfrk_scipy_chgeqz_scipy_chla_transtype_scipy_chpcon_scipy_chpev_scipy_chpevd_scipy_chpevx_scipy_chpgst_scipy_chpgv_scipy_chpgvd_scipy_chpgvx_scipy_chprfs_scipy_chpsv_scipy_chpsvx_scipy_chptrd_scipy_chptrf_scipy_chptri_scipy_chptrs_scipy_chsein_scipy_chseqr_scipy_clabrd_scipy_clacgv_scipy_clacn2_scipy_clacon_scipy_clacp2_scipy_clacpy_scipy_clacrm_scipy_clacrt_scipy_claed0_scipy_claed7_scipy_claed8_scipy_claein_scipy_claesy_scipy_claev2_scipy_clag2z_scipy_clags2_scipy_clagtm_scipy_clahef_scipy_clahqr_scipy_clahr2_scipy_claic1_scipy_clals0_scipy_clalsa_scipy_clalsd_scipy_clangb_scipy_clange_scipy_clangt_scipy_clanhb_scipy_clanhe_scipy_clanhf_scipy_clanhp_scipy_clanhs_scipy_clanht_scipy_clansb_scipy_clansp_scipy_clansy_scipy_clantb_scipy_clantp_scipy_clantr_scipy_clapll_scipy_clapmr_scipy_clapmt_scipy_claqgb_scipy_claqge_scipy_claqhb_scipy_claqhe_scipy_claqhp_scipy_claqp2_scipy_claqps_scipy_claqr0_scipy_claqr1_scipy_claqr2_scipy_claqr3_scipy_claqr4_scipy_claqr5_scipy_claqsb_scipy_claqsp_scipy_claqsy_scipy_clar1v_scipy_clar2v_scipy_clarcm_scipy_clarf_scipy_clarfb_scipy_clarfg_scipy_clarfgp_scipy_clarft_scipy_clarfx_scipy_clargv_scipy_clarnv_scipy_clarrv_scipy_clartg_scipy_clartv_scipy_clarz_scipy_clarzb_scipy_clarzt_scipy_clascl_scipy_claset_scipy_clasr_scipy_classq_scipy_claswp_scipy_clasyf_scipy_clatbs_scipy_clatdf_scipy_clatps_scipy_clatrd_scipy_clatrs_scipy_clatrz_scipy_clauu2_scipy_clauum_scipy_cpbcon_scipy_cpbequ_scipy_cpbrfs_scipy_cpbstf_scipy_cpbsv_scipy_cpbsvx_scipy_cpbtf2_scipy_cpbtrf_scipy_cpbtrs_scipy_cpftrf_scipy_cpftri_scipy_cpftrs_scipy_cpocon_scipy_cpoequ_scipy_cpoequb_scipy_cporfs_scipy_cposv_scipy_cposvx_scipy_cpotf2_scipy_cpotrf_scipy_cpotri_scipy_cpotrs_scipy_cppcon_scipy_cppequ_scipy_cpprfs_scipy_cppsv_scipy_cppsvx_scipy_cpptrf_scipy_cpptri_scipy_cpptrs_scipy_cpstf2_scipy_cpstrf_scipy_cptcon_scipy_cpteqr_scipy_cptrfs_scipy_cptsv_scipy_cptsvx_scipy_cpttrf_scipy_cpttrs_scipy_cptts2_scipy_crot_scipy_cspcon_scipy_cspmv_scipy_cspr_scipy_csprfs_scipy_cspsv_scipy_cspsvx_scipy_csptrf_scipy_csptri_scipy_csptrs_scipy_csrscl_scipy_cstedc_scipy_cstegr_scipy_cstein_scipy_cstemr_scipy_csteqr_scipy_csycon_scipy_csyconv_scipy_csyequb_scipy_csymv_scipy_csyr_scipy_csyrfs_scipy_csysv_scipy_csysvx_scipy_csyswapr_scipy_csytf2_scipy_csytrf_scipy_csytri_scipy_csytri2_scipy_csytri2x_scipy_csytrs_scipy_csytrs2_scipy_ctbcon_scipy_ctbrfs_scipy_ctbtrs_scipy_ctfsm_scipy_ctftri_scipy_ctfttp_scipy_ctfttr_scipy_ctgevc_scipy_ctgex2_scipy_ctgexc_scipy_ctgsen_scipy_ctgsja_scipy_ctgsna_scipy_ctgsy2_scipy_ctgsyl_scipy_ctpcon_scipy_ctpmqrt_scipy_ctpqrt_scipy_ctpqrt2_scipy_ctprfb_scipy_ctprfs_scipy_ctptri_scipy_ctptrs_scipy_ctpttf_scipy_ctpttr_scipy_ctrcon_scipy_ctrevc_scipy_ctrexc_scipy_ctrrfs_scipy_ctrsen_scipy_ctrsna_scipy_ctrsyl_scipy_ctrti2_scipy_ctrtri_scipy_ctrtrs_scipy_ctrttf_scipy_ctrttp_scipy_ctzrzf_scipy_cunbdb_scipy_cuncsd_scipy_cung2l_scipy_cung2r_scipy_cungbr_scipy_cunghr_scipy_cungl2_scipy_cunglq_scipy_cungql_scipy_cungqr_scipy_cungr2_scipy_cungrq_scipy_cungtr_scipy_cunm2l_scipy_cunm2r_scipy_cunmbr_scipy_cunmhr_scipy_cunml2_scipy_cunmlq_scipy_cunmql_scipy_cunmqr_scipy_cunmr2_scipy_cunmr3_scipy_cunmrq_scipy_cunmrz_scipy_cunmtr_scipy_cupgtr_scipy_cupmtr_scipy_dbbcsd_scipy_dbdsdc_scipy_dbdsqr_scipy_ddisna_scipy_dgbbrd_scipy_dgbcon_scipy_dgbequ_scipy_dgbequb_scipy_dgbrfs_scipy_dgbsv_scipy_dgbsvx_scipy_dgbtf2_scipy_dgbtrf_scipy_dgbtrs_scipy_dgebak_scipy_dgebal_scipy_dgebd2_scipy_dgebrd_scipy_dgecon_scipy_dgeequ_scipy_dgeequb_scipy_dgees_scipy_dgeesx_scipy_dgeev_scipy_dgeevx_scipy_dgehd2_scipy_dgehrd_scipy_dgejsv_scipy_dgelq2_scipy_dgelqf_scipy_dgels_scipy_dgelsd_scipy_dgelss_scipy_dgelsy_scipy_dgemqrt_scipy_dgeql2_scipy_dgeqlf_scipy_dgeqp3_scipy_dgeqr2_scipy_dgeqr2p_scipy_dgeqrf_scipy_dgeqrfp_scipy_dgeqrt_scipy_dgeqrt2_scipy_dgeqrt3_scipy_dgerfs_scipy_dgerq2_scipy_dgerqf_scipy_dgesc2_scipy_dgesdd_scipy_dgesv_scipy_dgesvd_scipy_dgesvj_scipy_dgesvx_scipy_dgetc2_scipy_dgetf2_scipy_dgetrf_scipy_dgetri_scipy_dgetrs_scipy_dggbak_scipy_dggbal_scipy_dgges_scipy_dggesx_scipy_dggev_scipy_dggevx_scipy_dggglm_scipy_dgghrd_scipy_dgglse_scipy_dggqrf_scipy_dggrqf_scipy_dgsvj0_scipy_dgsvj1_scipy_dgtcon_scipy_dgtrfs_scipy_dgtsv_scipy_dgtsvx_scipy_dgttrf_scipy_dgttrs_scipy_dgtts2_scipy_dhgeqz_scipy_dhsein_scipy_dhseqr_scipy_disnan_scipy_dlabad_scipy_dlabrd_scipy_dlacn2_scipy_dlacon_scipy_dlacpy_scipy_dladiv_scipy_dlae2_scipy_dlaebz_scipy_dlaed0_scipy_dlaed1_scipy_dlaed2_scipy_dlaed3_scipy_dlaed4_scipy_dlaed5_scipy_dlaed6_scipy_dlaed7_scipy_dlaed8_scipy_dlaed9_scipy_dlaeda_scipy_dlaein_scipy_dlaev2_scipy_dlaexc_scipy_dlag2_scipy_dlag2s_scipy_dlags2_scipy_dlagtf_scipy_dlagtm_scipy_dlagts_scipy_dlagv2_scipy_dlahqr_scipy_dlahr2_scipy_dlaic1_scipy_dlaln2_scipy_dlals0_scipy_dlalsa_scipy_dlalsd_scipy_dlamch_scipy_dlamrg_scipy_dlaneg_scipy_dlangb_scipy_dlange_scipy_dlangt_scipy_dlanhs_scipy_dlansb_scipy_dlansf_scipy_dlansp_scipy_dlanst_scipy_dlansy_scipy_dlantb_scipy_dlantp_scipy_dlantr_scipy_dlanv2_scipy_dlapll_scipy_dlapmr_scipy_dlapmt_scipy_dlapy2_scipy_dlapy3_scipy_dlaqgb_scipy_dlaqge_scipy_dlaqp2_scipy_dlaqps_scipy_dlaqr0_scipy_dlaqr1_scipy_dlaqr2_scipy_dlaqr3_scipy_dlaqr4_scipy_dlaqr5_scipy_dlaqsb_scipy_dlaqsp_scipy_dlaqsy_scipy_dlaqtr_scipy_dlar1v_scipy_dlar2v_scipy_dlarf_scipy_dlarfb_scipy_dlarfg_scipy_dlarfgp_scipy_dlarft_scipy_dlarfx_scipy_dlargv_scipy_dlarnv_scipy_dlarra_scipy_dlarrb_scipy_dlarrc_scipy_dlarrd_scipy_dlarre_scipy_dlarrf_scipy_dlarrj_scipy_dlarrk_scipy_dlarrr_scipy_dlarrv_scipy_dlartg_scipy_dlartgp_scipy_dlartgs_scipy_dlartv_scipy_dlaruv_scipy_dlarz_scipy_dlarzb_scipy_dlarzt_scipy_dlas2_scipy_dlascl_scipy_dlasd0_scipy_dlasd1_scipy_dlasd2_scipy_dlasd3_scipy_dlasd4_scipy_dlasd5_scipy_dlasd6_scipy_dlasd7_scipy_dlasd8_scipy_dlasda_scipy_dlasdq_scipy_dlasdt_scipy_dlaset_scipy_dlasq1_scipy_dlasq2_scipy_dlasq3_scipy_dlasq4_scipy_dlasq6_scipy_dlasr_scipy_dlasrt_scipy_dlassq_scipy_dlasv2_scipy_dlaswp_scipy_dlasy2_scipy_dlasyf_scipy_dlat2s_scipy_dlatbs_scipy_dlatdf_scipy_dlatps_scipy_dlatrd_scipy_dlatrs_scipy_dlatrz_scipy_dlauu2_scipy_dlauum_scipy_dopgtr_scipy_dopmtr_scipy_dorbdb_scipy_dorcsd_scipy_dorg2l_scipy_dorg2r_scipy_dorgbr_scipy_dorghr_scipy_dorgl2_scipy_dorglq_scipy_dorgql_scipy_dorgqr_scipy_dorgr2_scipy_dorgrq_scipy_dorgtr_scipy_dorm2l_scipy_dorm2r_scipy_dormbr_scipy_dormhr_scipy_dorml2_scipy_dormlq_scipy_dormql_scipy_dormqr_scipy_dormr2_scipy_dormr3_scipy_dormrq_scipy_dormrz_scipy_dormtr_scipy_dpbcon_scipy_dpbequ_scipy_dpbrfs_scipy_dpbstf_scipy_dpbsv_scipy_dpbsvx_scipy_dpbtf2_scipy_dpbtrf_scipy_dpbtrs_scipy_dpftrf_scipy_dpftri_scipy_dpftrs_scipy_dpocon_scipy_dpoequ_scipy_dpoequb_scipy_dporfs_scipy_dposv_scipy_dposvx_scipy_dpotf2_scipy_dpotrf_scipy_dpotri_scipy_dpotrs_scipy_dppcon_scipy_dppequ_scipy_dpprfs_scipy_dppsv_scipy_dppsvx_scipy_dpptrf_scipy_dpptri_scipy_dpptrs_scipy_dpstf2_scipy_dpstrf_scipy_dptcon_scipy_dpteqr_scipy_dptrfs_scipy_dptsv_scipy_dptsvx_scipy_dpttrf_scipy_dpttrs_scipy_dptts2_scipy_drscl_scipy_dsbev_scipy_dsbevd_scipy_dsbevx_scipy_dsbgst_scipy_dsbgv_scipy_dsbgvd_scipy_dsbgvx_scipy_dsbtrd_scipy_dsfrk_scipy_dsgesv_scipy_dspcon_scipy_dspev_scipy_dspevd_scipy_dspevx_scipy_dspgst_scipy_dspgv_scipy_dspgvd_scipy_dspgvx_scipy_dsposv_scipy_dsprfs_scipy_dspsv_scipy_dspsvx_scipy_dsptrd_scipy_dsptrf_scipy_dsptri_scipy_dsptrs_scipy_dstebz_scipy_dstedc_scipy_dstegr_scipy_dstein_scipy_dstemr_scipy_dsteqr_scipy_dsterf_scipy_dstev_scipy_dstevd_scipy_dstevr_scipy_dstevx_scipy_dsycon_scipy_dsyconv_scipy_dsyequb_scipy_dsyev_scipy_dsyevd_scipy_dsyevr_scipy_dsyevx_scipy_dsygs2_scipy_dsygst_scipy_dsygv_scipy_dsygvd_scipy_dsygvx_scipy_dsyrfs_scipy_dsysv_scipy_dsysvx_scipy_dsyswapr_scipy_dsytd2_scipy_dsytf2_scipy_dsytrd_scipy_dsytrf_scipy_dsytri_scipy_dsytri2_scipy_dsytri2x_scipy_dsytrs_scipy_dsytrs2_scipy_dtbcon_scipy_dtbrfs_scipy_dtbtrs_scipy_dtfsm_scipy_dtftri_scipy_dtfttp_scipy_dtfttr_scipy_dtgevc_scipy_dtgex2_scipy_dtgexc_scipy_dtgsen_scipy_dtgsja_scipy_dtgsna_scipy_dtgsy2_scipy_dtgsyl_scipy_dtpcon_scipy_dtpmqrt_scipy_dtpqrt_scipy_dtpqrt2_scipy_dtprfb_scipy_dtprfs_scipy_dtptri_scipy_dtptrs_scipy_dtpttf_scipy_dtpttr_scipy_dtrcon_scipy_dtrevc_scipy_dtrexc_scipy_dtrrfs_scipy_dtrsen_scipy_dtrsna_scipy_dtrsyl_scipy_dtrti2_scipy_dtrtri_scipy_dtrtrs_scipy_dtrttf_scipy_dtrttp_scipy_dtzrzf_scipy_dzsum1_scipy_icmax1_scipy_ieeeck_scipy_ilaclc_scipy_ilaclr_scipy_iladiag_scipy_iladlc_scipy_iladlr_scipy_ilaprec_scipy_ilaslc_scipy_ilaslr_scipy_ilatrans_scipy_ilauplo_scipy_ilaver_scipy_ilazlc_scipy_ilazlr_scipy_izmax1_scipy_sbbcsd_scipy_sbdsdc_scipy_sbdsqr_scipy_scsum1_scipy_sdisna_scipy_sgbbrd_scipy_sgbcon_scipy_sgbequ_scipy_sgbequb_scipy_sgbrfs_scipy_sgbsv_scipy_sgbsvx_scipy_sgbtf2_scipy_sgbtrf_scipy_sgbtrs_scipy_sgebak_scipy_sgebal_scipy_sgebd2_scipy_sgebrd_scipy_sgecon_scipy_sgeequ_scipy_sgeequb_scipy_sgees_scipy_sgeesx_scipy_sgeev_scipy_sgeevx_scipy_sgehd2_scipy_sgehrd_scipy_sgejsv_scipy_sgelq2_scipy_sgelqf_scipy_sgels_scipy_sgelsd_scipy_sgelss_scipy_sgelsy_scipy_sgemqrt_scipy_sgeql2_scipy_sgeqlf_scipy_sgeqp3_scipy_sgeqr2_scipy_sgeqr2p_scipy_sgeqrf_scipy_sgeqrfp_scipy_sgeqrt_scipy_sgeqrt2_scipy_sgeqrt3_scipy_sgerfs_scipy_sgerq2_scipy_sgerqf_scipy_sgesc2_scipy_sgesdd_scipy_sgesv_scipy_sgesvd_scipy_sgesvj_scipy_sgesvx_scipy_sgetc2_scipy_sgetf2_scipy_sgetrf_scipy_sgetri_scipy_sgetrs_scipy_sggbak_scipy_sggbal_scipy_sgges_scipy_sggesx_scipy_sggev_scipy_sggevx_scipy_sggglm_scipy_sgghrd_scipy_sgglse_scipy_sggqrf_scipy_sggrqf_scipy_sgsvj0_scipy_sgsvj1_scipy_sgtcon_scipy_sgtrfs_scipy_sgtsv_scipy_sgtsvx_scipy_sgttrf_scipy_sgttrs_scipy_sgtts2_scipy_shgeqz_scipy_shsein_scipy_shseqr_scipy_slabad_scipy_slabrd_scipy_slacn2_scipy_slacon_scipy_slacpy_scipy_sladiv_scipy_slae2_scipy_slaebz_scipy_slaed0_scipy_slaed1_scipy_slaed2_scipy_slaed3_scipy_slaed4_scipy_slaed5_scipy_slaed6_scipy_slaed7_scipy_slaed8_scipy_slaed9_scipy_slaeda_scipy_slaein_scipy_slaev2_scipy_slaexc_scipy_slag2_scipy_slag2d_scipy_slags2_scipy_slagtf_scipy_slagtm_scipy_slagts_scipy_slagv2_scipy_slahqr_scipy_slahr2_scipy_slaic1_scipy_slaln2_scipy_slals0_scipy_slalsa_scipy_slalsd_scipy_slamch_scipy_slamrg_scipy_slangb_scipy_slange_scipy_slangt_scipy_slanhs_scipy_slansb_scipy_slansf_scipy_slansp_scipy_slanst_scipy_slansy_scipy_slantb_scipy_slantp_scipy_slantr_scipy_slanv2_scipy_slapll_scipy_slapmr_scipy_slapmt_scipy_slapy2_scipy_slapy3_scipy_slaqgb_scipy_slaqge_scipy_slaqp2_scipy_slaqps_scipy_slaqr0_scipy_slaqr1_scipy_slaqr2_scipy_slaqr3_scipy_slaqr4_scipy_slaqr5_scipy_slaqsb_scipy_slaqsp_scipy_slaqsy_scipy_slaqtr_scipy_slar1v_scipy_slar2v_scipy_slarf_scipy_slarfb_scipy_slarfg_scipy_slarfgp_scipy_slarft_scipy_slarfx_scipy_slargv_scipy_slarnv_scipy_slarra_scipy_slarrb_scipy_slarrc_scipy_slarrd_scipy_slarre_scipy_slarrf_scipy_slarrj_scipy_slarrk_scipy_slarrr_scipy_slarrv_scipy_slartg_scipy_slartgp_scipy_slartgs_scipy_slartv_scipy_slaruv_scipy_slarz_scipy_slarzb_scipy_slarzt_scipy_slas2_scipy_slascl_scipy_slasd0_scipy_slasd1_scipy_slasd2_scipy_slasd3_scipy_slasd4_scipy_slasd5_scipy_slasd6_scipy_slasd7_scipy_slasd8_scipy_slasda_scipy_slasdq_scipy_slasdt_scipy_slaset_scipy_slasq1_scipy_slasq2_scipy_slasq3_scipy_slasq4_scipy_slasq6_scipy_slasr_scipy_slasrt_scipy_slassq_scipy_slasv2_scipy_slaswp_scipy_slasy2_scipy_slasyf_scipy_slatbs_scipy_slatdf_scipy_slatps_scipy_slatrd_scipy_slatrs_scipy_slatrz_scipy_slauu2_scipy_slauum_scipy_sopgtr_scipy_sopmtr_scipy_sorbdb_scipy_sorcsd_scipy_sorg2l_scipy_sorg2r_scipy_sorgbr_scipy_sorghr_scipy_sorgl2_scipy_sorglq_scipy_sorgql_scipy_sorgqr_scipy_sorgr2_scipy_sorgrq_scipy_sorgtr_scipy_sorm2l_scipy_sorm2r_scipy_sormbr_scipy_sormhr_scipy_sorml2_scipy_sormlq_scipy_sormql_scipy_sormqr_scipy_sormr2_scipy_sormr3_scipy_sormrq_scipy_sormrz_scipy_sormtr_scipy_spbcon_scipy_spbequ_scipy_spbrfs_scipy_spbstf_scipy_spbsv_scipy_spbsvx_scipy_spbtf2_scipy_spbtrf_scipy_spbtrs_scipy_spftrf_scipy_spftri_scipy_spftrs_scipy_spocon_scipy_spoequ_scipy_spoequb_scipy_sporfs_scipy_sposv_scipy_sposvx_scipy_spotf2_scipy_spotrf_scipy_spotri_scipy_spotrs_scipy_sppcon_scipy_sppequ_scipy_spprfs_scipy_sppsv_scipy_sppsvx_scipy_spptrf_scipy_spptri_scipy_spptrs_scipy_spstf2_scipy_spstrf_scipy_sptcon_scipy_spteqr_scipy_sptrfs_scipy_sptsv_scipy_sptsvx_scipy_spttrf_scipy_spttrs_scipy_sptts2_scipy_srscl_scipy_ssbev_scipy_ssbevd_scipy_ssbevx_scipy_ssbgst_scipy_ssbgv_scipy_ssbgvd_scipy_ssbgvx_scipy_ssbtrd_scipy_ssfrk_scipy_sspcon_scipy_sspev_scipy_sspevd_scipy_sspevx_scipy_sspgst_scipy_sspgv_scipy_sspgvd_scipy_sspgvx_scipy_ssprfs_scipy_sspsv_scipy_sspsvx_scipy_ssptrd_scipy_ssptrf_scipy_ssptri_scipy_ssptrs_scipy_sstebz_scipy_sstedc_scipy_sstegr_scipy_sstein_scipy_sstemr_scipy_ssteqr_scipy_ssterf_scipy_sstev_scipy_sstevd_scipy_sstevr_scipy_sstevx_scipy_ssycon_scipy_ssyconv_scipy_ssyequb_scipy_ssyev_scipy_ssyevd_scipy_ssyevr_scipy_ssyevx_scipy_ssygs2_scipy_ssygst_scipy_ssygv_scipy_ssygvd_scipy_ssygvx_scipy_ssyrfs_scipy_ssysv_scipy_ssysvx_scipy_ssyswapr_scipy_ssytd2_scipy_ssytf2_scipy_ssytrd_scipy_ssytrf_scipy_ssytri_scipy_ssytri2_scipy_ssytri2x_scipy_ssytrs_scipy_ssytrs2_scipy_stbcon_scipy_stbrfs_scipy_stbtrs_scipy_stfsm_scipy_stftri_scipy_stfttp_scipy_stfttr_scipy_stgevc_scipy_stgex2_scipy_stgexc_scipy_stgsen_scipy_stgsja_scipy_stgsna_scipy_stgsy2_scipy_stgsyl_scipy_stpcon_scipy_stpmqrt_scipy_stpqrt_scipy_stpqrt2_scipy_stprfb_scipy_stprfs_scipy_stptri_scipy_stptrs_scipy_stpttf_scipy_stpttr_scipy_strcon_scipy_strevc_scipy_strexc_scipy_strrfs_scipy_strsen_scipy_strsna_scipy_strsyl_scipy_strti2_scipy_strtri_scipy_strtrs_scipy_strttf_scipy_strttp_scipy_stzrzf_scipy_xerbla_array_scipy_zbbcsd_scipy_zbdsqr_scipy_zcgesv_scipy_zcposv_scipy_zdrscl_scipy_zgbbrd_scipy_zgbcon_scipy_zgbequ_scipy_zgbequb_scipy_zgbrfs_scipy_zgbsv_scipy_zgbsvx_scipy_zgbtf2_scipy_zgbtrf_scipy_zgbtrs_scipy_zgebak_scipy_zgebal_scipy_zgebd2_scipy_zgebrd_scipy_zgecon_scipy_zgeequ_scipy_zgeequb_scipy_zgees_scipy_zgeesx_scipy_zgeev_scipy_zgeevx_scipy_zgehd2_scipy_zgehrd_scipy_zgelq2_scipy_zgelqf_scipy_zgels_scipy_zgelsd_scipy_zgelss_scipy_zgelsy_scipy_zgemqrt_scipy_zgeql2_scipy_zgeqlf_scipy_zgeqp3_scipy_zgeqr2_scipy_zgeqr2p_scipy_zgeqrf_scipy_zgeqrfp_scipy_zgeqrt_scipy_zgeqrt2_scipy_zgeqrt3_scipy_zgerfs_scipy_zgerq2_scipy_zgerqf_scipy_zgesc2_scipy_zgesdd_scipy_zgesv_scipy_zgesvd_scipy_zgesvx_scipy_zgetc2_scipy_zgetf2_scipy_zgetrf_scipy_zgetri_scipy_zgetrs_scipy_zggbak_scipy_zggbal_scipy_zgges_scipy_zggesx_scipy_zggev_scipy_zggevx_scipy_zggglm_scipy_zgghrd_scipy_zgglse_scipy_zggqrf_scipy_zggrqf_scipy_zgtcon_scipy_zgtrfs_scipy_zgtsv_scipy_zgtsvx_scipy_zgttrf_scipy_zgttrs_scipy_zgtts2_scipy_zhbev_scipy_zhbevd_scipy_zhbevx_scipy_zhbgst_scipy_zhbgv_scipy_zhbgvd_scipy_zhbgvx_scipy_zhbtrd_scipy_zhecon_scipy_zheequb_scipy_zheev_scipy_zheevd_scipy_zheevr_scipy_zheevx_scipy_zhegs2_scipy_zhegst_scipy_zhegv_scipy_zhegvd_scipy_zhegvx_scipy_zherfs_scipy_zhesv_scipy_zhesvx_scipy_zheswapr_scipy_zhetd2_scipy_zhetf2_scipy_zhetrd_scipy_zhetrf_scipy_zhetri_scipy_zhetri2_scipy_zhetri2x_scipy_zhetrs_scipy_zhetrs2_scipy_zhfrk_scipy_zhgeqz_scipy_zhpcon_scipy_zhpev_scipy_zhpevd_scipy_zhpevx_scipy_zhpgst_scipy_zhpgv_scipy_zhpgvd_scipy_zhpgvx_scipy_zhprfs_scipy_zhpsv_scipy_zhpsvx_scipy_zhptrd_scipy_zhptrf_scipy_zhptri_scipy_zhptrs_scipy_zhsein_scipy_zhseqr_scipy_zlabrd_scipy_zlacgv_scipy_zlacn2_scipy_zlacon_scipy_zlacp2_scipy_zlacpy_scipy_zlacrm_scipy_zlacrt_scipy_zlaed0_scipy_zlaed7_scipy_zlaed8_scipy_zlaein_scipy_zlaesy_scipy_zlaev2_scipy_zlag2c_scipy_zlags2_scipy_zlagtm_scipy_zlahef_scipy_zlahqr_scipy_zlahr2_scipy_zlaic1_scipy_zlals0_scipy_zlalsa_scipy_zlalsd_scipy_zlangb_scipy_zlange_scipy_zlangt_scipy_zlanhb_scipy_zlanhe_scipy_zlanhf_scipy_zlanhp_scipy_zlanhs_scipy_zlanht_scipy_zlansb_scipy_zlansp_scipy_zlansy_scipy_zlantb_scipy_zlantp_scipy_zlantr_scipy_zlapll_scipy_zlapmr_scipy_zlapmt_scipy_zlaqgb_scipy_zlaqge_scipy_zlaqhb_scipy_zlaqhe_scipy_zlaqhp_scipy_zlaqp2_scipy_zlaqps_scipy_zlaqr0_scipy_zlaqr1_scipy_zlaqr2_scipy_zlaqr3_scipy_zlaqr4_scipy_zlaqr5_scipy_zlaqsb_scipy_zlaqsp_scipy_zlaqsy_scipy_zlar1v_scipy_zlar2v_scipy_zlarcm_scipy_zlarf_scipy_zlarfb_scipy_zlarfg_scipy_zlarfgp_scipy_zlarft_scipy_zlarfx_scipy_zlargv_scipy_zlarnv_scipy_zlarrv_scipy_zlartg_scipy_zlartv_scipy_zlarz_scipy_zlarzb_scipy_zlarzt_scipy_zlascl_scipy_zlaset_scipy_zlasr_scipy_zlassq_scipy_zlaswp_scipy_zlasyf_scipy_zlat2c_scipy_zlatbs_scipy_zlatdf_scipy_zlatps_scipy_zlatrd_scipy_zlatrs_scipy_zlatrz_scipy_zlauu2_scipy_zlauum_scipy_zpbcon_scipy_zpbequ_scipy_zpbrfs_scipy_zpbstf_scipy_zpbsv_scipy_zpbsvx_scipy_zpbtf2_scipy_zpbtrf_scipy_zpbtrs_scipy_zpftrf_scipy_zpftri_scipy_zpftrs_scipy_zpocon_scipy_zpoequ_scipy_zpoequb_scipy_zporfs_scipy_zposv_scipy_zposvx_scipy_zpotf2_scipy_zpotrf_scipy_zpotri_scipy_zpotrs_scipy_zppcon_scipy_zppequ_scipy_zpprfs_scipy_zppsv_scipy_zppsvx_scipy_zpptrf_scipy_zpptri_scipy_zpptrs_scipy_zpstf2_scipy_zpstrf_scipy_zptcon_scipy_zpteqr_scipy_zptrfs_scipy_zptsv_scipy_zptsvx_scipy_zpttrf_scipy_zpttrs_scipy_zptts2_scipy_zrot_scipy_zspcon_scipy_zspmv_scipy_zspr_scipy_zsprfs_scipy_zspsv_scipy_zspsvx_scipy_zsptrf_scipy_zsptri_scipy_zsptrs_scipy_zstedc_scipy_zstegr_scipy_zstein_scipy_zstemr_scipy_zsteqr_scipy_zsycon_scipy_zsyconv_scipy_zsyequb_scipy_zsymv_scipy_zsyr_scipy_zsyrfs_scipy_zsysv_scipy_zsysvx_scipy_zsyswapr_scipy_zsytf2_scipy_zsytrf_scipy_zsytri_scipy_zsytri2_scipy_zsytri2x_scipy_zsytrs_scipy_zsytrs2_scipy_ztbcon_scipy_ztbrfs_scipy_ztbtrs_scipy_ztfsm_scipy_ztftri_scipy_ztfttp_scipy_ztfttr_scipy_ztgevc_scipy_ztgex2_scipy_ztgexc_scipy_ztgsen_scipy_ztgsja_scipy_ztgsna_scipy_ztgsy2_scipy_ztgsyl_scipy_ztpcon_scipy_ztpmqrt_scipy_ztpqrt_scipy_ztpqrt2_scipy_ztprfb_scipy_ztprfs_scipy_ztptri_scipy_ztptrs_scipy_ztpttf_scipy_ztpttr_scipy_ztrcon_scipy_ztrevc_scipy_ztrexc_scipy_ztrrfs_scipy_ztrsen_scipy_ztrsna_scipy_ztrsyl_scipy_ztrti2_scipy_ztrtri_scipy_ztrtrs_scipy_ztrttf_scipy_ztrttp_scipy_ztzrzf_scipy_zunbdb_scipy_zuncsd_scipy_zung2l_scipy_zung2r_scipy_zungbr_scipy_zunghr_scipy_zungl2_scipy_zunglq_scipy_zungql_scipy_zungqr_scipy_zungr2_scipy_zungrq_scipy_zungtr_scipy_zunm2l_scipy_zunm2r_scipy_zunmbr_scipy_zunmhr_scipy_zunml2_scipy_zunmlq_scipy_zunmql_scipy_zunmqr_scipy_zunmr2_scipy_zunmr3_scipy_zunmrq_scipy_zunmrz_scipy_zunmtr_scipy_zupgtr_scipy_zupmtr_libm.so.6libscipy_openblas.solibc.so.6GLIBC_2.2.5/opt/_internal/cpython-3.12.11/lib/python3.12/site-packages/scipy_openblas32/liblibscipy_openblas-b75cc656.so$ORIGIN/../../scipy.libs