[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [lmi] odd/string_db4 643b141: Use "lingo" for all fields--
From: |
Greg Chicares |
Subject: |
[lmi-commits] [lmi] odd/string_db4 643b141: Use "lingo" for all fields--'sample*' products only |
Date: |
Tue, 1 Dec 2020 11:03:17 -0500 (EST) |
branch: odd/string_db4
commit 643b141c34c6f400d9f105631659d84e803bca27
Author: Gregory W. Chicares <gchicares@sbcglobal.net>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>
Use "lingo" for all fields--'sample*' products only
This experimental commit shows the effect of using '.lingo' for all
drop-in text, for an entire block of products. The old '.policy'
implementation is left in place. A comprehensive test verifies that
both methods produce the same result for each text field, for every
'sample*' product, in every state (no field yet varies by any database
axis other than state), allowing for the "{NameOfVariable}" convention
used for 'sample2*' products (which should perhaps have their own
'.lingo' file instead).
A fifteen or twenty-percent run-time cost is observed for the most
straightforward scenario ("finra, no solve"); caching the '.lingo' file
and removing the obsolescent '.policy' implementation ought to eliminate
that penalty and perhaps even improve performance (because '.policy'
files are not cached--but perhaps all product files should be cached).
---
Speed_gcc_x86_64-pc-linux-gnu | 12 +-
Speed_gcc_x86_64-w64-mingw32 | 12 +-
dbdict.cpp | 351 ++++++++++++++++++++++++++
dbdict.hpp | 173 +++++++++++++
dbnames.hpp | 173 +++++++++++++
dbnames.xpp | 171 +++++++++++++
ledger_invariant_init.cpp | 52 +++-
lingo.cpp | 568 +++++++++++++++++++++++++++++++++++++++++-
main_cli.cpp | 3 +
product_data.cpp | 162 ++++++------
product_data.hpp | 4 +-
sample.hpp | 379 ++++++++++++++++++++++++++++
12 files changed, 1964 insertions(+), 96 deletions(-)
diff --git a/Speed_gcc_x86_64-pc-linux-gnu b/Speed_gcc_x86_64-pc-linux-gnu
index 5cd14b4..d5973a8 100644
--- a/Speed_gcc_x86_64-pc-linux-gnu
+++ b/Speed_gcc_x86_64-pc-linux-gnu
@@ -1,7 +1,7 @@
Test speed:
- naic, no solve : 2.012e-02 s mean; 19026 us least of 50 runs
- naic, specamt solve : 3.338e-02 s mean; 32766 us least of 30 runs
- naic, ee prem solve : 3.073e-02 s mean; 30324 us least of 33 runs
- finra, no solve : 7.956e-03 s mean; 7562 us least of 100 runs
- finra, specamt solve: 2.084e-02 s mean; 20269 us least of 48 runs
- finra, ee prem solve: 1.945e-02 s mean; 18905 us least of 52 runs
+ naic, no solve : 2.123e-02 s mean; 19930 us least of 48 runs
+ naic, specamt solve : 3.441e-02 s mean; 33530 us least of 30 runs
+ naic, ee prem solve : 3.169e-02 s mean; 31105 us least of 32 runs
+ finra, no solve : 8.890e-03 s mean; 8592 us least of 100 runs
+ finra, specamt solve: 2.170e-02 s mean; 21237 us least of 47 runs
+ finra, ee prem solve: 2.049e-02 s mean; 19914 us least of 49 runs
diff --git a/Speed_gcc_x86_64-w64-mingw32 b/Speed_gcc_x86_64-w64-mingw32
index a7b2105..e7d8c2b 100644
--- a/Speed_gcc_x86_64-w64-mingw32
+++ b/Speed_gcc_x86_64-w64-mingw32
@@ -1,7 +1,7 @@
Test speed:
- naic, no solve : 2.665e-02 s mean; 26499 us least of 38 runs
- naic, specamt solve : 4.183e-02 s mean; 41638 us least of 24 runs
- naic, ee prem solve : 4.048e-02 s mean; 38911 us least of 25 runs
- finra, no solve : 1.491e-02 s mean; 14756 us least of 68 runs
- finra, specamt solve: 2.881e-02 s mean; 28627 us least of 35 runs
- finra, ee prem solve: 2.727e-02 s mean; 27162 us least of 37 runs
+ naic, no solve : 2.990e-02 s mean; 29631 us least of 34 runs
+ naic, specamt solve : 4.508e-02 s mean; 44684 us least of 23 runs
+ naic, ee prem solve : 4.217e-02 s mean; 41832 us least of 24 runs
+ finra, no solve : 1.771e-02 s mean; 17324 us least of 57 runs
+ finra, specamt solve: 3.203e-02 s mean; 31756 us least of 32 runs
+ finra, ee prem solve: 3.048e-02 s mean; 30010 us least of 33 runs
diff --git a/dbdict.cpp b/dbdict.cpp
index c5d5391..64814ca 100644
--- a/dbdict.cpp
+++ b/dbdict.cpp
@@ -421,6 +421,180 @@ void DBDictionary::ascribe_members()
ascribe("UsePolicyFormAlt" , &DBDictionary::UsePolicyFormAlt
); // LINGO !! expunge
ascribe("AllowGroupQuote" , &DBDictionary::AllowGroupQuote
);
ascribe("PolicyForm" , &DBDictionary::PolicyForm
);
+ ascribe("PolicyFormAlternative" , &DBDictionary::PolicyFormAlternative
);
+ // LINGO !! expunge
+ ascribe("PolicyMktgName" , &DBDictionary::PolicyMktgName
);
+ ascribe("PolicyLegalName" , &DBDictionary::PolicyLegalName
);
+ ascribe("InsCoShortName" , &DBDictionary::InsCoShortName
);
+ ascribe("InsCoName" , &DBDictionary::InsCoName
);
+ ascribe("InsCoAddr" , &DBDictionary::InsCoAddr
);
+ ascribe("InsCoStreet" , &DBDictionary::InsCoStreet
);
+ ascribe("InsCoPhone" , &DBDictionary::InsCoPhone
);
+// ascribe("InsCoDomicile" , &DBDictionary::InsCoDomicile
); // expunge
+ ascribe("MainUnderwriter" , &DBDictionary::MainUnderwriter
);
+ ascribe("MainUnderwriterAddress" ,
&DBDictionary::MainUnderwriterAddress );
+ ascribe("CoUnderwriter" , &DBDictionary::CoUnderwriter
);
+ ascribe("CoUnderwriterAddress" , &DBDictionary::CoUnderwriterAddress
);
+ ascribe("AvName" , &DBDictionary::AvName
);
+ ascribe("CsvName" , &DBDictionary::CsvName
);
+ ascribe("CsvHeaderName" , &DBDictionary::CsvHeaderName
);
+ ascribe("NoLapseProvisionName" , &DBDictionary::NoLapseProvisionName
);
+ ascribe("ContractName" , &DBDictionary::ContractName
);
+ ascribe("DboName" , &DBDictionary::DboName
);
+ ascribe("DboNameLevel" , &DBDictionary::DboNameLevel
);
+ ascribe("DboNameIncreasing" , &DBDictionary::DboNameIncreasing
);
+ ascribe("DboNameReturnOfPremium" ,
&DBDictionary::DboNameReturnOfPremium );
+ ascribe("DboNameMinDeathBenefit" ,
&DBDictionary::DboNameMinDeathBenefit );
+ ascribe("GenAcctName" , &DBDictionary::GenAcctName
);
+ ascribe("GenAcctNameElaborated" , &DBDictionary::GenAcctNameElaborated
);
+ ascribe("SepAcctName" , &DBDictionary::SepAcctName
);
+ ascribe("SpecAmtName" , &DBDictionary::SpecAmtName
);
+ ascribe("SpecAmtNameElaborated" , &DBDictionary::SpecAmtNameElaborated
);
+ ascribe("UwBasisMedical" , &DBDictionary::UwBasisMedical
);
+ ascribe("UwBasisParamedical" , &DBDictionary::UwBasisParamedical
);
+ ascribe("UwBasisNonmedical" , &DBDictionary::UwBasisNonmedical
);
+ ascribe("UwBasisSimplified" , &DBDictionary::UwBasisSimplified
);
+ ascribe("UwBasisGuaranteed" , &DBDictionary::UwBasisGuaranteed
);
+ ascribe("UwClassPreferred" , &DBDictionary::UwClassPreferred
);
+ ascribe("UwClassStandard" , &DBDictionary::UwClassStandard
);
+ ascribe("UwClassRated" , &DBDictionary::UwClassRated
);
+ ascribe("UwClassUltra" , &DBDictionary::UwClassUltra
);
+ ascribe("AccountValueFootnote" , &DBDictionary::AccountValueFootnote
);
+ ascribe("AttainedAgeFootnote" , &DBDictionary::AttainedAgeFootnote
);
+ ascribe("CashSurrValueFootnote" , &DBDictionary::CashSurrValueFootnote
);
+ ascribe("DeathBenefitFootnote" , &DBDictionary::DeathBenefitFootnote
);
+ ascribe("InitialPremiumFootnote" ,
&DBDictionary::InitialPremiumFootnote );
+ ascribe("NetPremiumFootnote" , &DBDictionary::NetPremiumFootnote
);
+ ascribe("GrossPremiumFootnote" , &DBDictionary::GrossPremiumFootnote
);
+ ascribe("OutlayFootnote" , &DBDictionary::OutlayFootnote
);
+ ascribe("PolicyYearFootnote" , &DBDictionary::PolicyYearFootnote
);
+ ascribe("ADDTerseName" , &DBDictionary::ADDTerseName
);
+ ascribe("InsurabilityTerseName" , &DBDictionary::InsurabilityTerseName
);
+ ascribe("ChildTerseName" , &DBDictionary::ChildTerseName
);
+ ascribe("SpouseTerseName" , &DBDictionary::SpouseTerseName
);
+ ascribe("TermTerseName" , &DBDictionary::TermTerseName
);
+ ascribe("WaiverTerseName" , &DBDictionary::WaiverTerseName
);
+ ascribe("AccelBftRiderTerseName" ,
&DBDictionary::AccelBftRiderTerseName );
+ ascribe("OverloanRiderTerseName" ,
&DBDictionary::OverloanRiderTerseName );
+ ascribe("ADDFootnote" , &DBDictionary::ADDFootnote
);
+ ascribe("ChildFootnote" , &DBDictionary::ChildFootnote
);
+ ascribe("SpouseFootnote" , &DBDictionary::SpouseFootnote
);
+ ascribe("TermFootnote" , &DBDictionary::TermFootnote
);
+ ascribe("WaiverFootnote" , &DBDictionary::WaiverFootnote
);
+ ascribe("AccelBftRiderFootnote" , &DBDictionary::AccelBftRiderFootnote
);
+ ascribe("OverloanRiderFootnote" , &DBDictionary::OverloanRiderFootnote
);
+ ascribe("GroupQuoteShortProductName",
&DBDictionary::GroupQuoteShortProductName);
+ ascribe("GroupQuoteIsNotAnOffer" ,
&DBDictionary::GroupQuoteIsNotAnOffer );
+ ascribe("GroupQuoteRidersFooter" ,
&DBDictionary::GroupQuoteRidersFooter );
+ ascribe("GroupQuotePolicyFormId" ,
&DBDictionary::GroupQuotePolicyFormId );
+ ascribe("GroupQuoteStateVariations" ,
&DBDictionary::GroupQuoteStateVariations );
+ ascribe("GroupQuoteProspectus" , &DBDictionary::GroupQuoteProspectus
);
+ ascribe("GroupQuoteUnderwriter" , &DBDictionary::GroupQuoteUnderwriter
);
+ ascribe("GroupQuoteBrokerDealer" ,
&DBDictionary::GroupQuoteBrokerDealer );
+ ascribe("GroupQuoteRubricMandatory" ,
&DBDictionary::GroupQuoteRubricMandatory );
+ ascribe("GroupQuoteRubricVoluntary" ,
&DBDictionary::GroupQuoteRubricVoluntary );
+ ascribe("GroupQuoteRubricFusion" ,
&DBDictionary::GroupQuoteRubricFusion );
+ ascribe("GroupQuoteFooterMandatory" ,
&DBDictionary::GroupQuoteFooterMandatory );
+ ascribe("GroupQuoteFooterVoluntary" ,
&DBDictionary::GroupQuoteFooterVoluntary );
+ ascribe("GroupQuoteFooterFusion" ,
&DBDictionary::GroupQuoteFooterFusion );
+ ascribe("MinimumPremiumFootnote" ,
&DBDictionary::MinimumPremiumFootnote );
+ ascribe("PremAllocationFootnote" ,
&DBDictionary::PremAllocationFootnote );
+ ascribe("InterestDisclaimer" , &DBDictionary::InterestDisclaimer
);
+ ascribe("GuarMortalityFootnote" , &DBDictionary::GuarMortalityFootnote
);
+ ascribe("ProductDescription" , &DBDictionary::ProductDescription
);
+ ascribe("StableValueFootnote" , &DBDictionary::StableValueFootnote
);
+ ascribe("NoVanishPremiumFootnote" ,
&DBDictionary::NoVanishPremiumFootnote );
+ ascribe("RejectPremiumFootnote" , &DBDictionary::RejectPremiumFootnote
);
+ ascribe("ExpRatingFootnote" , &DBDictionary::ExpRatingFootnote
);
+ ascribe("MortalityBlendFootnote" ,
&DBDictionary::MortalityBlendFootnote );
+ ascribe("HypotheticalRatesFootnote" ,
&DBDictionary::HypotheticalRatesFootnote );
+ ascribe("SalesLoadRefundFootnote" ,
&DBDictionary::SalesLoadRefundFootnote );
+ ascribe("NoLapseEverFootnote" , &DBDictionary::NoLapseEverFootnote
);
+ ascribe("NoLapseFootnote" , &DBDictionary::NoLapseFootnote
);
+ ascribe("CurrentValuesFootnote" , &DBDictionary::CurrentValuesFootnote
);
+ ascribe("DBOption1Footnote" , &DBDictionary::DBOption1Footnote
);
+ ascribe("DBOption2Footnote" , &DBDictionary::DBOption2Footnote
);
+ ascribe("DBOption3Footnote" , &DBDictionary::DBOption3Footnote
);
+ ascribe("MinDeathBenefitFootnote" ,
&DBDictionary::MinDeathBenefitFootnote );
+ ascribe("ExpRatRiskChargeFootnote" ,
&DBDictionary::ExpRatRiskChargeFootnote );
+ ascribe("ExchangeChargeFootnote1" ,
&DBDictionary::ExchangeChargeFootnote1 );
+ ascribe("FlexiblePremiumFootnote" ,
&DBDictionary::FlexiblePremiumFootnote );
+ ascribe("GuaranteedValuesFootnote" ,
&DBDictionary::GuaranteedValuesFootnote );
+ ascribe("CreditingRateFootnote" , &DBDictionary::CreditingRateFootnote
);
+// out of order ascribe("DefnGuarGenAcctRate" , &DBDictionary::
+ ascribe("GrossRateFootnote" , &DBDictionary::GrossRateFootnote
);
+ ascribe("NetRateFootnote" , &DBDictionary::NetRateFootnote
);
+ ascribe("MecFootnote" , &DBDictionary::MecFootnote
);
+ ascribe("GptFootnote" , &DBDictionary::GptFootnote
);
+ ascribe("MidpointValuesFootnote" ,
&DBDictionary::MidpointValuesFootnote );
+ ascribe("SinglePremiumFootnote" , &DBDictionary::SinglePremiumFootnote
);
+ ascribe("MonthlyChargesFootnote" ,
&DBDictionary::MonthlyChargesFootnote );
+ ascribe("UltCreditingRateFootnote" ,
&DBDictionary::UltCreditingRateFootnote );
+ ascribe("UltCreditingRateHeader" ,
&DBDictionary::UltCreditingRateHeader );
+ ascribe("MaxNaarFootnote" , &DBDictionary::MaxNaarFootnote
);
+ ascribe("PremTaxSurrChgFootnote" ,
&DBDictionary::PremTaxSurrChgFootnote );
+ ascribe("PolicyFeeFootnote" , &DBDictionary::PolicyFeeFootnote
);
+ ascribe("AssetChargeFootnote" , &DBDictionary::AssetChargeFootnote
);
+ ascribe("InvestmentIncomeFootnote" ,
&DBDictionary::InvestmentIncomeFootnote );
+ ascribe("IrrDbFootnote" , &DBDictionary::IrrDbFootnote
);
+ ascribe("IrrCsvFootnote" , &DBDictionary::IrrCsvFootnote
);
+ ascribe("MortalityChargesFootnote" ,
&DBDictionary::MortalityChargesFootnote );
+ ascribe("LoanAndWithdrawalFootnote" ,
&DBDictionary::LoanAndWithdrawalFootnote );
+ ascribe("LoanFootnote" , &DBDictionary::LoanFootnote
);
+ ascribe("ImprimaturPresale" , &DBDictionary::ImprimaturPresale
);
+ ascribe("ImprimaturPresaleComposite",
&DBDictionary::ImprimaturPresaleComposite);
+ ascribe("ImprimaturInforce" , &DBDictionary::ImprimaturInforce
);
+ ascribe("ImprimaturInforceComposite",
&DBDictionary::ImprimaturInforceComposite);
+ ascribe("StateMarketingImprimatur" ,
&DBDictionary::StateMarketingImprimatur );
+ ascribe("NonGuaranteedFootnote" , &DBDictionary::NonGuaranteedFootnote
);
+ ascribe("NonGuaranteedFootnote1" ,
&DBDictionary::NonGuaranteedFootnote1 );
+ ascribe("NonGuaranteedFootnote1Tx" ,
&DBDictionary::NonGuaranteedFootnote1Tx );
+ ascribe("FnMonthlyDeductions" , &DBDictionary::FnMonthlyDeductions
);
+ ascribe("SurrenderFootnote" , &DBDictionary::SurrenderFootnote
);
+ ascribe("PortabilityFootnote" , &DBDictionary::PortabilityFootnote
);
+ ascribe("FundRateFootnote" , &DBDictionary::FundRateFootnote
);
+ ascribe("IssuingCompanyFootnote" ,
&DBDictionary::IssuingCompanyFootnote );
+ ascribe("SubsidiaryFootnote" , &DBDictionary::SubsidiaryFootnote
);
+ ascribe("PlacementAgentFootnote" ,
&DBDictionary::PlacementAgentFootnote );
+ ascribe("MarketingNameFootnote" , &DBDictionary::MarketingNameFootnote
);
+ ascribe("GuarIssueDisclaimerNcSc" ,
&DBDictionary::GuarIssueDisclaimerNcSc );
+ ascribe("GuarIssueDisclaimerMd" , &DBDictionary::GuarIssueDisclaimerMd
);
+ ascribe("GuarIssueDisclaimerTx" , &DBDictionary::GuarIssueDisclaimerTx
);
+ ascribe("IllRegCertAgent" , &DBDictionary::IllRegCertAgent
);
+ ascribe("IllRegCertAgentIl" , &DBDictionary::IllRegCertAgentIl
);
+ ascribe("IllRegCertAgentTx" , &DBDictionary::IllRegCertAgentTx
);
+ ascribe("IllRegCertClient" , &DBDictionary::IllRegCertClient
);
+ ascribe("IllRegCertClientIl" , &DBDictionary::IllRegCertClientIl
);
+ ascribe("IllRegCertClientTx" , &DBDictionary::IllRegCertClientTx
);
+ ascribe("FnMaturityAge" , &DBDictionary::FnMaturityAge
);
+ ascribe("FnPartialMortality" , &DBDictionary::FnPartialMortality
);
+ ascribe("FnProspectus" , &DBDictionary::FnProspectus
);
+ ascribe("FnInitialSpecAmt" , &DBDictionary::FnInitialSpecAmt
);
+ ascribe("FnInforceAcctVal" , &DBDictionary::FnInforceAcctVal
);
+ ascribe("FnInforceTaxBasis" , &DBDictionary::FnInforceTaxBasis
);
+ ascribe("Fn1035Charge" , &DBDictionary::Fn1035Charge
);
+ ascribe("FnMecExtraWarning" , &DBDictionary::FnMecExtraWarning
);
+ ascribe("FnNotTaxAdvice" , &DBDictionary::FnNotTaxAdvice
);
+ ascribe("FnNotTaxAdvice2" , &DBDictionary::FnNotTaxAdvice2
);
+ ascribe("FnImf" , &DBDictionary::FnImf
);
+ ascribe("FnCensus" , &DBDictionary::FnCensus
);
+ ascribe("FnDacTax" , &DBDictionary::FnDacTax
);
+ ascribe("FnDefnLifeIns" , &DBDictionary::FnDefnLifeIns
);
+ ascribe("FnBoyEoy" , &DBDictionary::FnBoyEoy
);
+ ascribe("FnGeneralAccount" , &DBDictionary::FnGeneralAccount
);
+ ascribe("FnPpMemorandum" , &DBDictionary::FnPpMemorandum
);
+ ascribe("FnPpAccreditedInvestor" ,
&DBDictionary::FnPpAccreditedInvestor );
+ ascribe("FnPpLoads" , &DBDictionary::FnPpLoads
);
+ ascribe("FnProposalUnderwriting" ,
&DBDictionary::FnProposalUnderwriting );
+ ascribe("FnGuaranteedPremium" , &DBDictionary::FnGuaranteedPremium
);
+ ascribe("FnOmnibusDisclaimer" , &DBDictionary::FnOmnibusDisclaimer
);
+ ascribe("FnInitialDbo" , &DBDictionary::FnInitialDbo
);
+ ascribe("DefnGuarGenAcctRate" , &DBDictionary::DefnGuarGenAcctRate
);
+ ascribe("DefnAV" , &DBDictionary::DefnAV
);
+ ascribe("DefnCSV" , &DBDictionary::DefnCSV
);
+ ascribe("DefnMec" , &DBDictionary::DefnMec
);
+ ascribe("DefnOutlay" , &DBDictionary::DefnOutlay
);
+ ascribe("DefnSpecAmt" , &DBDictionary::DefnSpecAmt
);
ascribe("WeightClass" , &DBDictionary::WeightClass
);
ascribe("WeightGender" , &DBDictionary::WeightGender
);
ascribe("WeightSmoking" , &DBDictionary::WeightSmoking
);
@@ -939,6 +1113,179 @@ sample::sample()
policy_form[mce_s_KS] = superior::policy_form_KS_KY;
policy_form[mce_s_KY] = superior::policy_form_KS_KY;
Add({DB_PolicyForm, premium_tax_dimensions, policy_form});
+ Add({DB_PolicyFormAlternative , superior::policy_form_alternative});
// LINGO !! expunge
+ Add({DB_PolicyMktgName , superior::policy_mktg_name});
+ Add({DB_PolicyLegalName , superior::policy_legal_name});
+ Add({DB_InsCoShortName , superior::insco_short_name});
+ Add({DB_InsCoName , superior::insco_name});
+ Add({DB_InsCoAddr , superior::insco_addr});
+ Add({DB_InsCoStreet , superior::insco_street});
+ Add({DB_InsCoPhone , superior::insco_phone});
+// Add({DB_InsCoDomicile , superior::insco_domicile}); // expunge
+ Add({DB_MainUnderwriter , superior::main_underwriter});
+ Add({DB_MainUnderwriterAddress , superior::main_underwriter_address});
+ Add({DB_CoUnderwriter , superior::counderwriter});
+ Add({DB_CoUnderwriterAddress , superior::counderwriter_address});
+ Add({DB_AvName , superior::av_name});
+ Add({DB_CsvName , superior::csv_name});
+ Add({DB_CsvHeaderName , superior::csv_header_name});
+ Add({DB_NoLapseProvisionName , superior::no_lapse_provision_name});
+ Add({DB_ContractName , superior::contract_name});
+ Add({DB_DboName , superior::dbo_name});
+ Add({DB_DboNameLevel , superior::dbo_name_level});
+ Add({DB_DboNameIncreasing , superior::dbo_name_increasing});
+ Add({DB_DboNameReturnOfPremium ,
superior::dbo_name_return_of_premium});
+ Add({DB_DboNameMinDeathBenefit ,
superior::dbo_name_min_death_benefit});
+ Add({DB_GenAcctName , superior::gen_acct_name});
+ Add({DB_GenAcctNameElaborated , superior::gen_acct_name_elaborated});
+ Add({DB_SepAcctName , superior::sep_acct_name});
+ Add({DB_SpecAmtName , superior::spec_amt_name});
+ Add({DB_SpecAmtNameElaborated , superior::spec_amt_name_elaborated});
+ Add({DB_UwBasisMedical , superior::uw_basis_medical});
+ Add({DB_UwBasisParamedical , superior::uw_basis_paramedical});
+ Add({DB_UwBasisNonmedical , superior::uw_basis_nonmedical});
+ Add({DB_UwBasisSimplified , superior::uw_basis_simplified});
+ Add({DB_UwBasisGuaranteed , superior::uw_basis_guaranteed});
+ Add({DB_UwClassPreferred , superior::uw_class_preferred});
+ Add({DB_UwClassStandard , superior::uw_class_standard});
+ Add({DB_UwClassRated , superior::uw_class_rated});
+ Add({DB_UwClassUltra , superior::uw_class_ultra});
+ Add({DB_AccountValueFootnote , superior::account_value_footnote});
+ Add({DB_AttainedAgeFootnote , superior::attained_age_footnote});
+ Add({DB_CashSurrValueFootnote , superior::cash_surr_value_footnote});
+ Add({DB_DeathBenefitFootnote , superior::death_benefit_footnote});
+ Add({DB_InitialPremiumFootnote , superior::initial_premium_footnote});
+ Add({DB_NetPremiumFootnote , superior::net_premium_footnote});
+ Add({DB_GrossPremiumFootnote , superior::gross_premium_footnote});
+ Add({DB_OutlayFootnote , superior::outlay_footnote});
+ Add({DB_PolicyYearFootnote , superior::policy_year_footnote});
+ Add({DB_ADDTerseName , superior::add_terse_name});
+ Add({DB_InsurabilityTerseName , superior::insurability_terse_name});
+ Add({DB_ChildTerseName , superior::child_terse_name});
+ Add({DB_SpouseTerseName , superior::spouse_terse_name});
+ Add({DB_TermTerseName , superior::term_terse_name});
+ Add({DB_WaiverTerseName , superior::waiver_terse_name});
+ Add({DB_AccelBftRiderTerseName ,
superior::accel_bft_rider_terse_name});
+ Add({DB_OverloanRiderTerseName , superior::overloan_rider_terse_name});
+ Add({DB_ADDFootnote , superior::add_footnote});
+ Add({DB_ChildFootnote , superior::child_footnote});
+ Add({DB_SpouseFootnote , superior::spouse_footnote});
+ Add({DB_TermFootnote , superior::term_footnote});
+ Add({DB_WaiverFootnote , superior::waiver_footnote});
+ Add({DB_AccelBftRiderFootnote , superior::accel_bft_rider_footnote});
+ Add({DB_OverloanRiderFootnote , superior::overloan_rider_footnote});
+ Add({DB_GroupQuoteShortProductName ,
superior::group_quote_short_product_name});
+ Add({DB_GroupQuoteIsNotAnOffer ,
superior::group_quote_is_not_an_offer});
+ Add({DB_GroupQuoteRidersFooter , superior::group_quote_riders_footer});
+ Add({DB_GroupQuotePolicyFormId ,
superior::group_quote_policy_form_id});
+ Add({DB_GroupQuoteStateVariations ,
superior::group_quote_state_variations});
+ Add({DB_GroupQuoteProspectus , superior::group_quote_prospectus});
+ Add({DB_GroupQuoteUnderwriter , superior::group_quote_underwriter});
+ Add({DB_GroupQuoteBrokerDealer , superior::group_quote_broker_dealer});
+ Add({DB_GroupQuoteRubricMandatory ,
superior::group_quote_rubric_mandatory});
+ Add({DB_GroupQuoteRubricVoluntary ,
superior::group_quote_rubric_voluntary});
+ Add({DB_GroupQuoteRubricFusion , superior::group_quote_rubric_fusion});
+ Add({DB_GroupQuoteFooterMandatory ,
superior::group_quote_footer_mandatory});
+ Add({DB_GroupQuoteFooterVoluntary ,
superior::group_quote_footer_voluntary});
+ Add({DB_GroupQuoteFooterFusion , superior::group_quote_footer_fusion});
+ Add({DB_MinimumPremiumFootnote , superior::minimum_premium_footnote});
+ Add({DB_PremAllocationFootnote , superior::prem_allocation_footnote});
+ Add({DB_InterestDisclaimer , superior::interest_disclaimer});
+ Add({DB_GuarMortalityFootnote , superior::guar_mortality_footnote});
+ Add({DB_ProductDescription , superior::product_description});
+ Add({DB_StableValueFootnote , superior::stable_value_footnote});
+ Add({DB_NoVanishPremiumFootnote ,
superior::no_vanish_premium_footnote});
+ Add({DB_RejectPremiumFootnote , superior::reject_premium_footnote});
+ Add({DB_ExpRatingFootnote , superior::exp_rating_footnote});
+ Add({DB_MortalityBlendFootnote , superior::mortality_blend_footnote});
+ Add({DB_HypotheticalRatesFootnote ,
superior::hypothetical_rates_footnote});
+ Add({DB_SalesLoadRefundFootnote ,
superior::sales_load_refund_footnote});
+ Add({DB_NoLapseEverFootnote , superior::no_lapse_ever_footnote});
+ Add({DB_NoLapseFootnote , superior::no_lapse_footnote});
+ Add({DB_CurrentValuesFootnote , superior::current_values_footnote});
+ Add({DB_DBOption1Footnote , superior::dbo1_footnote});
+ Add({DB_DBOption2Footnote , superior::dbo2_footnote});
+ Add({DB_DBOption3Footnote , superior::dbo3_footnote});
+ Add({DB_MinDeathBenefitFootnote ,
superior::min_death_benefit_footnote});
+ Add({DB_ExpRatRiskChargeFootnote ,
superior::exp_rat_risk_charge_footnote});
+ Add({DB_ExchangeChargeFootnote1 , superior::exchange_charge_footnote1});
+ Add({DB_FlexiblePremiumFootnote , superior::flexible_premium_footnote});
+ Add({DB_GuaranteedValuesFootnote ,
superior::guaranteed_values_footnote});
+ Add({DB_CreditingRateFootnote , superior::crediting_rate_footnote});
+// out of order Add({DB_DefnGuarGenAcctRate ,
superior::defn_guar_gen_acct_rate});
+ Add({DB_GrossRateFootnote , superior::gross_rate_footnote});
+ Add({DB_NetRateFootnote , superior::net_rate_footnote});
+ Add({DB_MecFootnote , superior::mec_footnote});
+ Add({DB_GptFootnote , superior::gpt_footnote});
+ Add({DB_MidpointValuesFootnote , superior::midpoint_values_footnote});
+ Add({DB_SinglePremiumFootnote , superior::single_premium_footnote});
+ Add({DB_MonthlyChargesFootnote , superior::monthly_charges_footnote});
+ Add({DB_UltCreditingRateFootnote ,
superior::ult_crediting_rate_footnote});
+ Add({DB_UltCreditingRateHeader , superior::ult_crediting_rate_header});
+ Add({DB_MaxNaarFootnote , superior::max_naar_footnote});
+ Add({DB_PremTaxSurrChgFootnote ,
superior::prem_tax_surr_chg_footnote});
+ Add({DB_PolicyFeeFootnote , superior::policy_fee_footnote});
+ Add({DB_AssetChargeFootnote , superior::asset_charge_footnote});
+ Add({DB_InvestmentIncomeFootnote ,
superior::investment_income_footnote});
+ Add({DB_IrrDbFootnote , superior::irr_db_footnote});
+ Add({DB_IrrCsvFootnote , superior::irr_csv_footnote});
+ Add({DB_MortalityChargesFootnote ,
superior::mortality_charges_footnote});
+ Add({DB_LoanAndWithdrawalFootnote ,
superior::loan_and_withdrawal_footnote});
+ Add({DB_LoanFootnote , superior::loan_footnote});
+ Add({DB_ImprimaturPresale , superior::imprimatur_presale});
+ Add({DB_ImprimaturPresaleComposite ,
superior::imprimatur_presale_composite});
+ Add({DB_ImprimaturInforce , superior::imprimatur_inforce});
+ Add({DB_ImprimaturInforceComposite ,
superior::imprimatur_inforce_composite});
+ Add({DB_StateMarketingImprimatur ,
superior::state_marketing_imprimatur});
+ Add({DB_NonGuaranteedFootnote , superior::non_guaranteed_footnote});
+ Add({DB_NonGuaranteedFootnote1 , superior::non_guaranteed_footnote1});
+ Add({DB_NonGuaranteedFootnote1Tx ,
superior::non_guaranteed_footnote1tx});
+ Add({DB_FnMonthlyDeductions , superior::fn_monthly_deductions});
+ Add({DB_SurrenderFootnote , superior::surrender_footnote});
+ Add({DB_PortabilityFootnote , superior::portability_footnote});
+ Add({DB_FundRateFootnote , superior::fund_rate_footnote});
+ Add({DB_IssuingCompanyFootnote , superior::issuing_company_footnote});
+ Add({DB_SubsidiaryFootnote , superior::subsidiary_footnote});
+ Add({DB_PlacementAgentFootnote , superior::placement_agent_footnote});
+ Add({DB_MarketingNameFootnote , superior::marketing_name_footnote});
+ Add({DB_GuarIssueDisclaimerNcSc ,
superior::guar_issue_disclaimer_nc_sc});
+ Add({DB_GuarIssueDisclaimerMd , superior::guar_issue_disclaimer_md});
+ Add({DB_GuarIssueDisclaimerTx , superior::guar_issue_disclaimer_tx});
+ Add({DB_IllRegCertAgent , superior::ill_reg_cert_agent});
+ Add({DB_IllRegCertAgentIl , superior::ill_reg_cert_agent_il});
+ Add({DB_IllRegCertAgentTx , superior::ill_reg_cert_agent_tx});
+ Add({DB_IllRegCertClient , superior::ill_reg_cert_client});
+ Add({DB_IllRegCertClientIl , superior::ill_reg_cert_client_il});
+ Add({DB_IllRegCertClientTx , superior::ill_reg_cert_client_tx});
+ Add({DB_FnMaturityAge , superior::fn_maturity_age});
+ Add({DB_FnPartialMortality , superior::fn_partial_mortality});
+ Add({DB_FnProspectus , superior::fn_prospectus});
+ Add({DB_FnInitialSpecAmt , superior::fn_initial_spec_amt});
+ Add({DB_FnInforceAcctVal , superior::fn_inforce_acct_val});
+ Add({DB_FnInforceTaxBasis , superior::fn_inforce_tax_basis});
+ Add({DB_Fn1035Charge , superior::fn1035charge});
+ Add({DB_FnMecExtraWarning , superior::fn_mec_extra_warning});
+ Add({DB_FnNotTaxAdvice , superior::fn_not_tax_advice});
+ Add({DB_FnNotTaxAdvice2 , superior::fn_not_tax_advice2});
+ Add({DB_FnImf , superior::fn_imf});
+ Add({DB_FnCensus , superior::fn_census});
+ Add({DB_FnDacTax , superior::fn_dac_tax});
+ Add({DB_FnDefnLifeIns , superior::fn_defn_life_ins});
+ Add({DB_FnBoyEoy , superior::fn_boy_eoy});
+ Add({DB_FnGeneralAccount , superior::fn_general_account});
+ Add({DB_FnPpMemorandum , superior::fn_pp_memorandum});
+ Add({DB_FnPpAccreditedInvestor , superior::fn_pp_accredited_investor});
+ Add({DB_FnPpLoads , superior::fn_pp_loads});
+ Add({DB_FnProposalUnderwriting , superior::fn_proposal_underwriting});
+ Add({DB_FnGuaranteedPremium , superior::fn_guaranteed_premium});
+ Add({DB_FnOmnibusDisclaimer , superior::fn_omnibus_disclaimer});
+ Add({DB_FnInitialDbo , superior::fn_initial_dbo});
+ Add({DB_DefnGuarGenAcctRate , superior::defn_guar_gen_acct_rate});
+ Add({DB_DefnAV , superior::defn_av});
+ Add({DB_DefnCSV , superior::defn_csv});
+ Add({DB_DefnMec , superior::defn_mec});
+ Add({DB_DefnOutlay , superior::defn_outlay});
+ Add({DB_DefnSpecAmt , superior::defn_spec_amt});
}
sample2::sample2()
@@ -971,6 +1318,10 @@ sample2gpp::sample2gpp()
sample2ipp::sample2ipp()
{
Add({DB_LedgerType , mce_individual_private_placement});
+ Add({DB_IrrDbFootnote , superior::poe_0});
+ Add({DB_IrrCsvFootnote , superior::poe_1});
+ Add({DB_MortalityChargesFootnote , superior::poe_2});
+ Add({DB_PolicyYearFootnote , superior::poe_3});
}
sample2xyz::sample2xyz()
diff --git a/dbdict.hpp b/dbdict.hpp
index c0679ac..17ea4bd 100644
--- a/dbdict.hpp
+++ b/dbdict.hpp
@@ -404,6 +404,179 @@ class LMI_SO DBDictionary
database_entity UsePolicyFormAlt ; // LINGO !! expunge
database_entity AllowGroupQuote ;
database_entity PolicyForm ;
+ database_entity PolicyFormAlternative ; // LINGO !! expunge
+ database_entity PolicyMktgName ;
+ database_entity PolicyLegalName ;
+ database_entity InsCoShortName ;
+ database_entity InsCoName ;
+ database_entity InsCoAddr ;
+ database_entity InsCoStreet ;
+ database_entity InsCoPhone ;
+// database_entity InsCoDomicile ; // expunge
+ database_entity MainUnderwriter ;
+ database_entity MainUnderwriterAddress ;
+ database_entity CoUnderwriter ;
+ database_entity CoUnderwriterAddress ;
+ database_entity AvName ;
+ database_entity CsvName ;
+ database_entity CsvHeaderName ;
+ database_entity NoLapseProvisionName ;
+ database_entity ContractName ;
+ database_entity DboName ;
+ database_entity DboNameLevel ;
+ database_entity DboNameIncreasing ;
+ database_entity DboNameReturnOfPremium ;
+ database_entity DboNameMinDeathBenefit ;
+ database_entity GenAcctName ;
+ database_entity GenAcctNameElaborated ;
+ database_entity SepAcctName ;
+ database_entity SpecAmtName ;
+ database_entity SpecAmtNameElaborated ;
+ database_entity UwBasisMedical ;
+ database_entity UwBasisParamedical ;
+ database_entity UwBasisNonmedical ;
+ database_entity UwBasisSimplified ;
+ database_entity UwBasisGuaranteed ;
+ database_entity UwClassPreferred ;
+ database_entity UwClassStandard ;
+ database_entity UwClassRated ;
+ database_entity UwClassUltra ;
+ database_entity AccountValueFootnote ;
+ database_entity AttainedAgeFootnote ;
+ database_entity CashSurrValueFootnote ;
+ database_entity DeathBenefitFootnote ;
+ database_entity InitialPremiumFootnote ;
+ database_entity NetPremiumFootnote ;
+ database_entity GrossPremiumFootnote ;
+ database_entity OutlayFootnote ;
+ database_entity PolicyYearFootnote ;
+ database_entity ADDTerseName ;
+ database_entity InsurabilityTerseName ;
+ database_entity ChildTerseName ;
+ database_entity SpouseTerseName ;
+ database_entity TermTerseName ;
+ database_entity WaiverTerseName ;
+ database_entity AccelBftRiderTerseName ;
+ database_entity OverloanRiderTerseName ;
+ database_entity ADDFootnote ;
+ database_entity ChildFootnote ;
+ database_entity SpouseFootnote ;
+ database_entity TermFootnote ;
+ database_entity WaiverFootnote ;
+ database_entity AccelBftRiderFootnote ;
+ database_entity OverloanRiderFootnote ;
+ database_entity GroupQuoteShortProductName;
+ database_entity GroupQuoteIsNotAnOffer ;
+ database_entity GroupQuoteRidersFooter ;
+ database_entity GroupQuotePolicyFormId ;
+ database_entity GroupQuoteStateVariations ;
+ database_entity GroupQuoteProspectus ;
+ database_entity GroupQuoteUnderwriter ;
+ database_entity GroupQuoteBrokerDealer ;
+ database_entity GroupQuoteRubricMandatory ;
+ database_entity GroupQuoteRubricVoluntary ;
+ database_entity GroupQuoteRubricFusion ;
+ database_entity GroupQuoteFooterMandatory ;
+ database_entity GroupQuoteFooterVoluntary ;
+ database_entity GroupQuoteFooterFusion ;
+ database_entity MinimumPremiumFootnote ;
+ database_entity PremAllocationFootnote ;
+ database_entity InterestDisclaimer ;
+ database_entity GuarMortalityFootnote ;
+ database_entity ProductDescription ;
+ database_entity StableValueFootnote ;
+ database_entity NoVanishPremiumFootnote ;
+ database_entity RejectPremiumFootnote ;
+ database_entity ExpRatingFootnote ;
+ database_entity MortalityBlendFootnote ;
+ database_entity HypotheticalRatesFootnote ;
+ database_entity SalesLoadRefundFootnote ;
+ database_entity NoLapseEverFootnote ;
+ database_entity NoLapseFootnote ;
+ database_entity CurrentValuesFootnote ;
+ database_entity DBOption1Footnote ;
+ database_entity DBOption2Footnote ;
+ database_entity DBOption3Footnote ;
+ database_entity MinDeathBenefitFootnote ;
+ database_entity ExpRatRiskChargeFootnote ;
+ database_entity ExchangeChargeFootnote1 ;
+ database_entity FlexiblePremiumFootnote ;
+ database_entity GuaranteedValuesFootnote ;
+ database_entity CreditingRateFootnote ;
+// out of order database_entity DefnGuarGenAcctRate ;
+ database_entity GrossRateFootnote ;
+ database_entity NetRateFootnote ;
+ database_entity MecFootnote ;
+ database_entity GptFootnote ;
+ database_entity MidpointValuesFootnote ;
+ database_entity SinglePremiumFootnote ;
+ database_entity MonthlyChargesFootnote ;
+ database_entity UltCreditingRateFootnote ;
+ database_entity UltCreditingRateHeader ;
+ database_entity MaxNaarFootnote ;
+ database_entity PremTaxSurrChgFootnote ;
+ database_entity PolicyFeeFootnote ;
+ database_entity AssetChargeFootnote ;
+ database_entity InvestmentIncomeFootnote ;
+ database_entity IrrDbFootnote ;
+ database_entity IrrCsvFootnote ;
+ database_entity MortalityChargesFootnote ;
+ database_entity LoanAndWithdrawalFootnote ;
+ database_entity LoanFootnote ;
+ database_entity ImprimaturPresale ;
+ database_entity ImprimaturPresaleComposite;
+ database_entity ImprimaturInforce ;
+ database_entity ImprimaturInforceComposite;
+ database_entity StateMarketingImprimatur ;
+ database_entity NonGuaranteedFootnote ;
+ database_entity NonGuaranteedFootnote1 ;
+ database_entity NonGuaranteedFootnote1Tx ;
+ database_entity FnMonthlyDeductions ;
+ database_entity SurrenderFootnote ;
+ database_entity PortabilityFootnote ;
+ database_entity FundRateFootnote ;
+ database_entity IssuingCompanyFootnote ;
+ database_entity SubsidiaryFootnote ;
+ database_entity PlacementAgentFootnote ;
+ database_entity MarketingNameFootnote ;
+ database_entity GuarIssueDisclaimerNcSc ;
+ database_entity GuarIssueDisclaimerMd ;
+ database_entity GuarIssueDisclaimerTx ;
+ database_entity IllRegCertAgent ;
+ database_entity IllRegCertAgentIl ;
+ database_entity IllRegCertAgentTx ;
+ database_entity IllRegCertClient ;
+ database_entity IllRegCertClientIl ;
+ database_entity IllRegCertClientTx ;
+ database_entity FnMaturityAge ;
+ database_entity FnPartialMortality ;
+ database_entity FnProspectus ;
+ database_entity FnInitialSpecAmt ;
+ database_entity FnInforceAcctVal ;
+ database_entity FnInforceTaxBasis ;
+ database_entity Fn1035Charge ;
+ database_entity FnMecExtraWarning ;
+ database_entity FnNotTaxAdvice ;
+ database_entity FnNotTaxAdvice2 ;
+ database_entity FnImf ;
+ database_entity FnCensus ;
+ database_entity FnDacTax ;
+ database_entity FnDefnLifeIns ;
+ database_entity FnBoyEoy ;
+ database_entity FnGeneralAccount ;
+ database_entity FnPpMemorandum ;
+ database_entity FnPpAccreditedInvestor ;
+ database_entity FnPpLoads ;
+ database_entity FnProposalUnderwriting ;
+ database_entity FnGuaranteedPremium ;
+ database_entity FnOmnibusDisclaimer ;
+ database_entity FnInitialDbo ;
+ database_entity DefnGuarGenAcctRate ;
+ database_entity DefnAV ;
+ database_entity DefnCSV ;
+ database_entity DefnMec ;
+ database_entity DefnOutlay ;
+ database_entity DefnSpecAmt ;
database_entity WeightClass ;
database_entity WeightGender ;
database_entity WeightSmoking ;
diff --git a/dbnames.hpp b/dbnames.hpp
index c5bf7a0..dea6d21 100644
--- a/dbnames.hpp
+++ b/dbnames.hpp
@@ -530,6 +530,179 @@ enum e_database_key
,DB_Topic_Lingo
,DB_PolicyForm
+ ,DB_PolicyFormAlternative // LINGO !! expunge
+ ,DB_PolicyMktgName
+ ,DB_PolicyLegalName
+ ,DB_InsCoShortName
+ ,DB_InsCoName
+ ,DB_InsCoAddr
+ ,DB_InsCoStreet
+ ,DB_InsCoPhone
+// ,DB_InsCoDomicile // expunge
+ ,DB_MainUnderwriter
+ ,DB_MainUnderwriterAddress
+ ,DB_CoUnderwriter
+ ,DB_CoUnderwriterAddress
+ ,DB_AvName
+ ,DB_CsvName
+ ,DB_CsvHeaderName
+ ,DB_NoLapseProvisionName
+ ,DB_ContractName
+ ,DB_DboName
+ ,DB_DboNameLevel
+ ,DB_DboNameIncreasing
+ ,DB_DboNameReturnOfPremium
+ ,DB_DboNameMinDeathBenefit
+ ,DB_GenAcctName
+ ,DB_GenAcctNameElaborated
+ ,DB_SepAcctName
+ ,DB_SpecAmtName
+ ,DB_SpecAmtNameElaborated
+ ,DB_UwBasisMedical
+ ,DB_UwBasisParamedical
+ ,DB_UwBasisNonmedical
+ ,DB_UwBasisSimplified
+ ,DB_UwBasisGuaranteed
+ ,DB_UwClassPreferred
+ ,DB_UwClassStandard
+ ,DB_UwClassRated
+ ,DB_UwClassUltra
+ ,DB_AccountValueFootnote
+ ,DB_AttainedAgeFootnote
+ ,DB_CashSurrValueFootnote
+ ,DB_DeathBenefitFootnote
+ ,DB_InitialPremiumFootnote
+ ,DB_NetPremiumFootnote
+ ,DB_GrossPremiumFootnote
+ ,DB_OutlayFootnote
+ ,DB_PolicyYearFootnote
+ ,DB_ADDTerseName
+ ,DB_InsurabilityTerseName
+ ,DB_ChildTerseName
+ ,DB_SpouseTerseName
+ ,DB_TermTerseName
+ ,DB_WaiverTerseName
+ ,DB_AccelBftRiderTerseName
+ ,DB_OverloanRiderTerseName
+ ,DB_ADDFootnote
+ ,DB_ChildFootnote
+ ,DB_SpouseFootnote
+ ,DB_TermFootnote
+ ,DB_WaiverFootnote
+ ,DB_AccelBftRiderFootnote
+ ,DB_OverloanRiderFootnote
+ ,DB_GroupQuoteShortProductName
+ ,DB_GroupQuoteIsNotAnOffer
+ ,DB_GroupQuoteRidersFooter
+ ,DB_GroupQuotePolicyFormId
+ ,DB_GroupQuoteStateVariations
+ ,DB_GroupQuoteProspectus
+ ,DB_GroupQuoteUnderwriter
+ ,DB_GroupQuoteBrokerDealer
+ ,DB_GroupQuoteRubricMandatory
+ ,DB_GroupQuoteRubricVoluntary
+ ,DB_GroupQuoteRubricFusion
+ ,DB_GroupQuoteFooterMandatory
+ ,DB_GroupQuoteFooterVoluntary
+ ,DB_GroupQuoteFooterFusion
+ ,DB_MinimumPremiumFootnote
+ ,DB_PremAllocationFootnote
+ ,DB_InterestDisclaimer
+ ,DB_GuarMortalityFootnote
+ ,DB_ProductDescription
+ ,DB_StableValueFootnote
+ ,DB_NoVanishPremiumFootnote
+ ,DB_RejectPremiumFootnote
+ ,DB_ExpRatingFootnote
+ ,DB_MortalityBlendFootnote
+ ,DB_HypotheticalRatesFootnote
+ ,DB_SalesLoadRefundFootnote
+ ,DB_NoLapseEverFootnote
+ ,DB_NoLapseFootnote
+ ,DB_CurrentValuesFootnote
+ ,DB_DBOption1Footnote
+ ,DB_DBOption2Footnote
+ ,DB_DBOption3Footnote
+ ,DB_MinDeathBenefitFootnote
+ ,DB_ExpRatRiskChargeFootnote
+ ,DB_ExchangeChargeFootnote1
+ ,DB_FlexiblePremiumFootnote
+ ,DB_GuaranteedValuesFootnote
+ ,DB_CreditingRateFootnote
+// ,DB_DefnGuarGenAcctRate // out of order
+ ,DB_GrossRateFootnote
+ ,DB_NetRateFootnote
+ ,DB_MecFootnote
+ ,DB_GptFootnote
+ ,DB_MidpointValuesFootnote
+ ,DB_SinglePremiumFootnote
+ ,DB_MonthlyChargesFootnote
+ ,DB_UltCreditingRateFootnote
+ ,DB_UltCreditingRateHeader
+ ,DB_MaxNaarFootnote
+ ,DB_PremTaxSurrChgFootnote
+ ,DB_PolicyFeeFootnote
+ ,DB_AssetChargeFootnote
+ ,DB_InvestmentIncomeFootnote
+ ,DB_IrrDbFootnote
+ ,DB_IrrCsvFootnote
+ ,DB_MortalityChargesFootnote
+ ,DB_LoanAndWithdrawalFootnote
+ ,DB_LoanFootnote
+ ,DB_ImprimaturPresale
+ ,DB_ImprimaturPresaleComposite
+ ,DB_ImprimaturInforce
+ ,DB_ImprimaturInforceComposite
+ ,DB_StateMarketingImprimatur
+ ,DB_NonGuaranteedFootnote
+ ,DB_NonGuaranteedFootnote1
+ ,DB_NonGuaranteedFootnote1Tx
+ ,DB_FnMonthlyDeductions
+ ,DB_SurrenderFootnote
+ ,DB_PortabilityFootnote
+ ,DB_FundRateFootnote
+ ,DB_IssuingCompanyFootnote
+ ,DB_SubsidiaryFootnote
+ ,DB_PlacementAgentFootnote
+ ,DB_MarketingNameFootnote
+ ,DB_GuarIssueDisclaimerNcSc
+ ,DB_GuarIssueDisclaimerMd
+ ,DB_GuarIssueDisclaimerTx
+ ,DB_IllRegCertAgent
+ ,DB_IllRegCertAgentIl
+ ,DB_IllRegCertAgentTx
+ ,DB_IllRegCertClient
+ ,DB_IllRegCertClientIl
+ ,DB_IllRegCertClientTx
+ ,DB_FnMaturityAge
+ ,DB_FnPartialMortality
+ ,DB_FnProspectus
+ ,DB_FnInitialSpecAmt
+ ,DB_FnInforceAcctVal
+ ,DB_FnInforceTaxBasis
+ ,DB_Fn1035Charge
+ ,DB_FnMecExtraWarning
+ ,DB_FnNotTaxAdvice
+ ,DB_FnNotTaxAdvice2
+ ,DB_FnImf
+ ,DB_FnCensus
+ ,DB_FnDacTax
+ ,DB_FnDefnLifeIns
+ ,DB_FnBoyEoy
+ ,DB_FnGeneralAccount
+ ,DB_FnPpMemorandum
+ ,DB_FnPpAccreditedInvestor
+ ,DB_FnPpLoads
+ ,DB_FnProposalUnderwriting
+ ,DB_FnGuaranteedPremium
+ ,DB_FnOmnibusDisclaimer
+ ,DB_FnInitialDbo
+ ,DB_DefnGuarGenAcctRate
+ ,DB_DefnAV
+ ,DB_DefnCSV
+ ,DB_DefnMec
+ ,DB_DefnOutlay
+ ,DB_DefnSpecAmt
,DB_Topic_Weights
diff --git a/dbnames.xpp b/dbnames.xpp
index c871302..e3e79fe 100644
--- a/dbnames.xpp
+++ b/dbnames.xpp
@@ -358,6 +358,177 @@
{DB_AllowGroupQuote,DB_Topic_Miscellanea,"AllowGroupQuote","Allow group
premium quotes: 0=no, 1=yes",}, \
{DB_Topic_Lingo,DB_FIRST,"Lingo","Text to be dropped into report templates:
index into lingo file",}, \
{DB_PolicyForm,DB_Topic_Lingo,"PolicyForm","Policy form",}, \
+{DB_PolicyFormAlternative,DB_Topic_Lingo,"PolicyFormAlternative","LINGO !!
expunge",}, \
+{DB_PolicyMktgName,DB_Topic_Lingo,"PolicyMktgName","PolicyMktgName",}, \
+{DB_PolicyLegalName,DB_Topic_Lingo,"PolicyLegalName","PolicyLegalName",}, \
+{DB_InsCoShortName,DB_Topic_Lingo,"InsCoShortName","InsCoShortName",}, \
+{DB_InsCoName,DB_Topic_Lingo,"InsCoName","InsCoName",}, \
+{DB_InsCoAddr,DB_Topic_Lingo,"InsCoAddr","InsCoAddr",}, \
+{DB_InsCoStreet,DB_Topic_Lingo,"InsCoStreet","InsCoStreet",}, \
+{DB_InsCoPhone,DB_Topic_Lingo,"InsCoPhone","InsCoPhone",}, \
+{DB_MainUnderwriter,DB_Topic_Lingo,"MainUnderwriter","MainUnderwriter",}, \
+{DB_MainUnderwriterAddress,DB_Topic_Lingo,"MainUnderwriterAddress","MainUnderwriterAddress",},
\
+{DB_CoUnderwriter,DB_Topic_Lingo,"CoUnderwriter","CoUnderwriter",}, \
+{DB_CoUnderwriterAddress,DB_Topic_Lingo,"CoUnderwriterAddress","CoUnderwriterAddress",},
\
+{DB_AvName,DB_Topic_Lingo,"AvName","AvName",}, \
+{DB_CsvName,DB_Topic_Lingo,"CsvName","CsvName",}, \
+{DB_CsvHeaderName,DB_Topic_Lingo,"CsvHeaderName","CsvHeaderName",}, \
+{DB_NoLapseProvisionName,DB_Topic_Lingo,"NoLapseProvisionName","NoLapseProvisionName",},
\
+{DB_ContractName,DB_Topic_Lingo,"ContractName","ContractName",}, \
+{DB_DboName,DB_Topic_Lingo,"DboName","DboName",}, \
+{DB_DboNameLevel,DB_Topic_Lingo,"DboNameLevel","DboNameLevel",}, \
+{DB_DboNameIncreasing,DB_Topic_Lingo,"DboNameIncreasing","DboNameIncreasing",},
\
+{DB_DboNameReturnOfPremium,DB_Topic_Lingo,"DboNameReturnOfPremium","DboNameReturnOfPremium",},
\
+{DB_DboNameMinDeathBenefit,DB_Topic_Lingo,"DboNameMinDeathBenefit","DboNameMinDeathBenefit",},
\
+{DB_GenAcctName,DB_Topic_Lingo,"GenAcctName","GenAcctName",}, \
+{DB_GenAcctNameElaborated,DB_Topic_Lingo,"GenAcctNameElaborated","GenAcctNameElaborated",},
\
+{DB_SepAcctName,DB_Topic_Lingo,"SepAcctName","SepAcctName",}, \
+{DB_SpecAmtName,DB_Topic_Lingo,"SpecAmtName","SpecAmtName",}, \
+{DB_SpecAmtNameElaborated,DB_Topic_Lingo,"SpecAmtNameElaborated","SpecAmtNameElaborated",},
\
+{DB_UwBasisMedical,DB_Topic_Lingo,"UwBasisMedical","UwBasisMedical",}, \
+{DB_UwBasisParamedical,DB_Topic_Lingo,"UwBasisParamedical","UwBasisParamedical",},
\
+{DB_UwBasisNonmedical,DB_Topic_Lingo,"UwBasisNonmedical","UwBasisNonmedical",},
\
+{DB_UwBasisSimplified,DB_Topic_Lingo,"UwBasisSimplified","UwBasisSimplified",},
\
+{DB_UwBasisGuaranteed,DB_Topic_Lingo,"UwBasisGuaranteed","UwBasisGuaranteed",},
\
+{DB_UwClassPreferred,DB_Topic_Lingo,"UwClassPreferred","UwClassPreferred",}, \
+{DB_UwClassStandard,DB_Topic_Lingo,"UwClassStandard","UwClassStandard",}, \
+{DB_UwClassRated,DB_Topic_Lingo,"UwClassRated","UwClassRated",}, \
+{DB_UwClassUltra,DB_Topic_Lingo,"UwClassUltra","UwClassUltra",}, \
+{DB_AccountValueFootnote,DB_Topic_Lingo,"AccountValueFootnote","AccountValueFootnote",},
\
+{DB_AttainedAgeFootnote,DB_Topic_Lingo,"AttainedAgeFootnote","AttainedAgeFootnote",},
\
+{DB_CashSurrValueFootnote,DB_Topic_Lingo,"CashSurrValueFootnote","CashSurrValueFootnote",},
\
+{DB_DeathBenefitFootnote,DB_Topic_Lingo,"DeathBenefitFootnote","DeathBenefitFootnote",},
\
+{DB_InitialPremiumFootnote,DB_Topic_Lingo,"InitialPremiumFootnote","InitialPremiumFootnote",},
\
+{DB_NetPremiumFootnote,DB_Topic_Lingo,"NetPremiumFootnote","NetPremiumFootnote",},
\
+{DB_GrossPremiumFootnote,DB_Topic_Lingo,"GrossPremiumFootnote","GrossPremiumFootnote",},
\
+{DB_OutlayFootnote,DB_Topic_Lingo,"OutlayFootnote","OutlayFootnote",}, \
+{DB_PolicyYearFootnote,DB_Topic_Lingo,"PolicyYearFootnote","PolicyYearFootnote",},
\
+{DB_ADDTerseName,DB_Topic_Lingo,"ADDTerseName","ADDTerseName",}, \
+{DB_InsurabilityTerseName,DB_Topic_Lingo,"InsurabilityTerseName","InsurabilityTerseName",},
\
+{DB_ChildTerseName,DB_Topic_Lingo,"ChildTerseName","ChildTerseName",}, \
+{DB_SpouseTerseName,DB_Topic_Lingo,"SpouseTerseName","SpouseTerseName",}, \
+{DB_TermTerseName,DB_Topic_Lingo,"TermTerseName","TermTerseName",}, \
+{DB_WaiverTerseName,DB_Topic_Lingo,"WaiverTerseName","WaiverTerseName",}, \
+{DB_AccelBftRiderTerseName,DB_Topic_Lingo,"AccelBftRiderTerseName","AccelBftRiderTerseName",},
\
+{DB_OverloanRiderTerseName,DB_Topic_Lingo,"OverloanRiderTerseName","OverloanRiderTerseName",},
\
+{DB_ADDFootnote,DB_Topic_Lingo,"ADDFootnote","ADDFootnote",}, \
+{DB_ChildFootnote,DB_Topic_Lingo,"ChildFootnote","ChildFootnote",}, \
+{DB_SpouseFootnote,DB_Topic_Lingo,"SpouseFootnote","SpouseFootnote",}, \
+{DB_TermFootnote,DB_Topic_Lingo,"TermFootnote","TermFootnote",}, \
+{DB_WaiverFootnote,DB_Topic_Lingo,"WaiverFootnote","WaiverFootnote",}, \
+{DB_AccelBftRiderFootnote,DB_Topic_Lingo,"AccelBftRiderFootnote","AccelBftRiderFootnote",},
\
+{DB_OverloanRiderFootnote,DB_Topic_Lingo,"OverloanRiderFootnote","OverloanRiderFootnote",},
\
+{DB_GroupQuoteShortProductName,DB_Topic_Lingo,"GroupQuoteShortProductName","GroupQuoteShortProductName",},
\
+{DB_GroupQuoteIsNotAnOffer,DB_Topic_Lingo,"GroupQuoteIsNotAnOffer","GroupQuoteIsNotAnOffer",},
\
+{DB_GroupQuoteRidersFooter,DB_Topic_Lingo,"GroupQuoteRidersFooter","GroupQuoteRidersFooter",},
\
+{DB_GroupQuotePolicyFormId,DB_Topic_Lingo,"GroupQuotePolicyFormId","GroupQuotePolicyFormId",},
\
+{DB_GroupQuoteStateVariations,DB_Topic_Lingo,"GroupQuoteStateVariations","GroupQuoteStateVariations",},
\
+{DB_GroupQuoteProspectus,DB_Topic_Lingo,"GroupQuoteProspectus","GroupQuoteProspectus",},
\
+{DB_GroupQuoteUnderwriter,DB_Topic_Lingo,"GroupQuoteUnderwriter","GroupQuoteUnderwriter",},
\
+{DB_GroupQuoteBrokerDealer,DB_Topic_Lingo,"GroupQuoteBrokerDealer","GroupQuoteBrokerDealer",},
\
+{DB_GroupQuoteRubricMandatory,DB_Topic_Lingo,"GroupQuoteRubricMandatory","GroupQuoteRubricMandatory",},
\
+{DB_GroupQuoteRubricVoluntary,DB_Topic_Lingo,"GroupQuoteRubricVoluntary","GroupQuoteRubricVoluntary",},
\
+{DB_GroupQuoteRubricFusion,DB_Topic_Lingo,"GroupQuoteRubricFusion","GroupQuoteRubricFusion",},
\
+{DB_GroupQuoteFooterMandatory,DB_Topic_Lingo,"GroupQuoteFooterMandatory","GroupQuoteFooterMandatory",},
\
+{DB_GroupQuoteFooterVoluntary,DB_Topic_Lingo,"GroupQuoteFooterVoluntary","GroupQuoteFooterVoluntary",},
\
+{DB_GroupQuoteFooterFusion,DB_Topic_Lingo,"GroupQuoteFooterFusion","GroupQuoteFooterFusion",},
\
+{DB_MinimumPremiumFootnote,DB_Topic_Lingo,"MinimumPremiumFootnote","MinimumPremiumFootnote",},
\
+{DB_PremAllocationFootnote,DB_Topic_Lingo,"PremAllocationFootnote","PremAllocationFootnote",},
\
+{DB_InterestDisclaimer,DB_Topic_Lingo,"InterestDisclaimer","InterestDisclaimer",},
\
+{DB_GuarMortalityFootnote,DB_Topic_Lingo,"GuarMortalityFootnote","GuarMortalityFootnote",},
\
+{DB_ProductDescription,DB_Topic_Lingo,"ProductDescription","ProductDescription",},
\
+{DB_StableValueFootnote,DB_Topic_Lingo,"StableValueFootnote","StableValueFootnote",},
\
+{DB_NoVanishPremiumFootnote,DB_Topic_Lingo,"NoVanishPremiumFootnote","NoVanishPremiumFootnote",},
\
+{DB_RejectPremiumFootnote,DB_Topic_Lingo,"RejectPremiumFootnote","RejectPremiumFootnote",},
\
+{DB_ExpRatingFootnote,DB_Topic_Lingo,"ExpRatingFootnote","ExpRatingFootnote",},
\
+{DB_MortalityBlendFootnote,DB_Topic_Lingo,"MortalityBlendFootnote","MortalityBlendFootnote",},
\
+{DB_HypotheticalRatesFootnote,DB_Topic_Lingo,"HypotheticalRatesFootnote","HypotheticalRatesFootnote",},
\
+{DB_SalesLoadRefundFootnote,DB_Topic_Lingo,"SalesLoadRefundFootnote","SalesLoadRefundFootnote",},
\
+{DB_NoLapseEverFootnote,DB_Topic_Lingo,"NoLapseEverFootnote","NoLapseEverFootnote",},
\
+{DB_NoLapseFootnote,DB_Topic_Lingo,"NoLapseFootnote","NoLapseFootnote",}, \
+{DB_CurrentValuesFootnote,DB_Topic_Lingo,"CurrentValuesFootnote","CurrentValuesFootnote",},
\
+{DB_DBOption1Footnote,DB_Topic_Lingo,"DBOption1Footnote","DBOption1Footnote",},
\
+{DB_DBOption2Footnote,DB_Topic_Lingo,"DBOption2Footnote","DBOption2Footnote",},
\
+{DB_DBOption3Footnote,DB_Topic_Lingo,"DBOption3Footnote","DBOption3Footnote",},
\
+{DB_MinDeathBenefitFootnote,DB_Topic_Lingo,"MinDeathBenefitFootnote","MinDeathBenefitFootnote",},
\
+{DB_ExpRatRiskChargeFootnote,DB_Topic_Lingo,"ExpRatRiskChargeFootnote","ExpRatRiskChargeFootnote",},
\
+{DB_ExchangeChargeFootnote1,DB_Topic_Lingo,"ExchangeChargeFootnote1","ExchangeChargeFootnote1",},
\
+{DB_FlexiblePremiumFootnote,DB_Topic_Lingo,"FlexiblePremiumFootnote","FlexiblePremiumFootnote",},
\
+{DB_GuaranteedValuesFootnote,DB_Topic_Lingo,"GuaranteedValuesFootnote","GuaranteedValuesFootnote",},
\
+{DB_CreditingRateFootnote,DB_Topic_Lingo,"CreditingRateFootnote","CreditingRateFootnote",},
\
+{DB_GrossRateFootnote,DB_Topic_Lingo,"GrossRateFootnote","GrossRateFootnote",},
\
+{DB_NetRateFootnote,DB_Topic_Lingo,"NetRateFootnote","NetRateFootnote",}, \
+{DB_MecFootnote,DB_Topic_Lingo,"MecFootnote","MecFootnote",}, \
+{DB_GptFootnote,DB_Topic_Lingo,"GptFootnote","GptFootnote",}, \
+{DB_MidpointValuesFootnote,DB_Topic_Lingo,"MidpointValuesFootnote","MidpointValuesFootnote",},
\
+{DB_SinglePremiumFootnote,DB_Topic_Lingo,"SinglePremiumFootnote","SinglePremiumFootnote",},
\
+{DB_MonthlyChargesFootnote,DB_Topic_Lingo,"MonthlyChargesFootnote","MonthlyChargesFootnote",},
\
+{DB_UltCreditingRateFootnote,DB_Topic_Lingo,"UltCreditingRateFootnote","UltCreditingRateFootnote",},
\
+{DB_UltCreditingRateHeader,DB_Topic_Lingo,"UltCreditingRateHeader","UltCreditingRateHeader",},
\
+{DB_MaxNaarFootnote,DB_Topic_Lingo,"MaxNaarFootnote","MaxNaarFootnote",}, \
+{DB_PremTaxSurrChgFootnote,DB_Topic_Lingo,"PremTaxSurrChgFootnote","PremTaxSurrChgFootnote",},
\
+{DB_PolicyFeeFootnote,DB_Topic_Lingo,"PolicyFeeFootnote","PolicyFeeFootnote",},
\
+{DB_AssetChargeFootnote,DB_Topic_Lingo,"AssetChargeFootnote","AssetChargeFootnote",},
\
+{DB_InvestmentIncomeFootnote,DB_Topic_Lingo,"InvestmentIncomeFootnote","InvestmentIncomeFootnote",},
\
+{DB_IrrDbFootnote,DB_Topic_Lingo,"IrrDbFootnote","IrrDbFootnote",}, \
+{DB_IrrCsvFootnote,DB_Topic_Lingo,"IrrCsvFootnote","IrrCsvFootnote",}, \
+{DB_MortalityChargesFootnote,DB_Topic_Lingo,"MortalityChargesFootnote","MortalityChargesFootnote",},
\
+{DB_LoanAndWithdrawalFootnote,DB_Topic_Lingo,"LoanAndWithdrawalFootnote","LoanAndWithdrawalFootnote",},
\
+{DB_LoanFootnote,DB_Topic_Lingo,"LoanFootnote","LoanFootnote",}, \
+{DB_ImprimaturPresale,DB_Topic_Lingo,"ImprimaturPresale","ImprimaturPresale",},
\
+{DB_ImprimaturPresaleComposite,DB_Topic_Lingo,"ImprimaturPresaleComposite","ImprimaturPresaleComposite",},
\
+{DB_ImprimaturInforce,DB_Topic_Lingo,"ImprimaturInforce","ImprimaturInforce",},
\
+{DB_ImprimaturInforceComposite,DB_Topic_Lingo,"ImprimaturInforceComposite","ImprimaturInforceComposite",},
\
+{DB_StateMarketingImprimatur,DB_Topic_Lingo,"StateMarketingImprimatur","StateMarketingImprimatur",},
\
+{DB_NonGuaranteedFootnote,DB_Topic_Lingo,"NonGuaranteedFootnote","NonGuaranteedFootnote",},
\
+{DB_NonGuaranteedFootnote1,DB_Topic_Lingo,"NonGuaranteedFootnote1","NonGuaranteedFootnote1",},
\
+{DB_NonGuaranteedFootnote1Tx,DB_Topic_Lingo,"NonGuaranteedFootnote1Tx","NonGuaranteedFootnote1Tx",},
\
+{DB_FnMonthlyDeductions,DB_Topic_Lingo,"FnMonthlyDeductions","FnMonthlyDeductions",},
\
+{DB_SurrenderFootnote,DB_Topic_Lingo,"SurrenderFootnote","SurrenderFootnote",},
\
+{DB_PortabilityFootnote,DB_Topic_Lingo,"PortabilityFootnote","PortabilityFootnote",},
\
+{DB_FundRateFootnote,DB_Topic_Lingo,"FundRateFootnote","FundRateFootnote",}, \
+{DB_IssuingCompanyFootnote,DB_Topic_Lingo,"IssuingCompanyFootnote","IssuingCompanyFootnote",},
\
+{DB_SubsidiaryFootnote,DB_Topic_Lingo,"SubsidiaryFootnote","SubsidiaryFootnote",},
\
+{DB_PlacementAgentFootnote,DB_Topic_Lingo,"PlacementAgentFootnote","PlacementAgentFootnote",},
\
+{DB_MarketingNameFootnote,DB_Topic_Lingo,"MarketingNameFootnote","MarketingNameFootnote",},
\
+{DB_GuarIssueDisclaimerNcSc,DB_Topic_Lingo,"GuarIssueDisclaimerNcSc","GuarIssueDisclaimerNcSc",},
\
+{DB_GuarIssueDisclaimerMd,DB_Topic_Lingo,"GuarIssueDisclaimerMd","GuarIssueDisclaimerMd",},
\
+{DB_GuarIssueDisclaimerTx,DB_Topic_Lingo,"GuarIssueDisclaimerTx","GuarIssueDisclaimerTx",},
\
+{DB_IllRegCertAgent,DB_Topic_Lingo,"IllRegCertAgent","IllRegCertAgent",}, \
+{DB_IllRegCertAgentIl,DB_Topic_Lingo,"IllRegCertAgentIl","IllRegCertAgentIl",},
\
+{DB_IllRegCertAgentTx,DB_Topic_Lingo,"IllRegCertAgentTx","IllRegCertAgentTx",},
\
+{DB_IllRegCertClient,DB_Topic_Lingo,"IllRegCertClient","IllRegCertClient",}, \
+{DB_IllRegCertClientIl,DB_Topic_Lingo,"IllRegCertClientIl","IllRegCertClientIl",},
\
+{DB_IllRegCertClientTx,DB_Topic_Lingo,"IllRegCertClientTx","IllRegCertClientTx",},
\
+{DB_FnMaturityAge,DB_Topic_Lingo,"FnMaturityAge","FnMaturityAge",}, \
+{DB_FnPartialMortality,DB_Topic_Lingo,"FnPartialMortality","FnPartialMortality",},
\
+{DB_FnProspectus,DB_Topic_Lingo,"FnProspectus","FnProspectus",}, \
+{DB_FnInitialSpecAmt,DB_Topic_Lingo,"FnInitialSpecAmt","FnInitialSpecAmt",}, \
+{DB_FnInforceAcctVal,DB_Topic_Lingo,"FnInforceAcctVal","FnInforceAcctVal",}, \
+{DB_FnInforceTaxBasis,DB_Topic_Lingo,"FnInforceTaxBasis","FnInforceTaxBasis",},
\
+{DB_Fn1035Charge,DB_Topic_Lingo,"Fn1035Charge","Fn1035Charge",}, \
+{DB_FnMecExtraWarning,DB_Topic_Lingo,"FnMecExtraWarning","FnMecExtraWarning",},
\
+{DB_FnNotTaxAdvice,DB_Topic_Lingo,"FnNotTaxAdvice","FnNotTaxAdvice",}, \
+{DB_FnNotTaxAdvice2,DB_Topic_Lingo,"FnNotTaxAdvice2","FnNotTaxAdvice2",}, \
+{DB_FnImf,DB_Topic_Lingo,"FnImf","FnImf",}, \
+{DB_FnCensus,DB_Topic_Lingo,"FnCensus","FnCensus",}, \
+{DB_FnDacTax,DB_Topic_Lingo,"FnDacTax","FnDacTax",}, \
+{DB_FnDefnLifeIns,DB_Topic_Lingo,"FnDefnLifeIns","FnDefnLifeIns",}, \
+{DB_FnBoyEoy,DB_Topic_Lingo,"FnBoyEoy","FnBoyEoy",}, \
+{DB_FnGeneralAccount,DB_Topic_Lingo,"FnGeneralAccount","FnGeneralAccount",}, \
+{DB_FnPpMemorandum,DB_Topic_Lingo,"FnPpMemorandum","FnPpMemorandum",}, \
+{DB_FnPpAccreditedInvestor,DB_Topic_Lingo,"FnPpAccreditedInvestor","FnPpAccreditedInvestor",},
\
+{DB_FnPpLoads,DB_Topic_Lingo,"FnPpLoads","FnPpLoads",}, \
+{DB_FnProposalUnderwriting,DB_Topic_Lingo,"FnProposalUnderwriting","FnProposalUnderwriting",},
\
+{DB_FnGuaranteedPremium,DB_Topic_Lingo,"FnGuaranteedPremium","FnGuaranteedPremium",},
\
+{DB_FnOmnibusDisclaimer,DB_Topic_Lingo,"FnOmnibusDisclaimer","FnOmnibusDisclaimer",},
\
+{DB_FnInitialDbo,DB_Topic_Lingo,"FnInitialDbo","FnInitialDbo",}, \
+{DB_DefnGuarGenAcctRate,DB_Topic_Lingo,"DefnGuarGenAcctRate","DefnGuarGenAcctRate",},
\
+{DB_DefnAV,DB_Topic_Lingo,"DefnAV","DefnAV",}, \
+{DB_DefnCSV,DB_Topic_Lingo,"DefnCSV","DefnCSV",}, \
+{DB_DefnMec,DB_Topic_Lingo,"DefnMec","DefnMec",}, \
+{DB_DefnOutlay,DB_Topic_Lingo,"DefnOutlay","DefnOutlay",}, \
+{DB_DefnSpecAmt,DB_Topic_Lingo,"DefnSpecAmt","DefnSpecAmt",}, \
{DB_Topic_Weights,DB_FIRST,"Weights","Weights for profit analysis cells [not
yet implemented]",}, \
{DB_WeightClass,DB_Topic_Weights,"WeightClass","Weight by underwriting class
[not yet implemented]",}, \
{DB_WeightGender,DB_Topic_Weights,"WeightGender","Weight by gender [not yet
implemented]",}, \
diff --git a/ledger_invariant_init.cpp b/ledger_invariant_init.cpp
index 9117d25..5d5f608 100644
--- a/ledger_invariant_init.cpp
+++ b/ledger_invariant_init.cpp
@@ -340,6 +340,54 @@ void LedgerInvariant::Init(BasicValues const* b)
;
PolicyForm = b->lingo_->lookup(policy_form);
+#if 1
+ for(auto const& i : p.member_names())
+ {
+ if(ends_with(i, "Filename") || i == "InsCoDomicile")
+ continue;
+ auto const k = static_cast<e_database_key>(db_key_from_name(i));
+ auto const lingo_index = b->database().query<e_database_key>(k);
+//warning() << "Try '" << i << "' index " << lingo_index << std::flush;
+ std::string const newer = b->lingo_->lookup(lingo_index);
+ std::string const older = p.datum(i);
+ std::string const term = '{' + i + '}';
+ bool const is_same =
+ newer == older
+ || term == older
+ ;
+//warning()
+// << i << " i\n"
+// << "'" << newer << "' newer\n"
+// << "'" << older << "' older\n"
+// << "'" << term << "' term \n"
+// << is_same << " is_same\n"
+// << std::flush
+// ;
+//warning() << "...succeeded '" << lingo_index << "'" << std::flush;
+ if(!is_same)
+ {
+ if("PolicyForm" == i)
+ warning()
+ << "Expected difference:\n"
+ << i << " entity\n"
+ << newer << " newer\n"
+ << older << " older\n"
+ << term << " term\n"
+ << LMI_FLUSH
+ ;
+ else
+ alarum()
+ << "ERROR:\n"
+ << i << " entity\n"
+ << newer << " newer\n"
+ << older << " older\n"
+ << term << " term\n"
+ << LMI_FLUSH
+ ;
+ }
+ }
+#endif // 0
+
PolicyMktgName = p.datum("PolicyMktgName"
);
PolicyLegalName = p.datum("PolicyLegalName"
);
CsoEra = mc_str(b->database().query<mcenum_cso_era>(DB_CsoEra));
@@ -460,7 +508,8 @@ void LedgerInvariant::Init(BasicValues const* b)
FlexiblePremiumFootnote = p.datum("FlexiblePremiumFootnote"
);
GuaranteedValuesFootnote = p.datum("GuaranteedValuesFootnote"
);
CreditingRateFootnote = p.datum("CreditingRateFootnote"
);
- DefnGuarGenAcctRate = p.datum("DefnGuarGenAcctRate"
);
+// out of order:
+// DefnGuarGenAcctRate = p.datum("DefnGuarGenAcctRate"
);
GrossRateFootnote = p.datum("GrossRateFootnote"
);
NetRateFootnote = p.datum("NetRateFootnote"
);
MecFootnote = p.datum("MecFootnote"
);
@@ -528,6 +577,7 @@ void LedgerInvariant::Init(BasicValues const* b)
FnGuaranteedPremium = p.datum("FnGuaranteedPremium"
);
FnOmnibusDisclaimer = p.datum("FnOmnibusDisclaimer"
);
FnInitialDbo = p.datum("FnInitialDbo"
);
+ DefnGuarGenAcctRate = p.datum("DefnGuarGenAcctRate"
);
DefnAV = p.datum("DefnAV"
);
DefnCSV = p.datum("DefnCSV"
);
DefnMec = p.datum("DefnMec"
);
diff --git a/lingo.cpp b/lingo.cpp
index db56429..e4afd2d 100644
--- a/lingo.cpp
+++ b/lingo.cpp
@@ -58,16 +58,576 @@ std::string const& lingo::lookup(int index) const
return map_lookup(map_, index);
}
+namespace
+{
+static std::string const S_FnMonthlyDeductions =
+ "Monthly charges are deducted from the account value; if it is depleted,"
+ " additional premiums may be required.";
+
+// These two certifications are copied verbatim et literatim from the
+// illustration reg.
+static std::string const S_IllRegCertAgent =
+ "I certify that this illustration has been presented to the applicant and"
+ " that I have explained that any non-guaranteed elements illustrated are"
+ " subject to change. I have made no statements that are inconsistent with"
+ " the illustration.";
+static std::string const S_IllRegCertClient =
+ "I have received a copy of this illustration and understand that any"
+ " non-guaranteed elements illustrated are subject to change and could be"
+ " either higher or lower. The agent has told me they are not guaranteed.";
+
+static std::string const S_FnMaturityAge =
+ "Ā¶Ā¶Maturity age: {{EndtAge}}.";
+
+static std::string const S_FnPartialMortality =
+ "Ā¶Ā¶Columns reflect mortality, beginning at {{PartMortTableMult[0]}}"
+ " of the {{PartMortTableName}} table,"
+ " with all deaths at the end of each year"
+ "{{#SurviveToExpectancy}}"
+ " and survival limited to life expectancy"
+ "{{/SurviveToExpectancy}}"
+ "{{#SurviveToYear}}"
+ " and survival limited to {{SurvivalMaxYear}} years"
+ "{{/SurviveToYear}}"
+ "{{#SurviveToAge}}"
+ " and survival limited to age {{SurvivalMaxAge}}"
+ "{{/SurviveToAge}}"
+ ".";
+
+static std::string const S_FnProspectus =
+ "Must be preceded or accompanied by a prospectus.";
+static std::string const S_FnInitialSpecAmt =
+ "The initial specified amount is ${{InitTotalSA}}.";
+static std::string const S_FnInforceAcctVal =
+ "The inforce account value is ${{InforceTotalAV}}.";
+static std::string const S_FnInforceTaxBasis =
+ "The inforce tax basis is ${{InforceTaxBasis}}.";
+static std::string const S_Fn1035Charge =
+ "A charge may be deducted from the proceeds of a 1035 exchange.";
+static std::string const S_FnMecExtraWarning =
+ "{{#IsMec}}Ā¶Ā¶This is a Modified Endowment Contract.{{/IsMec}}";
+static std::string const S_FnNotTaxAdvice =
+ "{{InsCoShortName}} cannot give tax advice. Consult your own advisors.";
+static std::string const S_FnImf =
+ "Initial investment management fee: {{TotalIMF[0]}}.";
+static std::string const S_FnCensus =
+ ""; // There is no census attached to a composite.
+static std::string const S_FnDacTax =
+ "There is no explicit charge for DAC tax.";
+
+static std::string const S_FnDefnLifeIns =
+ "This policy is intended to qualify as life insurance under the IRC Ā§7702"
+ "{{#DefnLifeInsIsGPT}}"
+ " guideline premium test. ${{InitGSP}} is the guideline single premium,"
+ " and ${{InitGLP}} is the guideline level premium."
+ "{{/DefnLifeInsIsGPT}}"
+ "{{^DefnLifeInsIsGPT}}"
+ "cash value accumulation test."
+ "{{/DefnLifeInsIsGPT}}";
+
+static std::string const S_FnBoyEoy =
+ "Premiums are payable in advance. Benefits are as of year end.";
+static std::string const S_FnGeneralAccount =
+ "The general account credits interest of at least
{{InitAnnGenAcctInt_Guaranteed}}.";
+static std::string const S_FnPpMemorandum =
+ "Must be preceded or accompanied by a prospectus.";
+static std::string const S_FnPpAccreditedInvestor =
+ "Available only to accredited investors.";
+static std::string const S_FnPpLoads =
+ ""; // Explanation of any special loads.
+static std::string const S_FnProposalUnderwriting =
+ ""; // Explanation of group underwriting.
+static std::string const S_FnGuaranteedPremium =
+ "An outlay of ${{GuarPrem}} ({{InitEeMode}}) will guarantee coverage"
+ " to age {{EndtAge}}"
+ "{{#DefnLifeInsIsGPT}}"
+ ", subject to guideline premium test limits"
+ "{{/DefnLifeInsIsGPT}}"
+ ".";
+static std::string const S_FnOmnibusDisclaimer =
+ "Non-guaranteed values are based on current assumptions, which are"
+ " subject to change. Actual results may be more or less favorable.";
+static std::string const S_FnInitialDbo =
+ "The initial death benefit option is {{InitDBOpt}}.";
+static std::string const S_DefnGuarGenAcctRate =
+ "Ā¶Ā¶Ā«Guaranteed Crediting Rate:Ā»"
+ " The minimum annual interest rate credited on unloaned funds."
+ ;
+static std::string const S_DefnAV =
+ "Account value is the accumulation of payments less charges and
disbursements.";
+static std::string const S_DefnCSV =
+ "Cash surrender value is account value less any surrender charge.";
+static std::string const S_DefnMec =
+ "A Modified Endowment Contract is a contract that does not qualify"
+ " for favorable tax treatment under IRC Ā§7702A.";
+static std::string const S_DefnOutlay =
+ "Outlay is premium paid out of pocket.";
+static std::string const S_DefnSpecAmt =
+ "Specified amount is the nominal face amount.";
+
+static std::string const S_Poe0 =
+ "The \"Red Death\" had long devastated the country. No pestilence"
+ " had ever been so fatal, or so hideous. Blood was its Avatar and"
+ " its seal--the redness and the horror of blood. There were sharp"
+ " pains, and sudden dizziness, and then profuse bleeding at the"
+ " pores, with dissolution. The scarlet stains upon the body and"
+ " especially upon the face of the victim, were the pest ban which"
+ " shut him out from the aid and from the sympathy of his fellow-men."
+ " And the whole seizure, progress and termination of the disease,"
+ " were the incidents of half an hour.";
+static std::string const S_Poe1 =
+ "But the Prince Prospero was happy and dauntless and sagacious. When"
+ " his dominions were half depopulated, he summoned to his presence a"
+ " thousand hale and light-hearted friends from among the knights and"
+ " dames of his court, and with these retired to the deep seclusion"
+ " of one of his castellated abbeys. This was an extensive and"
+ " magnificent structure, the creation of the prince's own eccentric"
+ " yet august taste. A strong and lofty wall girdled it in. This wall"
+ " had gates of iron. The courtiers, having entered, brought furnaces"
+ " and massy hammers and welded the bolts. They resolved to leave"
+ " means neither of ingress nor egress to the sudden impulses of"
+ " despair or of frenzy from within. The abbey was amply provisioned."
+ " With such precautions the courtiers might bid defiance to contagion."
+ " The external world could take care of itself. In the meantime it"
+ " was folly to grieve, or to think. The prince had provided all the"
+ " appliances of pleasure. There were buffoons, there were"
+ " improvisatori, there were ballet-dancers, there were musicians,"
+ " there was Beauty, there was wine. All these and security were"
+ " within. Without was the \"Red Death\".";
+static std::string const S_Poe2 =
+ "It was towards the close of the fifth or sixth month of his"
+ " seclusion, and while the pestilence raged most furiously abroad,"
+ " that the Prince Prospero entertained his thousand friends at a"
+ " masked ball of the most unusual magnificence.";
+static std::string const S_Poe3 =
+ "It was a voluptuous scene, that masquerade. But first let me tell"
+ " of the rooms in which it was held. These were seven--an imperial"
+ " suite. In many palaces, however, such suites form a long and"
+ " straight vista, while the folding doors slide back nearly to the"
+ " walls on either hand, so that the view of the whole extent is"
+ " scarcely impeded. Here the case was very different, as might have"
+ " been expected from the duke's love of the _bizarre_. The apartments"
+ " were so irregularly disposed that the vision embraced but little"
+ " more than one at a time. There was a sharp turn at every twenty or"
+ " thirty yards, and at each turn a novel effect. To the right and"
+ " left, in the middle of each wall, a tall and narrow Gothic window"
+ " looked out upon a closed corridor which pursued the windings of the"
+ " suite. These windows were of stained glass whose color varied in"
+ " accordance with the prevailing hue of the decorations of the"
+ " chamber into which it opened. That at the eastern extremity was"
+ " hung, for example in blue--and vividly blue were its windows. The"
+ " second chamber was purple in its ornaments and tapestries, and here"
+ " the panes were purple. The third was green throughout, and so were"
+ " the casements. The fourth was furnished and lighted with orange--the"
+ " fifth with white--the sixth with violet. The seventh apartment was"
+ " closely shrouded in black velvet tapestries that hung all over the"
+ " ceiling and down the walls, falling in heavy folds upon a carpet of"
+ " the same material and hue. But in this chamber only, the color of"
+ " the windows failed to correspond with the decorations. The panes"
+ " here were scarlet--a deep blood color. Now in no one of the seven"
+ " apartments was there any lamp or candelabrum, amid the profusion of"
+ " golden ornaments that lay scattered to and fro or depended from the"
+ " roof. There was no light of any kind emanating from lamp or candle"
+ " within the suite of chambers. But in the corridors that followed the"
+ " suite, there stood, opposite to each window, a heavy tripod, bearing"
+ " a brazier of fire, that projected its rays through the tinted glass"
+ " and so glaringly illumined the room. And thus were produced a"
+ " multitude of gaudy and fantastic appearances. But in the western or"
+ " black chamber the effect of the fire-light that streamed upon the"
+ " dark hangings through the blood-tinted panes, was ghastly in the"
+ " extreme, and produced so wild a look upon the countenances of those"
+ " who entered, that there were few of the company bold enough to set"
+ " foot within its precincts at all.";
+} // Unnamed namespace.
+
void lingo::write_lingo_files()
{
// superior::lingo enumerators are used for clarity in specifying
// this map. They decay to integers in the resulting file, which
// can therefore be read without the enumerators being visible.
static std::unordered_map<superior::lingo,std::string> const
enumerative_map
- {{superior::empty_string , ""}
- ,{superior::policy_form_term , "{PolicyForm}"}
- ,{superior::policy_form , "UL32768-NY"}
- ,{superior::policy_form_KS_KY, "UL32768-X"}
+ {{superior::empty_string , ""}
+
+ // Essential strings describing the policy and company.
+ ,{superior::policy_form_term , "{PolicyForm}"}
+ ,{superior::policy_form , "UL32768-NY"}
+ ,{superior::policy_form_KS_KY , "UL32768-X"}
+ ,{superior::policy_form_alternative_term ,
"{PolicyFormAlternative}"} // LINGO !! expunge
+ ,{superior::policy_form_alternative , "UL32768-X"} //
LINGO !! expunge
+ ,{superior::policy_mktg_name_term , "{PolicyMktgName}"}
+ ,{superior::policy_mktg_name , "UL Supreme"}
+ ,{superior::policy_legal_name_term , "{PolicyLegalName}"}
+ ,{superior::policy_legal_name , "Flexible Premium
Adjustable Life Insurance Policy"}
+ ,{superior::insco_short_name_term , "{InsCoShortName}"}
+ ,{superior::insco_short_name , "Superior Life"}
+ ,{superior::insco_name_term , "{InsCoName}"}
+ ,{superior::insco_name , "Superior Life
Insurance Company"}
+ ,{superior::insco_addr_term , "{InsCoAddr}"}
+ ,{superior::insco_addr , "Superior, WI 12345"}
+ ,{superior::insco_street_term , "{InsCoStreet}"}
+ ,{superior::insco_street , "246 Main Street"}
+ ,{superior::insco_phone_term , "{InsCoPhone}"}
+ ,{superior::insco_phone , "(800) 555-1212"}
+// ,{superior::insco_domicile_term , "{InsCoDomicile}"}
// expunge
+// ,{superior::insco_domicile , ""}
// expunge
+ ,{superior::main_underwriter_term , "{MainUnderwriter}"}
+ ,{superior::main_underwriter , "Superior
Securities"}
+ ,{superior::main_underwriter_address_term ,
"{MainUnderwriterAddress}"}
+ ,{superior::main_underwriter_address , "246-M Main Street,
Superior, WI 12345"}
+ ,{superior::counderwriter_term , "{CoUnderwriter}"}
+ ,{superior::counderwriter , "Superior Investors"}
+ ,{superior::counderwriter_address_term ,
"{CoUnderwriterAddress}"}
+ ,{superior::counderwriter_address , "246-C Main Street,
Superior, WI 12345"}
+
+ // Terms defined in the contract, which must be used for column
+ // headers, footnotes, etc. according to the illustration reg.
+ ,{superior::av_name_term , "{AvName}"}
+ ,{superior::av_name , "Account"}
+ ,{superior::csv_name_term , "{CsvName}"}
+ ,{superior::csv_name , "Cash Surrender"}
+ ,{superior::csv_header_name_term , "{CsvHeaderName}"}
+ ,{superior::csv_header_name , "Cash Surr"}
+ ,{superior::no_lapse_provision_name_term ,
"{NoLapseProvisionName}"}
+ ,{superior::no_lapse_provision_name , "No-lapse Provision"}
+ ,{superior::contract_name_term , "{ContractName}"}
+ ,{superior::contract_name , "contract"} //
Alternatively, "policy" or "certificate".
+ ,{superior::dbo_name_term , "{DboName}"}
+ ,{superior::dbo_name , "Death Benefit
Option"}
+ ,{superior::dbo_name_level_term , "{DboNameLevel}"}
+ ,{superior::dbo_name_level , "A"}
+ ,{superior::dbo_name_increasing_term ,
"{DboNameIncreasing}"}
+ ,{superior::dbo_name_increasing , "B"}
+ ,{superior::dbo_name_return_of_premium_term ,
"{DboNameReturnOfPremium}"}
+ ,{superior::dbo_name_return_of_premium , "ROP"}
+ ,{superior::dbo_name_min_death_benefit_term ,
"{DboNameMinDeathBenefit}"}
+ ,{superior::dbo_name_min_death_benefit , "MDB"}
+ ,{superior::gen_acct_name_term , "{GenAcctName}"}
+ ,{superior::gen_acct_name , "General Account"}
+ ,{superior::gen_acct_name_elaborated_term ,
"{GenAcctNameElaborated}"}
+ ,{superior::gen_acct_name_elaborated , "General Account
(GA)"}
+ ,{superior::sep_acct_name_term , "{SepAcctName}"}
+ ,{superior::sep_acct_name , "Separate Account"}
+ ,{superior::spec_amt_name_term , "{SpecAmtName}"}
+ ,{superior::spec_amt_name , "Specified Amount"}
+ ,{superior::spec_amt_name_elaborated_term ,
"{SpecAmtNameElaborated}"}
+ ,{superior::spec_amt_name_elaborated , "Specified (Face)
Amount"}
+
+ // Underwriting terms.
+ ,{superior::uw_basis_medical_term , "{UwBasisMedical}"}
+ ,{superior::uw_basis_medical , "Medical"}
+ ,{superior::uw_basis_paramedical_term ,
"{UwBasisParamedical}"}
+ ,{superior::uw_basis_paramedical , "Paramedical"}
+ ,{superior::uw_basis_nonmedical_term ,
"{UwBasisNonmedical}"}
+ ,{superior::uw_basis_nonmedical , "Nonmedical"}
+ ,{superior::uw_basis_simplified_term ,
"{UwBasisSimplified}"}
+ ,{superior::uw_basis_simplified , "Simplified Issue"}
+ ,{superior::uw_basis_guaranteed_term ,
"{UwBasisGuaranteed}"}
+ ,{superior::uw_basis_guaranteed , "Guaranteed Issue"}
+ ,{superior::uw_class_preferred_term , "{UwClassPreferred}"}
+ ,{superior::uw_class_preferred , "Preferred"}
+ ,{superior::uw_class_standard_term , "{UwClassStandard}"}
+ ,{superior::uw_class_standard , "Standard"}
+ ,{superior::uw_class_rated_term , "{UwClassRated}"}
+ ,{superior::uw_class_rated , "Rated"}
+ ,{superior::uw_class_ultra_term , "{UwClassUltra}"}
+ ,{superior::uw_class_ultra , "Ultrapreferred"}
+
+ // Ledger column definitions.
+ ,{superior::account_value_footnote_term ,
"{AccountValueFootnote}"}
+ ,{superior::account_value_footnote , ""}
+ ,{superior::attained_age_footnote_term ,
"{AttainedAgeFootnote}"}
+ ,{superior::attained_age_footnote , ""}
+ ,{superior::cash_surr_value_footnote_term ,
"{CashSurrValueFootnote}"}
+ ,{superior::cash_surr_value_footnote , ""}
+ ,{superior::death_benefit_footnote_term ,
"{DeathBenefitFootnote}"}
+ ,{superior::death_benefit_footnote , ""}
+ ,{superior::initial_premium_footnote_term ,
"{InitialPremiumFootnote}"}
+ ,{superior::initial_premium_footnote , ""}
+ ,{superior::net_premium_footnote_term ,
"{NetPremiumFootnote}"}
+ ,{superior::net_premium_footnote , ""}
+ ,{superior::gross_premium_footnote_term ,
"{GrossPremiumFootnote}"}
+ ,{superior::gross_premium_footnote , ""}
+ ,{superior::outlay_footnote_term , "{OutlayFootnote}"}
+ ,{superior::outlay_footnote , ""}
+ ,{superior::policy_year_footnote_term ,
"{PolicyYearFootnote}"}
+ ,{superior::policy_year_footnote , ""}
+
+ // Terse rider names.
+ ,{superior::add_terse_name_term , "{ADDTerseName}"}
+ ,{superior::add_terse_name , "Accident"}
+ ,{superior::insurability_terse_name_term ,
"{InsurabilityTerseName}"}
+ ,{superior::insurability_terse_name , "Insurability"}
+ ,{superior::child_terse_name_term , "{ChildTerseName}"}
+ ,{superior::child_terse_name , "Child"}
+ ,{superior::spouse_terse_name_term , "{SpouseTerseName}"}
+ ,{superior::spouse_terse_name , "Spouse"}
+ ,{superior::term_terse_name_term , "{TermTerseName}"}
+ ,{superior::term_terse_name , "Term"}
+ ,{superior::waiver_terse_name_term , "{WaiverTerseName}"}
+ ,{superior::waiver_terse_name , "Waiver"}
+ ,{superior::accel_bft_rider_terse_name_term ,
"{AccelBftRiderTerseName}"}
+ ,{superior::accel_bft_rider_terse_name , "Acceleration"}
+ ,{superior::overloan_rider_terse_name_term ,
"{OverloanRiderTerseName}"}
+ ,{superior::overloan_rider_terse_name , "Overloan"}
+
+ // Rider footnotes.
+ ,{superior::add_footnote_term , "{ADDFootnote}"}
+ ,{superior::add_footnote , ""}
+ ,{superior::child_footnote_term , "{ChildFootnote}"}
+ ,{superior::child_footnote , ""}
+ ,{superior::spouse_footnote_term , "{SpouseFootnote}"}
+ ,{superior::spouse_footnote , ""}
+ ,{superior::term_footnote_term , "{TermFootnote}"}
+ ,{superior::term_footnote , ""}
+ ,{superior::waiver_footnote_term , "{WaiverFootnote}"}
+ ,{superior::waiver_footnote , ""}
+ ,{superior::accel_bft_rider_footnote_term ,
"{AccelBftRiderFootnote}"}
+ ,{superior::accel_bft_rider_footnote , ""}
+ ,{superior::overloan_rider_footnote_term ,
"{OverloanRiderFootnote}"}
+ ,{superior::overloan_rider_footnote , ""}
+
+ // Group quotes.
+ ,{superior::group_quote_short_product_name_term ,
"{GroupQuoteShortProductName}"}
+ ,{superior::group_quote_short_product_name , "UL SUPREMEĀ®"}
+ ,{superior::group_quote_is_not_an_offer_term ,
"{GroupQuoteIsNotAnOffer}"}
+ ,{superior::group_quote_is_not_an_offer , "This is not an
offer of insurance."}
+ ,{superior::group_quote_riders_footer_term ,
"{GroupQuoteRidersFooter}"}
+ ,{superior::group_quote_riders_footer , "Available riders:
accident and waiver."}
+ ,{superior::group_quote_policy_form_id_term ,
"{GroupQuotePolicyFormId}"}
+ ,{superior::group_quote_policy_form_id , "Policy form
UL32768-NY is a flexible premium contract."}
+ ,{superior::group_quote_state_variations_term ,
"{GroupQuoteStateVariations}"}
+ ,{superior::group_quote_state_variations , "Not available in
all states."}
+ ,{superior::group_quote_prospectus_term ,
"{GroupQuoteProspectus}"}
+ ,{superior::group_quote_prospectus , "Read the prospectus
carefully."}
+ ,{superior::group_quote_underwriter_term ,
"{GroupQuoteUnderwriter}"}
+ ,{superior::group_quote_underwriter , "Securities
underwritten by Superior Securities."}
+ ,{superior::group_quote_broker_dealer_term ,
"{GroupQuoteBrokerDealer}"}
+ ,{superior::group_quote_broker_dealer , "Securities offered
through Superior Brokerage."}
+ // Group plan type is one of:
+ // -Mandatory: no individual selection of amounts; typically,
+ // the employer pays the entire premium
+ // -Voluntary: individual selection of amounts; typically, the
+ // employee pays the premium; may be called "supplemental"
+ // when it complements a (separate) "mandatory" plan
+ // -Fusion: mandatory and supplemental combined; typically, the
+ // employer and employee pay their respective premiums
+ ,{superior::group_quote_rubric_mandatory_term ,
"{GroupQuoteRubricMandatory}"}
+ ,{superior::group_quote_rubric_mandatory , "Mandatory"}
+ ,{superior::group_quote_rubric_voluntary_term ,
"{GroupQuoteRubricVoluntary}"}
+ ,{superior::group_quote_rubric_voluntary , "Voluntary"}
+ ,{superior::group_quote_rubric_fusion_term ,
"{GroupQuoteRubricFusion}"}
+ ,{superior::group_quote_rubric_fusion , "Fusion"}
+ ,{superior::group_quote_footer_mandatory_term ,
"{GroupQuoteFooterMandatory}"}
+ ,{superior::group_quote_footer_mandatory , "The employer pays
all premiums."}
+ ,{superior::group_quote_footer_voluntary_term ,
"{GroupQuoteFooterVoluntary}"}
+ ,{superior::group_quote_footer_voluntary , "The employee pays
all premiums."}
+ ,{superior::group_quote_footer_fusion_term ,
"{GroupQuoteFooterFusion}"}
+ ,{superior::group_quote_footer_fusion , "The employer and
employee pay their respective premiums."}
+
+ // Premium-specific footnotes.
+ ,{superior::minimum_premium_footnote_term ,
"{MinimumPremiumFootnote}"}
+ ,{superior::minimum_premium_footnote , ""}
+ ,{superior::prem_allocation_footnote_term ,
"{PremAllocationFootnote}"}
+ ,{superior::prem_allocation_footnote , ""}
+
+ // Miscellaneous other footnotes.
+ ,{superior::interest_disclaimer_term ,
"{InterestDisclaimer}"}
+ ,{superior::interest_disclaimer , ""}
+ ,{superior::guar_mortality_footnote_term ,
"{GuarMortalityFootnote}"}
+ ,{superior::guar_mortality_footnote , "Guaranteed
mortality basis: {{CsoEra}} CSO."}
+ ,{superior::product_description_term ,
"{ProductDescription}"}
+ ,{superior::product_description , ""}
+ ,{superior::stable_value_footnote_term ,
"{StableValueFootnote}"}
+ ,{superior::stable_value_footnote , ""}
+ ,{superior::no_vanish_premium_footnote_term ,
"{NoVanishPremiumFootnote}"}
+ ,{superior::no_vanish_premium_footnote , ""}
+ ,{superior::reject_premium_footnote_term ,
"{RejectPremiumFootnote}"}
+ ,{superior::reject_premium_footnote , ""}
+ ,{superior::exp_rating_footnote_term ,
"{ExpRatingFootnote}"}
+ ,{superior::exp_rating_footnote , ""}
+ ,{superior::mortality_blend_footnote_term ,
"{MortalityBlendFootnote}"}
+ ,{superior::mortality_blend_footnote , ""}
+ ,{superior::hypothetical_rates_footnote_term ,
"{HypotheticalRatesFootnote}"}
+ ,{superior::hypothetical_rates_footnote , ""}
+ ,{superior::sales_load_refund_footnote_term ,
"{SalesLoadRefundFootnote}"}
+ ,{superior::sales_load_refund_footnote , ""}
+ ,{superior::no_lapse_ever_footnote_term ,
"{NoLapseEverFootnote}"}
+ ,{superior::no_lapse_ever_footnote , ""}
+ ,{superior::no_lapse_footnote_term , "{NoLapseFootnote}"}
+ ,{superior::no_lapse_footnote , ""}
+ ,{superior::current_values_footnote_term ,
"{CurrentValuesFootnote}"}
+ ,{superior::current_values_footnote , ""}
+ ,{superior::dbo1_footnote_term ,
"{DBOption1Footnote}"}
+ ,{superior::dbo1_footnote , ""}
+ ,{superior::dbo2_footnote_term ,
"{DBOption2Footnote}"}
+ ,{superior::dbo2_footnote , ""}
+ ,{superior::dbo3_footnote_term ,
"{DBOption3Footnote}"}
+ ,{superior::dbo3_footnote , ""}
+ ,{superior::min_death_benefit_footnote_term ,
"{MinDeathBenefitFootnote}"}
+ ,{superior::min_death_benefit_footnote , ""}
+ ,{superior::exp_rat_risk_charge_footnote_term ,
"{ExpRatRiskChargeFootnote}"}
+ ,{superior::exp_rat_risk_charge_footnote , ""}
+ ,{superior::exchange_charge_footnote1_term ,
"{ExchangeChargeFootnote1}"}
+ ,{superior::exchange_charge_footnote1 , ""}
+ ,{superior::flexible_premium_footnote_term ,
"{FlexiblePremiumFootnote}"}
+ ,{superior::flexible_premium_footnote , ""}
+ ,{superior::guaranteed_values_footnote_term ,
"{GuaranteedValuesFootnote}"}
+ ,{superior::guaranteed_values_footnote , ""}
+ ,{superior::crediting_rate_footnote_term ,
"{CreditingRateFootnote}"}
+ ,{superior::crediting_rate_footnote , ""}
+// out of order:
+// ,{superior::defn_guar_gen_acct_rate_term ,
"{DefnGuarGenAcctRate}"}
+// ,{superior::defn_guar_gen_acct_rate ,
S_DefnGuarGenAcctRate}
+ ,{superior::gross_rate_footnote_term ,
"{GrossRateFootnote}"}
+ ,{superior::gross_rate_footnote , ""}
+ ,{superior::net_rate_footnote_term , "{NetRateFootnote}"}
+ ,{superior::net_rate_footnote , ""}
+ ,{superior::mec_footnote_term , "{MecFootnote}"}
+ ,{superior::mec_footnote , ""}
+ ,{superior::gpt_footnote_term , "{GptFootnote}"}
+ ,{superior::gpt_footnote , ""}
+ ,{superior::midpoint_values_footnote_term ,
"{MidpointValuesFootnote}"}
+ ,{superior::midpoint_values_footnote , ""}
+ ,{superior::single_premium_footnote_term ,
"{SinglePremiumFootnote}"}
+ ,{superior::single_premium_footnote , ""}
+ ,{superior::monthly_charges_footnote_term ,
"{MonthlyChargesFootnote}"}
+ ,{superior::monthly_charges_footnote , ""}
+ ,{superior::ult_crediting_rate_footnote_term ,
"{UltCreditingRateFootnote}"}
+ ,{superior::ult_crediting_rate_footnote , ""}
+ ,{superior::ult_crediting_rate_header_term ,
"{UltCreditingRateHeader}"}
+ ,{superior::ult_crediting_rate_header , ""}
+ ,{superior::max_naar_footnote_term , "{MaxNaarFootnote}"}
+ ,{superior::max_naar_footnote , ""}
+ ,{superior::prem_tax_surr_chg_footnote_term ,
"{PremTaxSurrChgFootnote}"}
+ ,{superior::prem_tax_surr_chg_footnote , ""}
+ ,{superior::policy_fee_footnote_term ,
"{PolicyFeeFootnote}"}
+ ,{superior::policy_fee_footnote , ""}
+ ,{superior::asset_charge_footnote_term ,
"{AssetChargeFootnote}"}
+ ,{superior::asset_charge_footnote , ""}
+ ,{superior::investment_income_footnote_term ,
"{InvestmentIncomeFootnote}"}
+ ,{superior::investment_income_footnote , ""}
+ ,{superior::irr_db_footnote_term , "{IrrDbFootnote}"}
+ ,{superior::irr_db_footnote , ""}
+ ,{superior::irr_csv_footnote_term , "{IrrCsvFootnote}"}
+ ,{superior::irr_csv_footnote , ""}
+ ,{superior::mortality_charges_footnote_term ,
"{MortalityChargesFootnote}"}
+ ,{superior::mortality_charges_footnote , ""}
+ ,{superior::loan_and_withdrawal_footnote_term ,
"{LoanAndWithdrawalFootnote}"}
+ ,{superior::loan_and_withdrawal_footnote , ""}
+ ,{superior::loan_footnote_term , "{LoanFootnote}"}
+ ,{superior::loan_footnote , ""}
+ ,{superior::imprimatur_presale_term ,
"{ImprimaturPresale}"}
+ ,{superior::imprimatur_presale , ""}
+ ,{superior::imprimatur_presale_composite_term ,
"{ImprimaturPresaleComposite}"}
+ ,{superior::imprimatur_presale_composite , ""}
+ ,{superior::imprimatur_inforce_term ,
"{ImprimaturInforce}"}
+ ,{superior::imprimatur_inforce , ""}
+ ,{superior::imprimatur_inforce_composite_term ,
"{ImprimaturInforceComposite}"}
+ ,{superior::imprimatur_inforce_composite , ""}
+ ,{superior::state_marketing_imprimatur_term ,
"{StateMarketingImprimatur}"}
+ ,{superior::state_marketing_imprimatur , ""}
+ ,{superior::non_guaranteed_footnote_term ,
"{NonGuaranteedFootnote}"}
+ ,{superior::non_guaranteed_footnote , ""}
+ ,{superior::non_guaranteed_footnote1_term ,
"{NonGuaranteedFootnote1}"}
+ ,{superior::non_guaranteed_footnote1 , ""}
+ ,{superior::non_guaranteed_footnote1tx_term ,
"{NonGuaranteedFootnote1Tx}"}
+ ,{superior::non_guaranteed_footnote1tx , ""}
+ ,{superior::fn_monthly_deductions_term ,
"{FnMonthlyDeductions}"}
+ ,{superior::fn_monthly_deductions ,
S_FnMonthlyDeductions}
+ ,{superior::surrender_footnote_term ,
"{SurrenderFootnote}"}
+ ,{superior::surrender_footnote , ""}
+ ,{superior::portability_footnote_term ,
"{PortabilityFootnote}"}
+ ,{superior::portability_footnote , ""}
+ ,{superior::fund_rate_footnote_term , "{FundRateFootnote}"}
+ ,{superior::fund_rate_footnote , ""}
+ ,{superior::issuing_company_footnote_term ,
"{IssuingCompanyFootnote}"}
+ ,{superior::issuing_company_footnote , ""}
+ ,{superior::subsidiary_footnote_term ,
"{SubsidiaryFootnote}"}
+ ,{superior::subsidiary_footnote , ""}
+ ,{superior::placement_agent_footnote_term ,
"{PlacementAgentFootnote}"}
+ ,{superior::placement_agent_footnote , ""}
+ ,{superior::marketing_name_footnote_term ,
"{MarketingNameFootnote}"}
+ ,{superior::marketing_name_footnote , "Policy form
UL32768-NY is marketed as 'UL Supreme'."}
+ ,{superior::guar_issue_disclaimer_nc_sc_term ,
"{GuarIssueDisclaimerNcSc}"}
+ ,{superior::guar_issue_disclaimer_nc_sc , ""}
+ ,{superior::guar_issue_disclaimer_md_term ,
"{GuarIssueDisclaimerMd}"}
+ ,{superior::guar_issue_disclaimer_md , ""}
+ ,{superior::guar_issue_disclaimer_tx_term ,
"{GuarIssueDisclaimerTx}"}
+ ,{superior::guar_issue_disclaimer_tx , ""}
+ ,{superior::ill_reg_cert_agent_term , "{IllRegCertAgent}"}
+ ,{superior::ill_reg_cert_agent , S_IllRegCertAgent}
+ ,{superior::ill_reg_cert_agent_il_term ,
"{IllRegCertAgentIl}"}
+ ,{superior::ill_reg_cert_agent_il , S_IllRegCertAgent}
+ ,{superior::ill_reg_cert_agent_tx_term ,
"{IllRegCertAgentTx}"}
+ ,{superior::ill_reg_cert_agent_tx , S_IllRegCertAgent}
+ ,{superior::ill_reg_cert_client_term , "{IllRegCertClient}"}
+ ,{superior::ill_reg_cert_client , S_IllRegCertClient}
+ ,{superior::ill_reg_cert_client_il_term ,
"{IllRegCertClientIl}"}
+ ,{superior::ill_reg_cert_client_il , S_IllRegCertClient}
+ ,{superior::ill_reg_cert_client_tx_term ,
"{IllRegCertClientTx}"}
+ ,{superior::ill_reg_cert_client_tx , S_IllRegCertClient}
+ ,{superior::fn_maturity_age_term , "{FnMaturityAge}"}
+ ,{superior::fn_maturity_age , S_FnMaturityAge}
+ ,{superior::fn_partial_mortality_term ,
"{FnPartialMortality}"}
+ ,{superior::fn_partial_mortality , S_FnPartialMortality}
+ ,{superior::fn_prospectus_term , "{FnProspectus}"}
+ ,{superior::fn_prospectus , S_FnProspectus}
+ ,{superior::fn_initial_spec_amt_term , "{FnInitialSpecAmt}"}
+ ,{superior::fn_initial_spec_amt , S_FnInitialSpecAmt}
+ ,{superior::fn_inforce_acct_val_term , "{FnInforceAcctVal}"}
+ ,{superior::fn_inforce_acct_val , S_FnInforceAcctVal}
+ ,{superior::fn_inforce_tax_basis_term ,
"{FnInforceTaxBasis}"}
+ ,{superior::fn_inforce_tax_basis , S_FnInforceTaxBasis}
+ ,{superior::fn1035charge_term , "{Fn1035Charge}"}
+ ,{superior::fn1035charge , S_Fn1035Charge}
+ ,{superior::fn_mec_extra_warning_term ,
"{FnMecExtraWarning}"}
+ ,{superior::fn_mec_extra_warning , S_FnMecExtraWarning}
+ ,{superior::fn_not_tax_advice_term , "{FnNotTaxAdvice}"}
+ ,{superior::fn_not_tax_advice , S_FnNotTaxAdvice}
+ ,{superior::fn_not_tax_advice2_term , "{FnNotTaxAdvice2}"}
+ ,{superior::fn_not_tax_advice2 , ""} // Deliberately
empty: shouldn't even exist.
+ ,{superior::fn_imf_term , "{FnImf}"}
+ ,{superior::fn_imf , S_FnImf}
+ ,{superior::fn_census_term , "{FnCensus}"}
+ ,{superior::fn_census , S_FnCensus}
+ ,{superior::fn_dac_tax_term , "{FnDacTax}"}
+ ,{superior::fn_dac_tax , S_FnDacTax}
+ ,{superior::fn_defn_life_ins_term , "{FnDefnLifeIns}"}
+ ,{superior::fn_defn_life_ins , S_FnDefnLifeIns}
+ ,{superior::fn_boy_eoy_term , "{FnBoyEoy}"}
+ ,{superior::fn_boy_eoy , S_FnBoyEoy}
+ ,{superior::fn_general_account_term , "{FnGeneralAccount}"}
+ ,{superior::fn_general_account , S_FnGeneralAccount}
+ ,{superior::fn_pp_memorandum_term , "{FnPpMemorandum}"}
+ ,{superior::fn_pp_memorandum , S_FnPpMemorandum}
+ ,{superior::fn_pp_accredited_investor_term ,
"{FnPpAccreditedInvestor}"}
+ ,{superior::fn_pp_accredited_investor ,
S_FnPpAccreditedInvestor}
+ ,{superior::fn_pp_loads_term , "{FnPpLoads}"}
+ ,{superior::fn_pp_loads , S_FnPpLoads}
+ ,{superior::fn_proposal_underwriting_term ,
"{FnProposalUnderwriting}"}
+ ,{superior::fn_proposal_underwriting ,
S_FnProposalUnderwriting}
+ ,{superior::fn_guaranteed_premium_term ,
"{FnGuaranteedPremium}"}
+ ,{superior::fn_guaranteed_premium ,
S_FnGuaranteedPremium}
+ ,{superior::fn_omnibus_disclaimer_term ,
"{FnOmnibusDisclaimer}"}
+ ,{superior::fn_omnibus_disclaimer ,
S_FnOmnibusDisclaimer}
+ ,{superior::fn_initial_dbo_term , "{FnInitialDbo}"}
+ ,{superior::fn_initial_dbo , S_FnInitialDbo}
+ ,{superior::defn_guar_gen_acct_rate_term ,
"{DefnGuarGenAcctRate}"}
+ ,{superior::defn_guar_gen_acct_rate ,
S_DefnGuarGenAcctRate}
+ ,{superior::defn_av_term , "{DefnAV}"}
+ ,{superior::defn_av , S_DefnAV}
+ ,{superior::defn_csv_term , "{DefnCSV}"}
+ ,{superior::defn_csv , S_DefnCSV}
+ ,{superior::defn_mec_term , "{DefnMec}"}
+ ,{superior::defn_mec , S_DefnMec}
+ ,{superior::defn_outlay_term , "{DefnOutlay}"}
+ ,{superior::defn_outlay , S_DefnOutlay}
+ ,{superior::defn_spec_amt_term , "{DefnSpecAmt}"}
+ ,{superior::defn_spec_amt , S_DefnSpecAmt}
+ ,{superior::poe_0 , S_Poe0}
+ ,{superior::poe_1 , S_Poe1}
+ ,{superior::poe_2 , S_Poe2}
+ ,{superior::poe_3 , S_Poe3}
};
fs::path const path(AddDataDir("sample.lingo"));
diff --git a/main_cli.cpp b/main_cli.cpp
index ec12b53..703de6d 100644
--- a/main_cli.cpp
+++ b/main_cli.cpp
@@ -193,10 +193,13 @@ void product_test()
std::vector<std::string> const& s = all_strings_state();
for(auto const& i : p)
{
+ if(!begins_with(i, "sample"))
+ continue;
std::cout << "Testing product " << i << std::endl;
input["ProductName" ] = i;
for(auto const& j : s)
{
+ std::cout << " state " << j << " product " << i << std::endl;
input["StateOfJurisdiction"] = j;
try
{
diff --git a/product_data.cpp b/product_data.cpp
index ab38c57..139bcc2 100644
--- a/product_data.cpp
+++ b/product_data.cpp
@@ -306,7 +306,8 @@ void product_data::ascribe_members()
ascribe("FlexiblePremiumFootnote" ,
&product_data::FlexiblePremiumFootnote );
ascribe("GuaranteedValuesFootnote" ,
&product_data::GuaranteedValuesFootnote );
ascribe("CreditingRateFootnote" ,
&product_data::CreditingRateFootnote );
- ascribe("DefnGuarGenAcctRate" , &product_data::DefnGuarGenAcctRate
);
+// out of order:
+// ascribe("DefnGuarGenAcctRate" , &product_data::DefnGuarGenAcctRate
);
ascribe("GrossRateFootnote" , &product_data::GrossRateFootnote
);
ascribe("NetRateFootnote" , &product_data::NetRateFootnote
);
ascribe("MecFootnote" , &product_data::MecFootnote
);
@@ -374,6 +375,7 @@ void product_data::ascribe_members()
ascribe("FnGuaranteedPremium" , &product_data::FnGuaranteedPremium
);
ascribe("FnOmnibusDisclaimer" , &product_data::FnOmnibusDisclaimer
);
ascribe("FnInitialDbo" , &product_data::FnInitialDbo
);
+ ascribe("DefnGuarGenAcctRate" , &product_data::DefnGuarGenAcctRate
);
ascribe("DefnAV" , &product_data::DefnAV
);
ascribe("DefnCSV" , &product_data::DefnCSV
);
ascribe("DefnMec" , &product_data::DefnMec
);
@@ -832,6 +834,83 @@ sample2gpp::sample2gpp()
item("DatabaseFilename") = glossed_string("sample2gpp.database");
}
+static std::string const S_Poe0 =
+ "The \"Red Death\" had long devastated the country. No pestilence"
+ " had ever been so fatal, or so hideous. Blood was its Avatar and"
+ " its seal--the redness and the horror of blood. There were sharp"
+ " pains, and sudden dizziness, and then profuse bleeding at the"
+ " pores, with dissolution. The scarlet stains upon the body and"
+ " especially upon the face of the victim, were the pest ban which"
+ " shut him out from the aid and from the sympathy of his fellow-men."
+ " And the whole seizure, progress and termination of the disease,"
+ " were the incidents of half an hour.";
+
+static std::string const S_Poe1 =
+ "But the Prince Prospero was happy and dauntless and sagacious. When"
+ " his dominions were half depopulated, he summoned to his presence a"
+ " thousand hale and light-hearted friends from among the knights and"
+ " dames of his court, and with these retired to the deep seclusion"
+ " of one of his castellated abbeys. This was an extensive and"
+ " magnificent structure, the creation of the prince's own eccentric"
+ " yet august taste. A strong and lofty wall girdled it in. This wall"
+ " had gates of iron. The courtiers, having entered, brought furnaces"
+ " and massy hammers and welded the bolts. They resolved to leave"
+ " means neither of ingress nor egress to the sudden impulses of"
+ " despair or of frenzy from within. The abbey was amply provisioned."
+ " With such precautions the courtiers might bid defiance to contagion."
+ " The external world could take care of itself. In the meantime it"
+ " was folly to grieve, or to think. The prince had provided all the"
+ " appliances of pleasure. There were buffoons, there were"
+ " improvisatori, there were ballet-dancers, there were musicians,"
+ " there was Beauty, there was wine. All these and security were"
+ " within. Without was the \"Red Death\".";
+
+static std::string const S_Poe2 =
+ "It was towards the close of the fifth or sixth month of his"
+ " seclusion, and while the pestilence raged most furiously abroad,"
+ " that the Prince Prospero entertained his thousand friends at a"
+ " masked ball of the most unusual magnificence.";
+
+static std::string const S_Poe3 =
+ "It was a voluptuous scene, that masquerade. But first let me tell"
+ " of the rooms in which it was held. These were seven--an imperial"
+ " suite. In many palaces, however, such suites form a long and"
+ " straight vista, while the folding doors slide back nearly to the"
+ " walls on either hand, so that the view of the whole extent is"
+ " scarcely impeded. Here the case was very different, as might have"
+ " been expected from the duke's love of the _bizarre_. The apartments"
+ " were so irregularly disposed that the vision embraced but little"
+ " more than one at a time. There was a sharp turn at every twenty or"
+ " thirty yards, and at each turn a novel effect. To the right and"
+ " left, in the middle of each wall, a tall and narrow Gothic window"
+ " looked out upon a closed corridor which pursued the windings of the"
+ " suite. These windows were of stained glass whose color varied in"
+ " accordance with the prevailing hue of the decorations of the"
+ " chamber into which it opened. That at the eastern extremity was"
+ " hung, for example in blue--and vividly blue were its windows. The"
+ " second chamber was purple in its ornaments and tapestries, and here"
+ " the panes were purple. The third was green throughout, and so were"
+ " the casements. The fourth was furnished and lighted with orange--the"
+ " fifth with white--the sixth with violet. The seventh apartment was"
+ " closely shrouded in black velvet tapestries that hung all over the"
+ " ceiling and down the walls, falling in heavy folds upon a carpet of"
+ " the same material and hue. But in this chamber only, the color of"
+ " the windows failed to correspond with the decorations. The panes"
+ " here were scarlet--a deep blood color. Now in no one of the seven"
+ " apartments was there any lamp or candelabrum, amid the profusion of"
+ " golden ornaments that lay scattered to and fro or depended from the"
+ " roof. There was no light of any kind emanating from lamp or candle"
+ " within the suite of chambers. But in the corridors that followed the"
+ " suite, there stood, opposite to each window, a heavy tripod, bearing"
+ " a brazier of fire, that projected its rays through the tinted glass"
+ " and so glaringly illumined the room. And thus were produced a"
+ " multitude of gaudy and fantastic appearances. But in the western or"
+ " black chamber the effect of the fire-light that streamed upon the"
+ " dark hangings through the blood-tinted panes, was ghastly in the"
+ " extreme, and produced so wild a look upon the countenances of those"
+ " who entered, that there were few of the company bold enough to set"
+ " foot within its precincts at all.";
+
/// This specimen product
/// https://lists.nongnu.org/archive/html/lmi/2018-09/msg00039.html
/// | has deliberately overlong footnotes
@@ -840,83 +919,10 @@ sample2gpp::sample2gpp()
sample2ipp::sample2ipp()
{
item("DatabaseFilename") = glossed_string("sample2ipp.database");
- item("IrrDbFootnote") = glossed_string
- ("The \"Red Death\" had long devastated the country. No pestilence"
- " had ever been so fatal, or so hideous. Blood was its Avatar and"
- " its seal--the redness and the horror of blood. There were sharp"
- " pains, and sudden dizziness, and then profuse bleeding at the"
- " pores, with dissolution. The scarlet stains upon the body and"
- " especially upon the face of the victim, were the pest ban which"
- " shut him out from the aid and from the sympathy of his fellow-men."
- " And the whole seizure, progress and termination of the disease,"
- " were the incidents of half an hour."
- );
- item("IrrCsvFootnote") = glossed_string
- ("But the Prince Prospero was happy and dauntless and sagacious. When"
- " his dominions were half depopulated, he summoned to his presence a"
- " thousand hale and light-hearted friends from among the knights and"
- " dames of his court, and with these retired to the deep seclusion"
- " of one of his castellated abbeys. This was an extensive and"
- " magnificent structure, the creation of the prince's own eccentric"
- " yet august taste. A strong and lofty wall girdled it in. This wall"
- " had gates of iron. The courtiers, having entered, brought furnaces"
- " and massy hammers and welded the bolts. They resolved to leave"
- " means neither of ingress nor egress to the sudden impulses of"
- " despair or of frenzy from within. The abbey was amply provisioned."
- " With such precautions the courtiers might bid defiance to
contagion."
- " The external world could take care of itself. In the meantime it"
- " was folly to grieve, or to think. The prince had provided all the"
- " appliances of pleasure. There were buffoons, there were"
- " improvisatori, there were ballet-dancers, there were musicians,"
- " there was Beauty, there was wine. All these and security were"
- " within. Without was the \"Red Death\"."
- );
- item("MortalityChargesFootnote") = glossed_string
- ("It was towards the close of the fifth or sixth month of his"
- " seclusion, and while the pestilence raged most furiously abroad,"
- " that the Prince Prospero entertained his thousand friends at a"
- " masked ball of the most unusual magnificence."
- );
- item("PolicyYearFootnote") = glossed_string
- ("It was a voluptuous scene, that masquerade. But first let me tell"
- " of the rooms in which it was held. These were seven--an imperial"
- " suite. In many palaces, however, such suites form a long and"
- " straight vista, while the folding doors slide back nearly to the"
- " walls on either hand, so that the view of the whole extent is"
- " scarcely impeded. Here the case was very different, as might have"
- " been expected from the duke's love of the _bizarre_. The apartments"
- " were so irregularly disposed that the vision embraced but little"
- " more than one at a time. There was a sharp turn at every twenty or"
- " thirty yards, and at each turn a novel effect. To the right and"
- " left, in the middle of each wall, a tall and narrow Gothic window"
- " looked out upon a closed corridor which pursued the windings of the"
- " suite. These windows were of stained glass whose color varied in"
- " accordance with the prevailing hue of the decorations of the"
- " chamber into which it opened. That at the eastern extremity was"
- " hung, for example in blue--and vividly blue were its windows. The"
- " second chamber was purple in its ornaments and tapestries, and here"
- " the panes were purple. The third was green throughout, and so were"
- " the casements. The fourth was furnished and lighted with
orange--the"
- " fifth with white--the sixth with violet. The seventh apartment was"
- " closely shrouded in black velvet tapestries that hung all over the"
- " ceiling and down the walls, falling in heavy folds upon a carpet of"
- " the same material and hue. But in this chamber only, the color of"
- " the windows failed to correspond with the decorations. The panes"
- " here were scarlet--a deep blood color. Now in no one of the seven"
- " apartments was there any lamp or candelabrum, amid the profusion of"
- " golden ornaments that lay scattered to and fro or depended from the"
- " roof. There was no light of any kind emanating from lamp or candle"
- " within the suite of chambers. But in the corridors that followed
the"
- " suite, there stood, opposite to each window, a heavy tripod,
bearing"
- " a brazier of fire, that projected its rays through the tinted glass"
- " and so glaringly illumined the room. And thus were produced a"
- " multitude of gaudy and fantastic appearances. But in the western or"
- " black chamber the effect of the fire-light that streamed upon the"
- " dark hangings through the blood-tinted panes, was ghastly in the"
- " extreme, and produced so wild a look upon the countenances of those"
- " who entered, that there were few of the company bold enough to set"
- " foot within its precincts at all."
- );
+ item("IrrDbFootnote") = S_Poe0;
+ item("IrrCsvFootnote") = S_Poe1;
+ item("MortalityChargesFootnote") = S_Poe2;
+ item("PolicyYearFootnote") = S_Poe3;
}
sample2xyz::sample2xyz()
diff --git a/product_data.hpp b/product_data.hpp
index 7fd8e61..24fd937 100644
--- a/product_data.hpp
+++ b/product_data.hpp
@@ -294,7 +294,8 @@ class LMI_SO product_data
glossed_string FlexiblePremiumFootnote;
glossed_string GuaranteedValuesFootnote;
glossed_string CreditingRateFootnote;
- glossed_string DefnGuarGenAcctRate;
+// out of order:
+// glossed_string DefnGuarGenAcctRate;
glossed_string GrossRateFootnote;
glossed_string NetRateFootnote;
glossed_string MecFootnote;
@@ -362,6 +363,7 @@ class LMI_SO product_data
glossed_string FnGuaranteedPremium;
glossed_string FnOmnibusDisclaimer;
glossed_string FnInitialDbo;
+ glossed_string DefnGuarGenAcctRate;
glossed_string DefnAV;
glossed_string DefnCSV;
glossed_string DefnMec;
diff --git a/sample.hpp b/sample.hpp
index a1c194b..697f108 100644
--- a/sample.hpp
+++ b/sample.hpp
@@ -50,9 +50,388 @@ namespace superior
enum lingo : int
{empty_string = 0
+
+ // Essential strings describing the policy and company.
,policy_form_term
,policy_form
,policy_form_KS_KY
+ // LINGO !! expunge next line:
+ ,policy_form_alternative
+ ,policy_form_alternative_term
+ ,policy_mktg_name
+ ,policy_mktg_name_term
+ ,policy_legal_name
+ ,policy_legal_name_term
+ ,insco_short_name
+ ,insco_short_name_term
+ ,insco_name
+ ,insco_name_term
+ ,insco_addr
+ ,insco_addr_term
+ ,insco_street
+ ,insco_street_term
+ ,insco_phone
+ ,insco_phone_term
+// ,insco_domicile // expunge
+// ,insco_domicile_term // expunge
+ ,main_underwriter
+ ,main_underwriter_term
+ ,main_underwriter_address
+ ,main_underwriter_address_term
+ ,counderwriter
+ ,counderwriter_term
+ ,counderwriter_address
+ ,counderwriter_address_term
+
+ // Terms defined in the contract, which must be used for column
+ // headers, footnotes, etc. according to the illustration reg.
+ ,av_name
+ ,av_name_term
+ ,csv_name
+ ,csv_name_term
+ ,csv_header_name
+ ,csv_header_name_term
+ ,no_lapse_provision_name
+ ,no_lapse_provision_name_term
+ ,contract_name
+ ,contract_name_term
+ ,dbo_name
+ ,dbo_name_term
+ ,dbo_name_level
+ ,dbo_name_level_term
+ ,dbo_name_increasing
+ ,dbo_name_increasing_term
+ ,dbo_name_return_of_premium
+ ,dbo_name_return_of_premium_term
+ ,dbo_name_min_death_benefit
+ ,dbo_name_min_death_benefit_term
+ ,gen_acct_name
+ ,gen_acct_name_term
+ ,gen_acct_name_elaborated
+ ,gen_acct_name_elaborated_term
+ ,sep_acct_name
+ ,sep_acct_name_term
+ ,spec_amt_name
+ ,spec_amt_name_term
+ ,spec_amt_name_elaborated
+ ,spec_amt_name_elaborated_term
+
+ // Underwriting terms.
+ ,uw_basis_medical
+ ,uw_basis_medical_term
+ ,uw_basis_paramedical
+ ,uw_basis_paramedical_term
+ ,uw_basis_nonmedical
+ ,uw_basis_nonmedical_term
+ ,uw_basis_simplified
+ ,uw_basis_simplified_term
+ ,uw_basis_guaranteed
+ ,uw_basis_guaranteed_term
+ ,uw_class_preferred
+ ,uw_class_preferred_term
+ ,uw_class_standard
+ ,uw_class_standard_term
+ ,uw_class_rated
+ ,uw_class_rated_term
+ ,uw_class_ultra
+ ,uw_class_ultra_term
+
+ // Ledger column definitions.
+ ,account_value_footnote
+ ,account_value_footnote_term
+ ,attained_age_footnote
+ ,attained_age_footnote_term
+ ,cash_surr_value_footnote
+ ,cash_surr_value_footnote_term
+ ,death_benefit_footnote
+ ,death_benefit_footnote_term
+ ,initial_premium_footnote
+ ,initial_premium_footnote_term
+ ,net_premium_footnote
+ ,net_premium_footnote_term
+ ,gross_premium_footnote
+ ,gross_premium_footnote_term
+ ,outlay_footnote
+ ,outlay_footnote_term
+ ,policy_year_footnote
+ ,policy_year_footnote_term
+
+ // Terse rider names.
+ ,add_terse_name
+ ,add_terse_name_term
+ ,insurability_terse_name
+ ,insurability_terse_name_term
+ ,child_terse_name
+ ,child_terse_name_term
+ ,spouse_terse_name
+ ,spouse_terse_name_term
+ ,term_terse_name
+ ,term_terse_name_term
+ ,waiver_terse_name
+ ,waiver_terse_name_term
+ ,accel_bft_rider_terse_name
+ ,accel_bft_rider_terse_name_term
+ ,overloan_rider_terse_name
+ ,overloan_rider_terse_name_term
+
+ // Rider footnotes.
+ ,add_footnote
+ ,add_footnote_term
+ ,child_footnote
+ ,child_footnote_term
+ ,spouse_footnote
+ ,spouse_footnote_term
+ ,term_footnote
+ ,term_footnote_term
+ ,waiver_footnote
+ ,waiver_footnote_term
+ ,accel_bft_rider_footnote
+ ,accel_bft_rider_footnote_term
+ ,overloan_rider_footnote
+ ,overloan_rider_footnote_term
+
+ // Group quotes.
+ ,group_quote_short_product_name
+ ,group_quote_short_product_name_term
+ ,group_quote_is_not_an_offer
+ ,group_quote_is_not_an_offer_term
+ ,group_quote_riders_footer
+ ,group_quote_riders_footer_term
+ ,group_quote_policy_form_id
+ ,group_quote_policy_form_id_term
+ ,group_quote_state_variations
+ ,group_quote_state_variations_term
+ ,group_quote_prospectus
+ ,group_quote_prospectus_term
+ ,group_quote_underwriter
+ ,group_quote_underwriter_term
+ ,group_quote_broker_dealer
+ ,group_quote_broker_dealer_term
+ // Group plan type is one of:
+ // -Mandatory: no individual selection of amounts; typically,
+ // the employer pays the entire premium
+ // -Voluntary: individual selection of amounts; typically, the
+ // employee pays the premium; may be called "supplemental"
+ // when it complements a (separate) "mandatory" plan
+ // -Fusion: mandatory and supplemental combined; typically, the
+ // employer and employee pay their respective premiums
+ ,group_quote_rubric_mandatory
+ ,group_quote_rubric_mandatory_term
+ ,group_quote_rubric_voluntary
+ ,group_quote_rubric_voluntary_term
+ ,group_quote_rubric_fusion
+ ,group_quote_rubric_fusion_term
+ ,group_quote_footer_mandatory
+ ,group_quote_footer_mandatory_term
+ ,group_quote_footer_voluntary
+ ,group_quote_footer_voluntary_term
+ ,group_quote_footer_fusion
+ ,group_quote_footer_fusion_term
+
+ // Premium-specific footnotes.
+ ,minimum_premium_footnote
+ ,minimum_premium_footnote_term
+ ,prem_allocation_footnote
+ ,prem_allocation_footnote_term
+
+ // Miscellaneous other footnotes.
+ ,interest_disclaimer
+ ,interest_disclaimer_term
+ ,guar_mortality_footnote
+ ,guar_mortality_footnote_term
+ ,product_description
+ ,product_description_term
+ ,stable_value_footnote
+ ,stable_value_footnote_term
+ ,no_vanish_premium_footnote
+ ,no_vanish_premium_footnote_term
+ ,reject_premium_footnote
+ ,reject_premium_footnote_term
+ ,exp_rating_footnote
+ ,exp_rating_footnote_term
+ ,mortality_blend_footnote
+ ,mortality_blend_footnote_term
+ ,hypothetical_rates_footnote
+ ,hypothetical_rates_footnote_term
+ ,sales_load_refund_footnote
+ ,sales_load_refund_footnote_term
+ ,no_lapse_ever_footnote
+ ,no_lapse_ever_footnote_term
+ ,no_lapse_footnote
+ ,no_lapse_footnote_term
+ ,current_values_footnote
+ ,current_values_footnote_term
+ ,dbo1_footnote
+ ,dbo1_footnote_term
+ ,dbo2_footnote
+ ,dbo2_footnote_term
+ ,dbo3_footnote
+ ,dbo3_footnote_term
+ ,min_death_benefit_footnote
+ ,min_death_benefit_footnote_term
+ ,exp_rat_risk_charge_footnote
+ ,exp_rat_risk_charge_footnote_term
+ ,exchange_charge_footnote1
+ ,exchange_charge_footnote1_term
+ ,flexible_premium_footnote
+ ,flexible_premium_footnote_term
+ ,guaranteed_values_footnote
+ ,guaranteed_values_footnote_term
+ ,crediting_rate_footnote
+ ,crediting_rate_footnote_term
+// out of order:
+// ,defn_guar_gen_acct_rate
+// ,defn_guar_gen_acct_rate_term
+ ,gross_rate_footnote
+ ,gross_rate_footnote_term
+ ,net_rate_footnote
+ ,net_rate_footnote_term
+ ,mec_footnote
+ ,mec_footnote_term
+ ,gpt_footnote
+ ,gpt_footnote_term
+ ,midpoint_values_footnote
+ ,midpoint_values_footnote_term
+ ,single_premium_footnote
+ ,single_premium_footnote_term
+ ,monthly_charges_footnote
+ ,monthly_charges_footnote_term
+ ,ult_crediting_rate_footnote
+ ,ult_crediting_rate_footnote_term
+ ,ult_crediting_rate_header
+ ,ult_crediting_rate_header_term
+ ,max_naar_footnote
+ ,max_naar_footnote_term
+ ,prem_tax_surr_chg_footnote
+ ,prem_tax_surr_chg_footnote_term
+ ,policy_fee_footnote
+ ,policy_fee_footnote_term
+ ,asset_charge_footnote
+ ,asset_charge_footnote_term
+ ,investment_income_footnote
+ ,investment_income_footnote_term
+ ,irr_db_footnote
+ ,irr_db_footnote_term
+ ,irr_csv_footnote
+ ,irr_csv_footnote_term
+ ,mortality_charges_footnote
+ ,mortality_charges_footnote_term
+ ,loan_and_withdrawal_footnote
+ ,loan_and_withdrawal_footnote_term
+ ,loan_footnote
+ ,loan_footnote_term
+ ,imprimatur_presale
+ ,imprimatur_presale_term
+ ,imprimatur_presale_composite
+ ,imprimatur_presale_composite_term
+ ,imprimatur_inforce
+ ,imprimatur_inforce_term
+ ,imprimatur_inforce_composite
+ ,imprimatur_inforce_composite_term
+ ,state_marketing_imprimatur
+ ,state_marketing_imprimatur_term
+ ,non_guaranteed_footnote
+ ,non_guaranteed_footnote_term
+ ,non_guaranteed_footnote1
+ ,non_guaranteed_footnote1_term
+ ,non_guaranteed_footnote1tx
+ ,non_guaranteed_footnote1tx_term
+ ,fn_monthly_deductions
+ ,fn_monthly_deductions_term
+ ,surrender_footnote
+ ,surrender_footnote_term
+ ,portability_footnote
+ ,portability_footnote_term
+ ,fund_rate_footnote
+ ,fund_rate_footnote_term
+ ,issuing_company_footnote
+ ,issuing_company_footnote_term
+ ,subsidiary_footnote
+ ,subsidiary_footnote_term
+ ,placement_agent_footnote
+ ,placement_agent_footnote_term
+ ,marketing_name_footnote
+ ,marketing_name_footnote_term
+ ,guar_issue_disclaimer_nc_sc
+ ,guar_issue_disclaimer_nc_sc_term
+ ,guar_issue_disclaimer_md
+ ,guar_issue_disclaimer_md_term
+ ,guar_issue_disclaimer_tx
+ ,guar_issue_disclaimer_tx_term
+ ,ill_reg_cert_agent
+ ,ill_reg_cert_agent_term
+ ,ill_reg_cert_agent_il
+ ,ill_reg_cert_agent_il_term
+ ,ill_reg_cert_agent_tx
+ ,ill_reg_cert_agent_tx_term
+ ,ill_reg_cert_client
+ ,ill_reg_cert_client_term
+ ,ill_reg_cert_client_il
+ ,ill_reg_cert_client_il_term
+ ,ill_reg_cert_client_tx
+ ,ill_reg_cert_client_tx_term
+ ,fn_maturity_age
+ ,fn_maturity_age_term
+ ,fn_partial_mortality
+ ,fn_partial_mortality_term
+ ,fn_prospectus
+ ,fn_prospectus_term
+ ,fn_initial_spec_amt
+ ,fn_initial_spec_amt_term
+ ,fn_inforce_acct_val
+ ,fn_inforce_acct_val_term
+ ,fn_inforce_tax_basis
+ ,fn_inforce_tax_basis_term
+ ,fn1035charge
+ ,fn1035charge_term
+ ,fn_mec_extra_warning
+ ,fn_mec_extra_warning_term
+ ,fn_not_tax_advice
+ ,fn_not_tax_advice_term
+ ,fn_not_tax_advice2
+ ,fn_not_tax_advice2_term
+ ,fn_imf
+ ,fn_imf_term
+ ,fn_census
+ ,fn_census_term
+ ,fn_dac_tax
+ ,fn_dac_tax_term
+ ,fn_defn_life_ins
+ ,fn_defn_life_ins_term
+ ,fn_boy_eoy
+ ,fn_boy_eoy_term
+ ,fn_general_account
+ ,fn_general_account_term
+ ,fn_pp_memorandum
+ ,fn_pp_memorandum_term
+ ,fn_pp_accredited_investor
+ ,fn_pp_accredited_investor_term
+ ,fn_pp_loads
+ ,fn_pp_loads_term
+ ,fn_proposal_underwriting
+ ,fn_proposal_underwriting_term
+ ,fn_guaranteed_premium
+ ,fn_guaranteed_premium_term
+ ,fn_omnibus_disclaimer
+ ,fn_omnibus_disclaimer_term
+ ,fn_initial_dbo
+ ,fn_initial_dbo_term
+ ,defn_guar_gen_acct_rate
+ ,defn_guar_gen_acct_rate_term
+ ,defn_av
+ ,defn_av_term
+ ,defn_csv
+ ,defn_csv_term
+ ,defn_mec
+ ,defn_mec_term
+ ,defn_outlay
+ ,defn_outlay_term
+ ,defn_spec_amt
+ ,defn_spec_amt_term
+ ,poe_0
+ ,poe_1
+ ,poe_2
+ ,poe_3
};
} // namespace superior