XdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxDXdxDxdxD