- Elasticsearch创建快照与快照恢复
写bug的羊羊
elasticsearchelasticsearch大数据
使用了kibana进行请求发送1.旧es创建快照1.查看elasticsearch.yml配置的仓库路径,没有添加上,重启espath.repo:["E:/develop/elasticsearch-7.9.3/backups"]2.注册仓库,如仓库名backup1PUT/_snapshot/backup1{"type":"fs","settings":{"location":"backup1"}
- centos9 配置yum源(清华源)
风异
centos
sudocp-r/etc/yum.repos.d/etc/yum.repos.d.backup备份yum源sudovim/etc/yum.repos.d/CentOS-Base.repo编辑yum源仓库[baseos]name=CentOSStream$releasever-BaseOSbaseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-stre
- ubuntu国内镜像源手动配置
鬼才血脉
ubuntulinux运维
备份当前源列表打开终端,执行以下命令备份当前的源列表:sudocp/etc/apt/sources.list/etc/apt/sources.list.backup编辑源列表文件使用文本编辑器编辑/etc/apt/sources.list文件,例如使用nano:sudovim/etc/apt/sources.list添加或修改镜像源将文件中的内容替换为适合的国内镜像源地址。例如,使用阿里云的镜像源
- 如何移植一个OpenHarmony基线
晚风_落日
harmonyos鸿蒙
写在前边:分享这篇总结是希望有小伙伴在进行代码移植时,少走一点弯路,有个参考,可以更快的移植代码。一、创建远程代码仓此步骤各项目会有专门的人来处理,不做详细介绍这里我们假设创建的远程仓名为:RK3568_OpenHarmony5.1.0_Backup二、开源仓代码获取以5.1.0-Release为例开源基线:OpenHarmony-v5.1.0-Release:zh-cn/release-note
- Milvus 2.5.14 使用 milvus-backup v0.5.7 的备份实践
gs80140
基础知识科谱milvus
目录Milvus2.5.14使用milvus-backupv0.5.7的备份实践背景部署环境1.安装milvus-backup工具2.确认Milvus服务信息3.编写backup.yaml配置4.执行备份5.遇到的问题及解决方案(1)invalidkey:log.file.rootpath(2)invalidkey:milvus.port或milvus.address(3)备份只有meta文件(4
- keepalived案例
皮蛋solo.粥
云计算chrome前端运维
案例一:Web服务器高可用集群场景:为Nginx构建双节点热备,确保服务连续性架构图Client→VIP(192.168.1.100)↓+----------------++----------------+|Master(1.10)||Backup(1.11)||Keepalived||Keepalived||Nginx||Nginx|+----------------++-----------
- 【Elasticsearch】安全地删除快照仓库、快照
安全地删除快照仓库、快照1.删除仓库2.删除快照在上一篇博文《【Elasticsearch】快照与恢复功能详解》中,我们针对Elasticsearch的快照和恢复功能进行的讲解。细心的同学可能会对以下的命令产生疑惑,直接删除是安全的吗?本文将会给你答案。删除仓库:DELETE/_snapshot/my_backup_repo删除快照:DELETE/_snapshot/my_backup_repo/
- Docker 部署的 GitLab备份和恢复
码上有约
经验分享dockergitlabeureka
Docker部署的GitLab备份和恢复数据使用Docker部署的GitLab可以通过Docker命令来进行备份和恢复。以下是具体步骤:1.停止GitLab容器在进行备份之前,最好先停止GitLab容器以确保数据一致性:dockerstop2.创建备份启动GitLab容器并执行备份命令:dockerexec-tgitlab-backupcreate备份文件将存储在GitLab容器内的/var/op
- NetBackup7.6客户端安装及配置
Sp0n
1.从官网选择对应版本进行下载2.解压并进入目录执行安装命令./install3.正确填写服务端名称、客户端名称可以看到NBU客户端已经安装好并在后台运行了4.可以在/user/openv/netbackup/bp.conf文件中修改服务端名和客户端名5.打开防火墙1556端口(让服务端和客户端可以正常互连)
- 阿里云RDS MySQL物理备份文件恢复到自建数据库
官方文档RDSMySQL物理备份用XtraBackup恢复到自建数据库_云数据库RDS(RDS)-阿里云帮助中心通过Percona官方仓库来安装最新版本的xtrabackup:(如果没安装)#添加Percona仓库sudoyuminstallhttps://repo.percona.com/yum/percona-release-latest.noarch.rpmsudopercona-relea
- centos 8 换源
路过的一个普通人
Linux笔记centoslinux运维
centos8换源进入root,切换至yum.repos.d目录cd/etc/yum.repos.d/创建新文件夹并将源文件备份为repo.bakmkdirbackup&&mv*repobackup/下载国内yum源文件curl-o/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-8.repo更新下载yum
- CentOS7环境卸载MySQL5.7
Hadoop_Liang
mysql数据库mysql
备份重要数据切记,卸载之前先备份mysql重要的数据。备份一个数据库例如:备份名为mydatabase的数据库到backup.sql的文件中mysqldump-uroot-ppassword123mydatabase>backup.sql备份所有数据库mysqldump-uroot-ppassword123--all-databases>all_databases_backup.sql注意:-p后
- Shell脚本编程完全指南:从基础到自动化项目实战
一、Shell脚本基础概念Shell脚本(ShellScript)是通过文本文件编写的命令集合,由Shell命令解释器逐行解析执行。作为Unix/Linux系统的核心自动化工具,它能完成:系统管理任务自动化复杂命令序列的封装文件批量处理服务状态监控等典型应用场景:#!/bin/bash#自动备份网站目录并删除7天前的备份tar-czf/backup/web_$(date+%Y%m%d).tar.g
- pip设置国内源:阿里云、腾讯云、清华大学源
[email protected]
Pythonpippython
更换Python的pip源(尤其是默认源访问速度较慢时)是一个常见需求,可以显著提升安装Python包的速度。以下是如何为pip设置国内源的步骤,以阿里云、腾讯云、清华大学源为例:1.备份原有源配置(可选但推荐)在进行任何更改之前,备份现有的pip配置文件是一个好习惯。这样,如果遇到问题,你可以轻松恢复到初始状态。Bash1mkdir~/.pip_backup2cp~/.pip/pip.conf~
- linux安装java jdk17 ng
1、下载jdk包wget--header=“Cookie:oraclelicense=accept-securebackup-cookie”https://download.oracle.com/java/17/archive/jdk-17.0.10_linux-x64_bin.tar.gz2、解压jdk包:tar-zxvfjdk-17.0.10_linux-x64_bin.tar.gz3、编辑配
- 在linux安装jdk,运行jar
Liang.Wang
javalinuxjar
进入/usr/local文件夹cd/usr/local执行命令创建java文件夹mkdirjava进入java文件夹cdjava执行在线下载命令wget--no-check-certificate--no-cookies--header“Cookie:oraclelicense=accept-securebackup-cookie”http://download.oracle.com/otn-pu
- MySQL 8.0 OCP 1Z0-908 题目解析(17)
一只fish
MYSQLOCPmysql数据库
题目65Choosetwo.Whichtwoarecharacteristicsofsnapshot-basedbackups?□A)Thefrozenfilesystemcanbeclonedtoanothervirtualmachineimmediatelyintoactiveservice.□B)ThereisnoneedforInnoDBtablestoperformitsownrecov
- Nginx轻松上手
oaa114龙仔
Nginxnginx运维服务器
Nginx轻松上手准备环境部署安装源码安装yum安装nginx配置文件简单使用虚拟主机与域名解析反向代理负载均衡动静分离nginx+keepalived高可用准备环境Linux操作系统IP地址功能Centos7192.168.1.20nginx_server+keepalivedCentos7192.168.1.21nginxbackup+keepalivedCentos7192.168.1.22
- 【jdk】使用wget下载jdk8
催化开天地
java开发语言
因为在oracle官网下载jdk需要如果直接在linux中使用wget命令下载,实际下载是一个html文件,所以需要通过一下命令wget--no-check-certificate--no-cookies--header"Cookie:oraclelicense=accept-securebackup-cookie"http://download.oracle.com/otn-pub/java/j
- 安装milvus数据库
weixin_44080967
milvus数据库
#创建保存目录mkdir-pdocker_images_backupcddocker_images_backup#1.保存Milvus镜像dockersave-omilvus_latest.tarmilvusdb/milvus:latest#2.保存MinIO镜像dockersave-ominio_latest.tarminio/minio:latest#3.保存ETCD镜像dockersave-
- 准确--使用 ThinBackup 插件执行备份和恢复
ascarl2010
Dockerjava
使用ThinBackup插件执行备份和恢复导出(备份)步骤:进入ManageJenkins>ThinBackup。设置Backupscheduleforfullbackups(可选),并配置Filestoexclude(可选)。点击BackupNow立即执行手动备份。然后去容器中压缩并拷贝出来导入(恢复)步骤:在新(或需要恢复的)Jenkins服务器上安装ThinBackup插件。将备份文件夹(例
- MoeBackupDX:游戏数据备份解决方案
柴犬小管家
本文还有配套的精品资源,点击获取简介:标题中的"MoeBackupDX"暗示了一个可能专注于特定游戏或应用数据备份的工具,用于防止数据丢失或损坏。项目代码"moeldv_XIDAGJGV-master"可能指代源代码仓库中的主分支,代表了软件的最新稳定版本。标签"Apex"可能指向流行游戏ApexLegends或代表高性能编程技术。用户可获取源代码,了解其工作原理,并根据需要进行定制或二次开发,这
- CentOS 7 yum操作时出现 Could not resolve host: mirrorlist.centos.org 解决记录
qq_30327325
centoslinux运维
开始查询网络上大部分的解决方案是修改DNS为8.8.8.8和8.8.4.4,但是经过多次尝试未果,只能寻找其他解决办法,然后就是想到切换yum源,通过DeepSeek查询到各个源的地址,这里列一下#备份原有配置文件sudomv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backup#下载阿里云的镜像源配置文件
- 探秘高效数据库备份利器:pg_probackup
郦岚彬Steward
探秘高效数据库备份利器:pg_probackuppg_probackuppg_probackup是一个开源的PostgreSQL备份和恢复工具,用于在PostgreSQL中进行在线备份和恢复操作。-功能:PostgreSQL备份和恢复工具;在线备份;恢复操作。-特点:易于使用;轻量级;支持多种编程语言;高性能。项目地址:https://gitcode.com/gh_mirrors/pg/pg_pr
- postgresql增量备份系列二 pg_probackup
necessary653
postgresqlpostgresql数据库
已经很久没有发文章了,主要是最近工作上的内容都不适合发文章公开。可能往后文章发表也不这么频繁了,不过大家有问题我们可以交流。之前有写过PG增量备份的其他工具使用方法,pg_probackup也是应用比较多的PG备份工具。一.pg_probackuppg_probackup是一个用于管理PostgreSQL数据库集群备份与恢复的实用工具,截止2.5.15版本,支持PostgreSQL11-16及以上
- EnterpriseDB/Barman 地理冗余配置指南:构建级联备份架构
管翔渊Lacey
EnterpriseDB/Barman地理冗余配置指南:构建级联备份架构barmanBarman-BackupandRecoveryManagerforPostgreSQL项目地址:https://gitcode.com/gh_mirrors/ba/barman地理冗余概述在现代数据库运维中,确保数据的高可用性和灾难恢复能力至关重要。EnterpriseDB/Barman提供的地理冗余功能允许管理
- buuctf新生赛(ACTF2020)
HfLllo
linux运维服务器
1.Upload:文件上传,phtml2.BackupFile:codesearch找备份文件,弱类型比较==(只要求值相等)3.Exec:网站;ls(linux列出当前目录有哪些文件和目录)网站;ls/(看根目录里有什么内容)查看文件:web;cat/file4.Include:php://filter/read=convert.base64-encode/resource=file.php,再
- 带标签的 Docker 镜像打包为 tar 文件
大霸王龙
docker容器运维
现在还有人用docker吗要将带标签的Docker镜像打包为tar文件,请使用dockersave命令。以下是详细操作指南:一、单镜像打包(推荐方式)#基础格式dockersave-o[输出文件名].tar[镜像名]:[标签]#示例:将my-app:1.0保存为app-backup.tardockersave-oapp-backup.tarmy-app:1.0二、多镜像打包#同时打包多个镜像到单个
- Mysql备份
牛爷爷敲代码
mysql数据库
Mysql备份MySQL备份类型及优势详解MySQL作为最流行的开源数据库之一,其数据备份策略至关重要。以下是MySQL常见备份类型及其优势的详细解析:一、物理备份vs.逻辑备份1.物理备份(PhysicalBackup)定义:直接复制数据库文件(如数据文件、日志文件)。工具:mysqldump(逻辑+物理混合)、mysqlpump、xtrabackup(推荐)。优势:速度快:无需解析SQL语句,
- 全网最完整Redis源码讲解-如何实现RDB持久化
神技圈子
redisbootstrap数据库
前言Redis持久化RDB(RedisDatabaseBackup)将所有数据在特定时刻以一种形式写入到一个专用的二进制文件中,通常给人感觉是“全量拷贝”。RDB实现原理我们一起来解析代码rdb.c,Redis通过定时或者规则触发fork子进程,子进程把当前数据拷贝到RDB文件,主进程继续服务客户端,避免阻塞,这是通过rdbSaveBackground函数实现的。RDB系统过程首先进入rdbSav
- HQL之投影查询
归来朝歌
HQLHibernate查询语句投影查询
在HQL查询中,常常面临这样一个场景,对于多表查询,是要将一个表的对象查出来还是要只需要每个表中的几个字段,最后放在一起显示?
针对上面的场景,如果需要将一个对象查出来:
HQL语句写“from 对象”即可
Session session = HibernateUtil.openSession();
- Spring整合redis
bylijinnan
redis
pom.xml
<dependencies>
<!-- Spring Data - Redis Library -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redi
- org.hibernate.NonUniqueResultException: query did not return a unique result: 2
0624chenhong
Hibernate
参考:http://blog.csdn.net/qingfeilee/article/details/7052736
org.hibernate.NonUniqueResultException: query did not return a unique result: 2
在项目中出现了org.hiber
- android动画效果
不懂事的小屁孩
android动画
前几天弄alertdialog和popupwindow的时候,用到了android的动画效果,今天专门研究了一下关于android的动画效果,列出来,方便以后使用。
Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。
第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。
- js delete 删除机理以及它的内存泄露问题的解决方案
换个号韩国红果果
JavaScript
delete删除属性时只是解除了属性与对象的绑定,故当属性值为一个对象时,删除时会造成内存泄露 (其实还未删除)
举例:
var person={name:{firstname:'bob'}}
var p=person.name
delete person.name
p.firstname -->'bob'
// 依然可以访问p.firstname,存在内存泄露
- Oracle将零干预分析加入网络即服务计划
蓝儿唯美
oracle
由Oracle通信技术部门主导的演示项目并没有在本月较早前法国南斯举行的行业集团TM论坛大会中获得嘉奖。但是,Oracle通信官员解雇致力于打造一个支持零干预分配和编制功能的网络即服务(NaaS)平台,帮助企业以更灵活和更适合云的方式实现通信服务提供商(CSP)的连接产品。这个Oracle主导的项目属于TM Forum Live!活动上展示的Catalyst计划的19个项目之一。Catalyst计
- spring学习——springmvc(二)
a-john
springMVC
Spring MVC提供了非常方便的文件上传功能。
1,配置Spring支持文件上传:
DispatcherServlet本身并不知道如何处理multipart的表单数据,需要一个multipart解析器把POST请求的multipart数据中抽取出来,这样DispatcherServlet就能将其传递给我们的控制器了。为了在Spring中注册multipart解析器,需要声明一个实现了Mul
- POJ-2828-Buy Tickets
aijuans
ACM_POJ
POJ-2828-Buy Tickets
http://poj.org/problem?id=2828
线段树,逆序插入
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>using namespace std;#define N 200010struct
- Java Ant build.xml详解
asia007
build.xml
1,什么是antant是构建工具2,什么是构建概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个3,ant的好处跨平台 --因为ant是使用java实现的,所以它跨平台使用简单--与ant的兄弟make比起来语法清晰--同样是和make相比功能强大--ant能做的事情很多,可能你用了很久,你仍然不知道它能有
- android按钮监听器的四种技术
百合不是茶
androidxml配置监听器实现接口
android开发中经常会用到各种各样的监听器,android监听器的写法与java又有不同的地方;
1,activity中使用内部类实现接口 ,创建内部类实例 使用add方法 与java类似
创建监听器的实例
myLis lis = new myLis();
使用add方法给按钮添加监听器
- 软件架构师不等同于资深程序员
bijian1013
程序员架构师架构设计
本文的作者Armel Nene是ETAPIX Global公司的首席架构师,他居住在伦敦,他参与过的开源项目包括 Apache Lucene,,Apache Nutch, Liferay 和 Pentaho等。
如今很多的公司
- TeamForge Wiki Syntax & CollabNet User Information Center
sunjing
TeamForgeHow doAttachementAnchorWiki Syntax
the CollabNet user information center http://help.collab.net/
How do I create a new Wiki page?
A CollabNet TeamForge project can have any number of Wiki pages. All Wiki pages are linked, and
- 【Redis四】Redis数据类型
bit1129
redis
概述
Redis是一个高性能的数据结构服务器,称之为数据结构服务器的原因是,它提供了丰富的数据类型以满足不同的应用场景,本文对Redis的数据类型以及对这些类型可能的操作进行总结。
Redis常用的数据类型包括string、set、list、hash以及sorted set.Redis本身是K/V系统,这里的数据类型指的是value的类型,而不是key的类型,key的类型只有一种即string
- SSH2整合-附源码
白糖_
eclipsespringtomcatHibernateGoogle
今天用eclipse终于整合出了struts2+hibernate+spring框架。
我创建的是tomcat项目,需要有tomcat插件。导入项目以后,鼠标右键选择属性,然后再找到“tomcat”项,勾选一下“Is a tomcat project”即可。具体方法见源码里的jsp图片,sql也在源码里。
补充1:项目中部分jar包不是最新版的,可能导
- [转]开源项目代码的学习方法
braveCS
学习方法
转自:
http://blog.sina.com.cn/s/blog_693458530100lk5m.html
http://www.cnblogs.com/west-link/archive/2011/06/07/2074466.html
1)阅读features。以此来搞清楚该项目有哪些特性2)思考。想想如果自己来做有这些features的项目该如何构架3)下载并安装d
- 编程之美-子数组的最大和(二维)
bylijinnan
编程之美
package beautyOfCoding;
import java.util.Arrays;
import java.util.Random;
public class MaxSubArraySum2 {
/**
* 编程之美 子数组之和的最大值(二维)
*/
private static final int ROW = 5;
private stat
- 读书笔记-3
chengxuyuancsdn
jquery笔记resultMap配置ibatis一对多配置
1、resultMap配置
2、ibatis一对多配置
3、jquery笔记
1、resultMap配置
当<select resultMap="topic_data">
<resultMap id="topic_data">必须一一对应。
(1)<resultMap class="tblTopic&q
- [物理与天文]物理学新进展
comsci
如果我们必须获得某种地球上没有的矿石,才能够进行某些能量输出装置的设计和建造,而要获得这种矿石,又必须首先进行深空探测,而要进行深空探测,又必须获得这种能量输出装置,这个矛盾的循环,会导致地球联盟在与宇宙文明建立关系的时候,陷入困境
怎么办呢?
 
- Oracle 11g新特性:Automatic Diagnostic Repository
daizj
oracleADR
Oracle Database 11g的FDI(Fault Diagnosability Infrastructure)是自动化诊断方面的又一增强。
FDI的一个关键组件是自动诊断库(Automatic Diagnostic Repository-ADR)。
在oracle 11g中,alert文件的信息是以xml的文件格式存在的,另外提供了普通文本格式的alert文件。
这两份log文
- 简单排序:选择排序
dieslrae
选择排序
public void selectSort(int[] array){
int select;
for(int i=0;i<array.length;i++){
select = i;
for(int k=i+1;k<array.leng
- C语言学习六指针的经典程序,互换两个数字
dcj3sjt126com
c
示例程序,swap_1和swap_2都是错误的,推理从1开始推到2,2没完成,推到3就完成了
# include <stdio.h>
void swap_1(int, int);
void swap_2(int *, int *);
void swap_3(int *, int *);
int main(void)
{
int a = 3;
int b =
- php 5.4中php-fpm 的重启、终止操作命令
dcj3sjt126com
PHP
php 5.4中php-fpm 的重启、终止操作命令:
查看php运行目录命令:which php/usr/bin/php
查看php-fpm进程数:ps aux | grep -c php-fpm
查看运行内存/usr/bin/php -i|grep mem
重启php-fpm/etc/init.d/php-fpm restart
在phpinfo()输出内容可以看到php
- 线程同步工具类
shuizhaosi888
同步工具类
同步工具类包括信号量(Semaphore)、栅栏(barrier)、闭锁(CountDownLatch)
闭锁(CountDownLatch)
public class RunMain {
public long timeTasks(int nThreads, final Runnable task) throws InterruptedException {
fin
- bleeding edge是什么意思
haojinghua
DI
不止一次,看到很多讲技术的文章里面出现过这个词语。今天终于弄懂了——通过朋友给的浏览软件,上了wiki。
我再一次感到,没有辞典能像WiKi一样,给出这样体贴人心、一清二楚的解释了。为了表达我对WiKi的喜爱,只好在此一一中英对照,给大家上次课。
In computer science, bleeding edge is a term that
- c中实现utf8和gbk的互转
jimmee
ciconvutf8&gbk编码
#include <iconv.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <sys/stat.h>
int code_c
- 大型分布式网站架构设计与实践
lilin530
应用服务器搜索引擎
1.大型网站软件系统的特点?
a.高并发,大流量。
b.高可用。
c.海量数据。
d.用户分布广泛,网络情况复杂。
e.安全环境恶劣。
f.需求快速变更,发布频繁。
g.渐进式发展。
2.大型网站架构演化发展历程?
a.初始阶段的网站架构。
应用程序,数据库,文件等所有的资源都在一台服务器上。
b.应用服务器和数据服务器分离。
c.使用缓存改善网站性能。
d.使用应用
- 在代码中获取Android theme中的attr属性值
OliveExcel
androidtheme
Android的Theme是由各种attr组合而成, 每个attr对应了这个属性的一个引用, 这个引用又可以是各种东西.
在某些情况下, 我们需要获取非自定义的主题下某个属性的内容 (比如拿到系统默认的配色colorAccent), 操作方式举例一则:
int defaultColor = 0xFF000000;
int[] attrsArray = { andorid.r.
- 基于Zookeeper的分布式共享锁
roadrunners
zookeeper分布式共享锁
首先,说说我们的场景,订单服务是做成集群的,当两个以上结点同时收到一个相同订单的创建指令,这时并发就产生了,系统就会重复创建订单。等等......场景。这时,分布式共享锁就闪亮登场了。
共享锁在同一个进程中是很容易实现的,但在跨进程或者在不同Server之间就不好实现了。Zookeeper就很容易实现。具体的实现原理官网和其它网站也有翻译,这里就不在赘述了。
官
- 两个容易被忽略的MySQL知识
tomcat_oracle
mysql
1、varchar(5)可以存储多少个汉字,多少个字母数字? 相信有好多人应该跟我一样,对这个已经很熟悉了,根据经验我们能很快的做出决定,比如说用varchar(200)去存储url等等,但是,即使你用了很多次也很熟悉了,也有可能对上面的问题做出错误的回答。 这个问题我查了好多资料,有的人说是可以存储5个字符,2.5个汉字(每个汉字占用两个字节的话),有的人说这个要区分版本,5.0
- zoj 3827 Information Entropy(水题)
阿尔萨斯
format
题目链接:zoj 3827 Information Entropy
题目大意:三种底,计算和。
解题思路:调用库函数就可以直接算了,不过要注意Pi = 0的时候,不过它题目里居然也讲了。。。limp→0+plogb(p)=0,因为p是logp的高阶。
#include <cstdio>
#include <cstring>
#include <cmath&