CN110389887B - 代码检测系统及方法 - Google Patents
代码检测系统及方法 Download PDFInfo
- Publication number
- CN110389887B CN110389887B CN201810338667.0A CN201810338667A CN110389887B CN 110389887 B CN110389887 B CN 110389887B CN 201810338667 A CN201810338667 A CN 201810338667A CN 110389887 B CN110389887 B CN 110389887B
- Authority
- CN
- China
- Prior art keywords
- program code
- code
- server
- result
- gerrit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种代码检测方法,包括:上传一程序代码至Gerrit服务器,其中Jenkins服务器在侦测到所述程序代码上传至所述Gerrit服务器后会对所述程序代码进行编译操作并回传编译结果;接收所述Gerrit服务器回传的对所述程序代码的审查结果及所述Jenkins服务器回传的对所述程序代码的编译结果;根据所述程序代码的审查结果及编译结果来生成可供深度学习模型训练的数据集;及将所述数据集输入至所述深度学习模型进行模型训练,并根据所述深度学习模型来输出所述程序代码的检测结果。本发明还提供一种代码检测系统。上述代码检测系统及方法,可以实现利用人工智能来取代人工审查程序代码的工作,节省代码审查人力与时间。
Description
技术领域
本发明涉及软件技术领域,尤其涉及一种代码检测系统及方法。
背景技术
对软件程序开发人员而言,程序代码的审查机制是相当重要的。当软件项目庞大时,十几万行至上百万行的程序代码的审查工作量是相当庞大。
现行的代码审查做法一般是单纯地使用Gerrit系统来做人工审查程序代码是否撰写无误,并且可搭配Jenkins系统来检验代码是否可以正确编译,这样的流程使得每上传一笔代码修改,就得等待极长的编译时间,同时人工审查程序代码有可能发生人为的疏失。
发明内容
有鉴于此,有必要提供一种代码检测系统及方法,其能实现通过人工智能来判断程序代码是否正确,以避免人为错误率,节省代码审查时间。
本发明一实施方式提供一种代码检测系统,包括Gerrit服务器、 Jenkins服务器及代码检测装置。所述代码检测装置包括:处理器;及存储器,适于存储多条指令,所述指令适于由所述处理器执行:上传一程序代码至所述Gerrit服务器,其中所述Jenkins服务器在侦测到所述程序代码上传至所述Gerrit服务器后会对所述程序代码进行编译操作,并将编译结果回传至所述Gerrit服务器;接收所述Gerrit服务器回传的对所述程序代码的审查结果及所述Jenkins服务器回传的对所述程序代码的编译结果;根据所述程序代码的审查结果及编译结果来生成可供深度学习模型训练的数据集;及将所述数据集输入至所述深度学习模型进行模型训练,并根据所述深度学习模型来输出所述程序代码的检测结果。
本发明一实施方式提供一种代码检测方法,应用于代码检测装置中,所述代码检测装置与Gerrit服务器、Jenkins服务器连接,所述代码检测方法包括以下步骤:上传一程序代码至所述Gerrit服务器,其中所述Jenkins服务器在侦测到所述程序代码上传至所述Gerrit服务器后会对所述程序代码进行编译操作,并将编译结果回传至所述Gerrit服务器;接收所述Gerrit服务器回传的对所述程序代码的审查结果及所述Jenkins服务器回传的对所述程序代码的编译结果;根据所述程序代码的审查结果及编译结果来生成可供深度学习模型训练的数据集;及将所述数据集输入至所述深度学习模型进行模型训练,并根据所述深度学习模型来输出所述程序代码的检测结果。
与现有技术相比,上述代码检测系统及方法,使用Gerrit系统审查的结果与Jenkins系统编译的结果来产生训练用的数据集,并利用该数据集经过深度学习后产生的模型来判断上传的程序代码是否合法,实现利用人工智能来取代人工审查程序代码的工作,节省代码审查人力与时间,同时也能节省程序代码的编译时间。
附图说明
图1是本发明一实施方式的代码检测系统的架构图。
图2是本发明一实施方式的代码检测装置的功能模块图。
图3是本发明一实施方式的审查系统的功能模块图。
图4是本发明另一实施方式的审查系统的功能模块图。
图5是本发明一实施方式的代码检测方法的步骤流程图。
主要元件符号说明
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
请参阅图1,一种代码检测系统100包括Gerrit服务器10、Jenkins 服务器20及代码检测装置30。所述Gerrit服务器10可以让开发人员线上检视上传的程序代码是否正确,所述代码检测装置30可以进一步对所述程序代码进行检视。所述Jenkins服务器20可以判断所述程序代码是否可以正确编译,所述Jenkins服务器20还可以结合Gerrit服务器10对代码库进行持续整合,以使得最终修改后的代码可以符合开发需求。
请同时参阅图2-4,所述代码检测装置30包括存储器301、处理器 302及审查系统303。所述审查系统303包括一个或多个模块,所述一个或多个模块可以存储在存储器301中并可由处理器302执行,以完成本发明所提供的功能。存储器301可以用于存储代码检测装置30的各种资料,例如存储审查系统303的程序指令。
在一实施方式中,所述一个或多个模块包括上传模块310、接收模块312、生成模块314及审查模块316。
所述上传模块310用于上传一待审查的程序代码至所述Gerrit服务器10。其中,当所述Gerrit服务器10上传有待审查的程序代码时会自动触发Jenkins服务器20的编译任务,即所述Jenkins服务器20在侦测到所述待审查的程序代码上传至所述Gerrit服务器10后,所述 Jenkins服务器20会对所述待审查的程序代码进行编译操作,并将编译结果回传至所述Gerrit服务器10及所述代码检测装置30。
在一实施方式中,若所述Gerrit服务器10检视到所述待审查的程序代码存在问题时,开发人员可以对该待审查的程序代码进行修改并将修改后的程序代码重新上传至所述Gerrit服务器10。若所述Jenkins 服务器20对所述待审查的程序代码编译失败时,开发人员同样可以对该待审查的程序代码进行修改并将修改后的程序代码重新上传至所述Gerrit服务器10。
所述接收模块312用于接收所述Gerrit服务器10回传的针对所述待审查的待审查的程序代码的审查结果及所述Jenkins服务器20回传的针对所述待审查的程序代码的编译结果。
所述生成模块314用于根据所述待审查的程序代码的审查结果及编译结果来生成可供深度学习模型训练的数据集。
在一实施方式中,所述数据集可以包括训练集、验证集及测试集等。所述训练集可以用来拟合模型,通过设置分类器的参数来训练分类模型。所述验证集可以用来调整分类模型参数,在训练集训练出多个模型后,使用各个模型对验证集数据进行预测,并记录模型准确率,进而选出效果最佳的模型所对应的参数。所述测试集可以用来衡量最优模型的性能和分类能力,实现对模型进行预测。
在一实施方式中,所述生成模块314用于分别为所述待审查的程序代码的审查结果及编译结果添加标签,并将添加标签后的审查结果与编译结果整理成可供所述深度学习模型训练的数据集。
所述审查模块316用于将所述数据集输入至所述深度学习模型进行模型训练,并根据所述深度学习模型来输出针对所述待审查的程序代码的检测结果。
在一实施方式中,所述深度学习模型包括输入层、隐藏层及输出层。所述输入层用于提取所述程序代码的特征,所述隐藏层用于通过反向传播算法对所述特征进行训练,并对训练结果进行校正,所述输出层用于输出所述程序代码的标注,所述标注标记有所述程序代码的检测结果。
在一实施方式中,所述隐藏层还用于计算出所述程序代码的每个特征所对应的加权信息增益,并按照所述加权信息增益的降序排列选取出有效特征,所述隐藏层还用于通过所述反向传播算法对所述有效特征进行训练,并对训练结果进行校正。
在一实施方式中,所述审查系统303还包括定义模块318。所述定义模块318用于定义提交至所述Gerrit服务器的程序代码文件需遵守的规则信息。所述规则信息可以包括代码包含有注解、代码格式、上传代码文件规范、上传信息格式、只提交必要的代码文件等。
在一实施方式中,所述标注可以是“PASS”、“Commit File Err”、“CommitMsgErr”、“FuncEr”、“Compile Err#”等。其中,标注“PASS”对应的检测结果是程序代码完全没有错误,标注“Commit File Err”对应的检测结果是上传代码文件错误,标注“CommitMsgErr”对应的检测结果是提交的信息不符合规则,标注“FuncErr”对应的检测结果是程序代码的注解不符合规范,标注“Compile Err#”对应的检测结果是程序代码编译错误。
当所述审查模块316输出的检测结果是“PASS”,则表明所述待审查的程序代码没有错误,可以将本段程序代码整合进代码库。当所述审查模块316输出的检测结果是“Commit File Err”、“Commit MsgErr”、“FuncEr”、或“Compile Err#“时,表明所述待审查的程序代码存在缺陷,需要进行修改,当修改完成后可以再次进行检测。
图5为本发明一实施方式中代码检测方法的流程图。
步骤S500,上传模块310上传一待审查的程序代码至所述Gerrit服务器10。其中,所述Jenkins服务器20在侦测到所述待审查的程序代码上传至所述Gerrit服务器10后会对所述程序代码进行编译操作,并将编译结果回传至所述Gerrit服务器10。
步骤S502,接收模块312接收所述Gerrit服务器10回传的针对所述待审查的待审查的程序代码的审查结果及所述Jenkins服务器20回传的针对所述待审查的程序代码的编译结果。
步骤S504,所述生成模块314根据所述待审查的程序代码的审查结果及编译结果来生成可供深度学习模型训练的数据集。
步骤S506,所述审查模块316将所述数据集输入至所述深度学习模型进行模型训练,并根据所述深度学习模型来输出针对所述待审查的程序代码的检测结果。
上述代码检测系统及方法,使用Gerrit系统审查的结果与Jenkins 系统编译的结果来产生训练用的数据集,并利用该数据集经过深度学习后产生的模型来判断上传的程序代码是否合法,实现利用人工智能来取代人工审查程序代码的工作,节省代码审查人力与时间,同时也能节省程序代码的编译时间。
对本领域的技术人员来说,可以根据本发明的发明方案和发明构思结合生产的实际需要做出其他相应的改变或调整,而这些改变和调整都应属于本发明所公开的范围。
Claims (10)
1.一种代码检测系统,包括Gerrit服务器、Jenkins服务器及代码检测装置,其特征在于,所述代码检测装置包括:
处理器;及
存储器,适于存储多条指令,所述指令适于由所述处理器执行:
上传一程序代码至所述Gerrit服务器,其中所述Jenkins服务器在侦测到所述程序代码上传至所述Gerrit服务器后会对所述程序代码进行编译操作,并将编译结果回传至所述Gerrit服务器;
接收所述Gerrit服务器回传的对所述程序代码的审查结果及所述Jenkins服务器回传的对所述程序代码的编译结果;
根据所述程序代码的审查结果及编译结果来生成可供深度学习模型训练的数据集;及
将所述数据集输入至所述深度学习模型进行模型训练,并根据所述深度学习模型来输出所述程序代码的检测结果。
2.如权利要求1所述的代码检测系统,其特征在于,所述指令还包括:
定义提交至所述Gerrit服务器的程序代码文件需遵守的规则信息;
其中,所述规则信息包括以下的一种或多种组合:代码注解、代码格式、上传文件规范、上传信息格式。
3.如权利要求1所述的代码检测系统,其特征在于,所述根据所述程序代码的审查结果及编译结果来生成可供深度学习模型训练的数据集的指令包括:
分别对所述程序代码的审查结果及编译结果添加标签;及
将添加标签后的审查结果与编译结果整理成可供所述深度学习模型训练的数据集。
4.如权利要求1所述的代码检测系统,其特征在于,所述深度学习模型包括输入层、隐藏层及输出层,所述输入层用于提取所述程序代码的特征,所述隐藏层用于通过反向传播算法对所述特征进行训练,并对训练结果进行校正,所述输出层用于输出所述程序代码的标注,所述标注标记有所述程序代码的检测结果。
5.如权利要求4所述的代码检测系统,其特征在于,所述隐藏层还用于计算出所述程序代码的每个特征所对应的加权信息增益,并按照所述加权信息增益的降序排列选取出有效特征,所述隐藏层还用于通过所述反向传播算法对所述有效特征进行训练。
6.一种代码检测方法,应用于代码检测装置中,所述代码检测装置与Gerrit服务器、Jenkins服务器连接,其特征在于,所述代码检测方法包括以下步骤:
上传一程序代码至所述Gerrit服务器,其中所述Jenkins服务器在侦测到所述程序代码上传至所述Gerrit服务器后会对所述程序代码进行编译操作,并将编译结果回传至所述Gerrit服务器;
接收所述Gerrit服务器回传的对所述程序代码的审查结果及所述Jenkins服务器回传的对所述程序代码的编译结果;
根据所述程序代码的审查结果及编译结果来生成可供深度学习模型训练的数据集;及
将所述数据集输入至所述深度学习模型进行模型训练,并根据所述深度学习模型来输出所述程序代码的检测结果。
7.如权利要求6所述的代码检测方法,其特征在于,所述代码检测方法还包括:
定义提交至所述Gerrit服务器的程序代码文件需遵守的规则信息;
其中,所述规则信息包括以下的一种或多种组合:代码注解、代码格式、上传文件规范、上传信息格式。
8.如权利要求6所述的代码检测方法,其特征在于,所述根据所述程序代码的审查结果及编译结果来生成可供深度学习模型训练的数据集的步骤包括:
分别对所述程序代码的审查结果及编译结果添加标签;及
将添加标签后的审查结果与编译结果整理成可供所述深度学习模型训练的数据集。
9.如权利要求6所述的代码检测方法,其特征在于,所述深度学习模型包括输入层、隐藏层及输出层,所述输入层用于提取所述程序代码的特征,所述隐藏层用于通过反向传播算法对所述特征进行训练,并对训练结果进行校正,所述输出层用于输出所述程序代码的标注,所述标注标记有所述程序代码的检测结果。
10.如权利要求9所述的代码检测方法,其特征在于,所述隐藏层还用于计算出所述程序代码的每个特征所对应的加权信息增益,并按照所述加权信息增益的降序排列选取出有效特征,所述隐藏层还用于通过所述反向传播算法对所述有效特征进行训练。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810338667.0A CN110389887B (zh) | 2018-04-16 | 2018-04-16 | 代码检测系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810338667.0A CN110389887B (zh) | 2018-04-16 | 2018-04-16 | 代码检测系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110389887A CN110389887A (zh) | 2019-10-29 |
CN110389887B true CN110389887B (zh) | 2022-07-05 |
Family
ID=68282884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810338667.0A Active CN110389887B (zh) | 2018-04-16 | 2018-04-16 | 代码检测系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110389887B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1971536A (zh) * | 2005-11-24 | 2007-05-30 | 鸿富锦精密工业(深圳)有限公司 | 基本输入输出系统的纠错系统及方法 |
CN105989288A (zh) * | 2015-12-31 | 2016-10-05 | 武汉安天信息技术有限责任公司 | 一种基于深度学习的恶意代码样本分类方法及系统 |
CN106096415A (zh) * | 2016-06-24 | 2016-11-09 | 康佳集团股份有限公司 | 一种基于深度学习的恶意代码检测方法及系统 |
CN106294140A (zh) * | 2016-08-02 | 2017-01-04 | 中国科学院软件研究所 | 一种基于代码仓库提交说明的PoC快速生成方法 |
CN107015911A (zh) * | 2017-04-07 | 2017-08-04 | 广东亿迅科技有限公司 | 持续集成的代码评审方法及装置 |
CN107273294A (zh) * | 2017-06-19 | 2017-10-20 | 电子科技大学 | 一种基于神经网络语言模型的重复代码检测方法 |
CN107656873A (zh) * | 2017-10-23 | 2018-02-02 | 扬州航盛科技有限公司 | 基于Linux车载软件的自动化测试系统及测试方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8165974B2 (en) * | 2009-06-08 | 2012-04-24 | Xerox Corporation | System and method for assisted document review |
US8370799B2 (en) * | 2010-09-28 | 2013-02-05 | International Business Machines Corporation | Provision of code base modification using automatic learning of code changes |
US10713594B2 (en) * | 2015-03-20 | 2020-07-14 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing machine learning model training and deployment with a rollback mechanism |
US9916224B2 (en) * | 2015-09-15 | 2018-03-13 | Linkedin Corporation | Integrating quality analysis with a code review tool |
US10175977B2 (en) * | 2015-11-04 | 2019-01-08 | International Business Machines Corporation | User profile based code review |
US20170212829A1 (en) * | 2016-01-21 | 2017-07-27 | American Software Safety Reliability Company | Deep Learning Source Code Analyzer and Repairer |
-
2018
- 2018-04-16 CN CN201810338667.0A patent/CN110389887B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1971536A (zh) * | 2005-11-24 | 2007-05-30 | 鸿富锦精密工业(深圳)有限公司 | 基本输入输出系统的纠错系统及方法 |
CN105989288A (zh) * | 2015-12-31 | 2016-10-05 | 武汉安天信息技术有限责任公司 | 一种基于深度学习的恶意代码样本分类方法及系统 |
CN106096415A (zh) * | 2016-06-24 | 2016-11-09 | 康佳集团股份有限公司 | 一种基于深度学习的恶意代码检测方法及系统 |
CN106294140A (zh) * | 2016-08-02 | 2017-01-04 | 中国科学院软件研究所 | 一种基于代码仓库提交说明的PoC快速生成方法 |
CN107015911A (zh) * | 2017-04-07 | 2017-08-04 | 广东亿迅科技有限公司 | 持续集成的代码评审方法及装置 |
CN107273294A (zh) * | 2017-06-19 | 2017-10-20 | 电子科技大学 | 一种基于神经网络语言模型的重复代码检测方法 |
CN107656873A (zh) * | 2017-10-23 | 2018-02-02 | 扬州航盛科技有限公司 | 基于Linux车载软件的自动化测试系统及测试方法 |
Non-Patent Citations (6)
Title |
---|
A Case for Deep Learning in MiningSoftware Repositories;Nijessen等;《https://repository.tudelft.nl/islandora/object/uuid%3Afc0cf997-4900-435c-b213-00e5828490de》;20171110;全文第1-2页 * |
Code Review Analysis of Software System using;Harsh Lal;《https://ieeexplore.ieee.org/abstract/document/7855962》;20170216;全文第1-6页 * |
gitlab+gerrit+jenkins代码托管、审核、持续集成架构搭建;翊;《https://www.cnblogs.com/to-be-rich/p/6559985.html》;20170802;全文第1-17页 * |
MichałMadera.A case study on machine learning model for code review expert.《https://ieeexplore.ieee.org/abstract/document/8104731》.2017,全文第1-7页. * |
为什么人工智能不会让软件测试消失;初心;《https://www.testwo.com/article/1180》;20180123;全文第1-2页 * |
现在能完全通过工具代替人工进行 code review 吗?;覃超;《https://www.zhihu.com/question/30419262》;20150516;全文第1-3页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110389887A (zh) | 2019-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10346140B2 (en) | System and method for model based technology and process for safety-critical software development | |
Arcuri et al. | Black-box system testing of real-time embedded systems using random and search-based testing | |
US9208451B2 (en) | Automatic identification of information useful for generation-based functional verification | |
US20140033174A1 (en) | Software bug predicting | |
CN109189479B (zh) | 一种用于处理器指令集的并行自动化验证方法 | |
US11327874B1 (en) | System, method, and computer program for orchestrating automatic software testing | |
KR102147097B1 (ko) | 머신러닝을 위한 학습데이터 세트의 구성 방법 및 장치 | |
CN109473093A (zh) | 语音识别方法、装置、计算机设备及存储介质 | |
Yulianto et al. | Automatic grader for programming assignment using source code analyzer | |
CN109947651B (zh) | 人工智能引擎优化方法和装置 | |
CN113761444A (zh) | 基于代码评分的教程推荐方法、教程推荐装置及终端设备 | |
CN116245074A (zh) | 芯片验证方法、设备及存储介质 | |
Bierig et al. | Essentials of Software Testing | |
KR102546424B1 (ko) | 학습용 데이터 생성 장치, 소스 코드 오류 분석 장치 및 방법 | |
US20210286706A1 (en) | Graph-based method for inductive bug localization | |
CN114787831B (zh) | 改进分类模型的准确性 | |
CN110389887B (zh) | 代码检测系统及方法 | |
CN117331836A (zh) | 一种基于代码语法树分析的评测方法 | |
Matragkas et al. | A Traceability-Driven Approach to Model Transformation Testing. | |
CN114721922A (zh) | 一种服务器集群的性能评估方法、计算设备及存储介质 | |
CN113282504A (zh) | 一种增量代码覆盖率检测方法及业务开发方法、装置 | |
Dias et al. | TestLab: An Intelligent Automated Software Testing Framework | |
CN111752823A (zh) | 一种车载电源应用软件的测试方法、装置及设备 | |
Mendonça et al. | Feature-oriented Test Case Selection during Evolution of Highly-Configurable Systems | |
US11847393B2 (en) | Computing device and method for developing a system model utilizing a simulation assessment module |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |