diff --git a/app/convbin/convbin.c b/app/convbin/convbin.c
index d11473604d0c72157c71922cd4c3a90f242bfcac..a59bf30f74df823b01c682da8215f560538070a4 100644
--- a/app/convbin/convbin.c
+++ b/app/convbin/convbin.c
@@ -498,7 +498,7 @@ static int cmdopts(int argc, char **argv, rnxopt_t *opt, char **ifile,
         if      (!strcmp(fmt,"rtcm2")) format=STRFMT_RTCM2;
         else if (!strcmp(fmt,"rtcm3")) format=STRFMT_RTCM3;
         else if (!strcmp(fmt,"nov"  )) format=STRFMT_OEM4;
-        else if (!strcmp(fmt,"oem3" )) format=STRFMT_OEM3;
+        else if (!strcmp(fmt,"cnav" )) format=STRFMT_CNAV;
         else if (!strcmp(fmt,"ubx"  )) format=STRFMT_UBX;
         else if (!strcmp(fmt,"sbp"  )) format=STRFMT_SBP;
         else if (!strcmp(fmt,"hemis")) format=STRFMT_CRES;
diff --git a/app/rtknavi/navimain.cpp b/app/rtknavi/navimain.cpp
index bdbd6c98e0cd8fa90ed6e56b45fc7469c268a4d2..e918400f89c8292ce16ad96bcbd32e0d2e6ab226 100644
--- a/app/rtknavi/navimain.cpp
+++ b/app/rtknavi/navimain.cpp
@@ -2502,8 +2502,8 @@ void __fastcall TMainForm::LoadOpt(void)
     PrcOpt.thresar[0]=ini->ReadFloat ("prcopt", "thresar",       3.0);
     PrcOpt.thresar[1]=ini->ReadFloat ("prcopt", "thresar1",      0.1);
     PrcOpt.thresar[2]=ini->ReadFloat ("prcopt", "thresar2",      0.0);
-    PrcOpt.thresar[3]=ini->ReadFloat ("prcopt", "thresar3",      1E-5);
-    PrcOpt.thresar[4]=ini->ReadFloat ("prcopt", "thresar4",    0.0001);
+    PrcOpt.thresar[3]=ini->ReadFloat ("prcopt", "thresar3",      1E-7);
+    PrcOpt.thresar[4]=ini->ReadFloat ("prcopt", "thresar4",      1E-3);
     PrcOpt.elmaskar =ini->ReadFloat  ("prcopt", "elmaskar",  15.0*D2R);
     PrcOpt.elmaskhold=ini->ReadFloat ("prcopt", "elmaskhold",15.0*D2R);
     PrcOpt.thresslip=ini->ReadFloat  ("prcopt", "thresslip",     0.05);
@@ -2756,6 +2756,9 @@ void __fastcall TMainForm::SaveOpt(void)
     ini->WriteFloat  ("prcopt", "sclkstab",   PrcOpt.sclkstab    );
     ini->WriteFloat  ("prcopt", "thresar",    PrcOpt.thresar[0]  );
     ini->WriteFloat  ("prcopt", "thresar1",   PrcOpt.thresar[1]  );
+    ini->WriteFloat  ("prcopt", "thresar2",   PrcOpt.thresar[2]  );
+    ini->WriteFloat  ("prcopt", "thresar3",   PrcOpt.thresar[3]  );
+    ini->WriteFloat  ("prcopt", "thresar4",   PrcOpt.thresar[4]  );
     ini->WriteFloat  ("prcopt", "elmaskar",   PrcOpt.elmaskar    );
     ini->WriteFloat  ("prcopt", "elmaskhold", PrcOpt.elmaskhold  );
     ini->WriteFloat  ("prcopt", "thresslip",  PrcOpt.thresslip   );
diff --git a/app/rtkplot/plotmain.cpp b/app/rtkplot/plotmain.cpp
index 39f24cf6fc063c07901d43475f188815cb65d1d4..5f1eeb7b807a61db7b168abddcf299ecceafb26c 100644
--- a/app/rtkplot/plotmain.cpp
+++ b/app/rtkplot/plotmain.cpp
@@ -2729,17 +2729,17 @@ void __fastcall TPlot::LoadOpt(void)
     AutoScale    =ini->ReadInteger("plot","autoscale",     1);
     ShowStats    =ini->ReadInteger("plot","showstats",     0);
     ShowLabel    =ini->ReadInteger("plot","showlabel",     1);
-    ShowGLabel   =ini->ReadInteger("plot","showglabel",    1);
+    ShowGLabel   =ini->ReadInteger("plot","showglabel",    2);
     ShowCompass  =ini->ReadInteger("plot","showcompass",   0);
     ShowScale    =ini->ReadInteger("plot","showscale",     1);
     ShowArrow    =ini->ReadInteger("plot","showarrow",     0);
-    ShowSlip     =ini->ReadInteger("plot","showslip",      0);
-    ShowHalfC    =ini->ReadInteger("plot","showhalfc",     0);
+    ShowSlip     =ini->ReadInteger("plot","showslip",      2);
+    ShowHalfC    =ini->ReadInteger("plot","showhalfc",     1);
     ShowErr      =ini->ReadInteger("plot","showerr",       0);
     ShowEph      =ini->ReadInteger("plot","showeph",       0);
     PlotStyle    =ini->ReadInteger("plot","plotstyle",     0);
     MarkSize     =ini->ReadInteger("plot","marksize",      2);
-    NavSys       =ini->ReadInteger("plot","navsys",  SYS_GPS);
+    NavSys       =ini->ReadInteger("plot","navsys",  SYS_GPS|SYS_GLO|SYS_SBS|SYS_GAL);
     AnimCycle    =ini->ReadInteger("plot","animcycle",    10);
     RefCycle     =ini->ReadInteger("plot","refcycle",    100);
     HideLowSat   =ini->ReadInteger("plot","hidelowsat",    0);
@@ -2794,11 +2794,11 @@ void __fastcall TPlot::LoadOpt(void)
     RefDialog->StaPosFile=ini->ReadString ("plot","staposfile","");
     RefDialog->Format    =ini->ReadInteger("plot","staposformat",0);
     
-    ElMask    =ini->ReadFloat  ("plot","elmask", 0.0);
+    ElMask    =ini->ReadFloat  ("plot","elmask", 15.0);
     MaxDop    =ini->ReadFloat  ("plot","maxdop",30.0);
     MaxMP     =ini->ReadFloat  ("plot","maxmp" ,10.0);
     YRange    =ini->ReadFloat  ("plot","yrange", 5.0);
-    Origin    =ini->ReadInteger("plot","orgin",    2);
+    Origin    =ini->ReadInteger("plot","orgin",    4);
     RcvPos    =ini->ReadInteger("plot","rcvpos",   0);
     OOPos[0]  =ini->ReadFloat  ("plot","oopos1",   0);
     OOPos[1]  =ini->ReadFloat  ("plot","oopos2",   0);
diff --git a/app/rtkplot/rtkplot.cbproj b/app/rtkplot/rtkplot.cbproj
index 2704f63059a1ec5d79fcb480fe7cc684e82da28b..9cb171c936c77f4c3bac8a2dd339f4a685a6e92a 100644
--- a/app/rtkplot/rtkplot.cbproj
+++ b/app/rtkplot/rtkplot.cbproj
@@ -4,7 +4,7 @@
         <ProjectType>CppVCLApplication</ProjectType>
         <MainSource>rtkplot.cpp</MainSource>
         <Base>True</Base>
-        <Config Condition="'$(Config)'==''">Debug</Config>
+        <Config Condition="'$(Config)'==''">Release</Config>
         <FrameworkType>VCL</FrameworkType>
         <ProjectVersion>18.2</ProjectVersion>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
diff --git a/app/rtkpost/postmain.cpp b/app/rtkpost/postmain.cpp
index c9b3942be7f7854a052645b7a0074736b5b0c4a7..00a40594a4886ed18d0792eb74e6298e4b4888c2 100644
--- a/app/rtkpost/postmain.cpp
+++ b/app/rtkpost/postmain.cpp
@@ -1245,8 +1245,8 @@ void __fastcall TMainForm::LoadOpt(void)
     ValidThresAR       =ini->ReadFloat  ("opt","validthresar", 3.0);
     MaxPosVarAR        =ini->ReadFloat  ("opt","maxposvarar", 0.10);
     GloHwBias          =ini->ReadFloat  ("opt","glohwbias",   0.00);
-    ThresAR3           =ini->ReadFloat  ("opt","thresar3",    1E-5);
-    ThresAR4           =ini->ReadFloat  ("opt","thresar4",    1E-4);
+    ThresAR3           =ini->ReadFloat  ("opt","thresar3",    1E-7);
+    ThresAR4           =ini->ReadFloat  ("opt","thresar4",    1E-3);
     LockCntFixAmb      =ini->ReadInteger("opt","lockcntfixamb",  0);
     FixCntHoldAmb      =ini->ReadInteger("opt","fixcntholdamb", 20);
     ElMaskAR           =ini->ReadFloat  ("opt","elmaskar",    15.0);
diff --git a/app/rtkvideo/rtkvideo.cbproj b/app/rtkvideo/rtkvideo.cbproj
index 1d6b60c2adf3436c6000aaf06c910cd1120f3fcd..37902cfba89814d4bcbf7cd700d97a34755b1474 100644
--- a/app/rtkvideo/rtkvideo.cbproj
+++ b/app/rtkvideo/rtkvideo.cbproj
@@ -7,7 +7,7 @@
         <Base>True</Base>
         <Config Condition="'$(Config)'==''">Release</Config>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
-        <TargetedPlatforms>3</TargetedPlatforms>
+        <TargetedPlatforms>1</TargetedPlatforms>
         <AppType>Application</AppType>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
@@ -18,11 +18,6 @@
         <CfgParent>Base</CfgParent>
         <Base>true</Base>
     </PropertyGroup>
-    <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
-        <Base_Win64>true</Base_Win64>
-        <CfgParent>Base</CfgParent>
-        <Base>true</Base>
-    </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
         <Cfg_1>true</Cfg_1>
         <CfgParent>Base</CfgParent>
@@ -34,12 +29,6 @@
         <Cfg_1>true</Cfg_1>
         <Base>true</Base>
     </PropertyGroup>
-    <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win64)'!=''">
-        <Cfg_1_Win64>true</Cfg_1_Win64>
-        <CfgParent>Cfg_1</CfgParent>
-        <Cfg_1>true</Cfg_1>
-        <Base>true</Base>
-    </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
         <Cfg_2>true</Cfg_2>
         <CfgParent>Base</CfgParent>
@@ -51,12 +40,6 @@
         <Cfg_2>true</Cfg_2>
         <Base>true</Base>
     </PropertyGroup>
-    <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win64)'!=''">
-        <Cfg_2_Win64>true</Cfg_2_Win64>
-        <CfgParent>Cfg_2</CfgParent>
-        <Cfg_2>true</Cfg_2>
-        <Base>true</Base>
-    </PropertyGroup>
     <PropertyGroup Condition="'$(Base)'!=''">
         <BCC_PCHUsage>None</BCC_PCHUsage>
         <BCC_IncludePath>D:\proj\RTKLIB\src;$(BCC_IncludePath)</BCC_IncludePath>
@@ -104,17 +87,6 @@
         <UWP_CppLogo44>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_44.png</UWP_CppLogo44>
         <UWP_CppLogo150>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_150.png</UWP_CppLogo150>
     </PropertyGroup>
-    <PropertyGroup Condition="'$(Base_Win64)'!=''">
-        <IncludePath>$(BDSINCLUDE)\windows\fmx;$(IncludePath)</IncludePath>
-        <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace>
-        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
-        <PackageImports>adortl;appanalytics;bindcomp;bindcompdbx;bindcompfmx;bindcompvcl;bindengine;CloudService;CustomIPTransport;dbexpress;dbrtl;dbxcds;DbxClientDriver;DbxCommonDriver;DBXInterBaseDriver;DBXMySQLDriver;DBXSqliteDriver;dsnap;dsnapcon;dsnapxml;FireDAC;FireDACADSDriver;FireDACCommon;FireDACCommonDriver;FireDACCommonODBC;FireDACIBDriver;FireDACMSAccDriver;FireDACMySQLDriver;FireDACPgDriver;FireDACSqliteDriver;fmx;fmxase;fmxdae;fmxFireDAC;fmxobj;IndyCore;IndyIPClient;IndyIPCommon;IndyIPServer;IndyProtocols;IndySystem;inet;inetdb;inetdbxpress;RESTBackendComponents;RESTComponents;rtl;soapmidas;soaprtl;soapserver;tethering;vcl;vclactnband;vcldb;vcldsnap;vclFireDAC;vclie;vclimg;VCLRESTComponents;VclSmp;vcltouch;vclwinx;vclx;xmlrtl;$(PackageImports)</PackageImports>
-        <VerInfo_Locale>1033</VerInfo_Locale>
-        <VerInfo_Keys>CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName)</VerInfo_Keys>
-        <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
-        <UWP_CppLogo44>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_44.png</UWP_CppLogo44>
-        <UWP_CppLogo150>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_150.png</UWP_CppLogo150>
-    </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1)'!=''">
         <BCC_OptimizeForSpeed>false</BCC_OptimizeForSpeed>
         <BCC_DisableOptimizations>true</BCC_DisableOptimizations>
@@ -145,12 +117,6 @@
         <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
         <BT_BuildType>Debug</BT_BuildType>
     </PropertyGroup>
-    <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
-        <LinkPackageImports>rtl.bpi;fmx.bpi</LinkPackageImports>
-        <AppEnableHighDPI>true</AppEnableHighDPI>
-        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
-        <BT_BuildType>Debug</BT_BuildType>
-    </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_2)'!=''">
         <Defines>NDEBUG;$(Defines)</Defines>
         <TASM_Debugging>None</TASM_Debugging>
@@ -166,12 +132,6 @@
         <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
         <BT_BuildType>Debug</BT_BuildType>
     </PropertyGroup>
-    <PropertyGroup Condition="'$(Cfg_2_Win64)'!=''">
-        <LinkPackageImports>rtl.bpi;fmx.bpi</LinkPackageImports>
-        <AppEnableHighDPI>true</AppEnableHighDPI>
-        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
-        <BT_BuildType>Debug</BT_BuildType>
-    </PropertyGroup>
     <ItemGroup>
         <CppCompile Include="rtkvideo.cpp">
             <BuildOrder>0</BuildOrder>
@@ -200,6 +160,9 @@
         <CppCompile Include="..\..\src\rcv\cmr.c">
             <BuildOrder>7</BuildOrder>
         </CppCompile>
+        <CppCompile Include="..\..\src\rcv\comnav.c">
+            <BuildOrder>23</BuildOrder>
+        </CppCompile>
         <CppCompile Include="..\..\src\rcv\crescent.c">
             <BuildOrder>8</BuildOrder>
         </CppCompile>
@@ -1052,7 +1015,6 @@
             </Deployment>
             <Platforms>
                 <Platform value="Win32">True</Platform>
-                <Platform value="Win64">True</Platform>
             </Platforms>
         </BorlandProject>
         <ProjectFileVersion>12</ProjectFileVersion>
diff --git a/app/str2str/str2str.c b/app/str2str/str2str.c
index 31aced81275eb0d961fd212fad19f6c97c4c9a34..89fceafa8a7625f7a260da392ec0015b0d38d10b 100644
--- a/app/str2str/str2str.c
+++ b/app/str2str/str2str.c
@@ -1,7 +1,7 @@
 /*------------------------------------------------------------------------------
 * str2str.c : console version of stream server
 *
-*          Copyright (C) 2007-2016 by T.TAKASU, All rights reserved.
+*          Copyright (C) 2007-2018 by T.TAKASU, All rights reserved.
 *
 * version : $Revision: 1.1 $ $Date: 2008/07/17 21:54:53 $
 * history : 2009/06/17  1.0  new
@@ -77,7 +77,7 @@ static const char *help[]={
 "    rtcm2        : RTCM 2 (only in)",
 "    rtcm3        : RTCM 3",
 "    nov          : NovAtel OEMV/4/6,OEMStar (only in)",
-"    oem3         : NovAtel OEM3 (only in)",
+"    cnav         : ComNav (only in)",
 "    ubx          : ublox LEA-4T/5T/6T (only in)",
 "    swiftnav     : SwiftNav Piksi Multi",
 "    hemis        : Hemisphere Eclipse/Crescent (only in)",
@@ -146,7 +146,7 @@ static void decodefmt(char *path, int *fmt)
         if      (!strcmp(p,"#rtcm2")) *fmt=STRFMT_RTCM2;
         else if (!strcmp(p,"#rtcm3")) *fmt=STRFMT_RTCM3;
         else if (!strcmp(p,"#nov"  )) *fmt=STRFMT_OEM4;
-        else if (!strcmp(p,"#oem3" )) *fmt=STRFMT_OEM3;
+        else if (!strcmp(p,"#cnav" )) *fmt=STRFMT_CNAV;
         else if (!strcmp(p,"#ubx"  )) *fmt=STRFMT_UBX;
         else if (!strcmp(p,"#swift")) *fmt=STRFMT_SBP;
         else if (!strcmp(p,"#hemis")) *fmt=STRFMT_CRES;
diff --git a/src/rcv/comnav.c b/src/rcv/comnav.c
index 6e344a708ceb1eeab708e9c7e57de048b018bd2d..6eea6808cb410fc8108f9e39e3a9f1d892f12538 100644
--- a/src/rcv/comnav.c
+++ b/src/rcv/comnav.c
@@ -287,7 +287,11 @@ static int decode_rangecmpb(raw_t *raw)
         }
 
         if (!parity) lli|=LLI_HALFC;
+#if 0
         if (halfc  ) lli|=LLI_HALFA;
+#else
+        if (halfc!=raw->halfc[sat-1][pos]) lli|=LLI_SLIP;
+#endif
         raw->tobs [sat-1][pos]=raw->time;
         raw->lockt[sat-1][pos]=lockt;
         raw->halfc[sat-1][pos]=halfc;
diff --git a/src/rcv/novatel.c b/src/rcv/novatel.c
index 89daff39db803ceef9f4539acf0a2a4ed9b21cff..2fee6432961900875354334e64eacbba5c686e5c 100644
--- a/src/rcv/novatel.c
+++ b/src/rcv/novatel.c
@@ -1,7 +1,7 @@
 /*------------------------------------------------------------------------------
 * notvatel.c : NovAtel OEM6/OEM5/OEM4 receiver functions
 *
-*          Copyright (C) 2007-2017 by T.TAKASU, All rights reserved.
+*          Copyright (C) 2007-2018 by T.TAKASU, All rights reserved.
 *
 * reference :
 *     [1] NovAtel, OM-20000094 Rev6 OEMV Family Firmware Reference Manual, 2008
@@ -197,7 +197,7 @@ static int decode_trackstat(unsigned int stat, int *sys, int *code, int *track,
         switch (sigtype) {
             case  0: freq=0; *code=CODE_L1C; break; /* L1C/A */
             case  5: freq=0; *code=CODE_L1P; break; /* L1P */
-            case  9: freq=1; *code=CODE_L2D; break; /* L2Pcodeless */
+            case  9: freq=1; *code=CODE_L2W; break; /* L2Pcodeless */
             case 14: freq=2; *code=CODE_L5Q; break; /* L5Q (OEM6) */
             case 17: freq=1; *code=CODE_L2X; break; /* L2C(M+L) */
             default: freq=-1; break;
@@ -326,7 +326,11 @@ static int decode_rangecmpb(raw_t *raw)
             lli=0;
         }
         if (!parity) lli|=LLI_HALFC;
+#if 0
         if (halfc  ) lli|=LLI_HALFA;
+#else
+        if (halfc!=raw->halfc[sat-1][pos]) lli|=LLI_SLIP;
+#endif
         raw->tobs [sat-1][pos]=raw->time;
         raw->lockt[sat-1][pos]=lockt;
         raw->halfc[sat-1][pos]=halfc;
@@ -415,7 +419,11 @@ static int decode_rangeb(raw_t *raw)
             lli=0;
         }
         if (!parity) lli|=LLI_HALFC;
+#if 0
         if (halfc  ) lli|=LLI_HALFA;
+#else
+        if (halfc!=raw->halfc[sat-1][pos]) lli|=LLI_SLIP;
+#endif
         raw->tobs [sat-1][pos]=raw->time;
         raw->lockt[sat-1][pos]=lockt;
         raw->halfc[sat-1][pos]=halfc;
diff --git a/src/rtklib.h b/src/rtklib.h
index c479ae7a2edb1b9c3fb2c8bdd898b185c9f110ca..c7f52ce96302e4f948a022239c3911b854f3ea92 100644
--- a/src/rtklib.h
+++ b/src/rtklib.h
@@ -58,10 +58,10 @@ extern "C" {
 
 #define VER_RTKLIB  "2.4.3 demo5"             /* library version */
 
-#define PATCH_LEVEL "b29c"               /* patch level */
+#define PATCH_LEVEL "b29d"               /* patch level */
 
 #define COPYRIGHT_RTKLIB \
-            "Copyright (C) 2007-2017 T.Takasu\nAll rights reserved."
+            "Copyright (C) 2007-2018 T.Takasu\nAll rights reserved."
 
 #define PI          3.1415926535897932  /* pi */
 #define D2R         (PI/180.0)          /* deg to rad */
@@ -252,7 +252,7 @@ extern "C" {
 #define MAXSTRRTK   8                   /* max number of stream in RTK server */
 #define MAXSBSMSG   32                  /* max number of SBAS msg in RTK server */
 #define MAXSOLMSG   8191                /* max length of solution message */
-#define MAXRAWLEN   4096                /* max length of receiver raw message */
+#define MAXRAWLEN   8192                /* max length of receiver raw message */
 #define MAXERRMSG   4096                /* max length of error/warning message */
 #define MAXANT      64                  /* max length of station name/antenna type */
 #define MAXSOLBUF   256                 /* max number of solution buffer */