
rapture.generated.FTGenParser Maven / Gradle / Ivy
// $ANTLR 3.5.2 /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g 2016-04-15 08:33:46
package rapture.generated;
import rapture.dsl.ftgen.*;
import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import org.antlr.runtime.tree.*;
@SuppressWarnings("all")
public class FTGenParser extends AbstractFTGenParser {
public static final String[] tokenNames = new String[] {
"", "", "", "", "COMMA", "ELASTIC", "EQUALS",
"ID", "LBRACE", "ON", "RBRACE", "SEARCH", "STRING", "USING", "WS", "ENTRIES",
"ENTRY", "MAIN"
};
public static final int EOF=-1;
public static final int COMMA=4;
public static final int ELASTIC=5;
public static final int EQUALS=6;
public static final int ID=7;
public static final int LBRACE=8;
public static final int ON=9;
public static final int RBRACE=10;
public static final int SEARCH=11;
public static final int STRING=12;
public static final int USING=13;
public static final int WS=14;
public static final int ENTRIES=15;
public static final int ENTRY=16;
public static final int MAIN=17;
// delegates
public AbstractFTGenParser[] getDelegates() {
return new AbstractFTGenParser[] {};
}
// delegators
public FTGenParser(TokenStream input) {
this(input, new RecognizerSharedState());
}
public FTGenParser(TokenStream input, RecognizerSharedState state) {
super(input, state);
}
protected TreeAdaptor adaptor = new CommonTreeAdaptor();
public void setTreeAdaptor(TreeAdaptor adaptor) {
this.adaptor = adaptor;
}
public TreeAdaptor getTreeAdaptor() {
return adaptor;
}
@Override public String[] getTokenNames() { return FTGenParser.tokenNames; }
@Override public String getGrammarFileName() { return "/Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g"; }
public static class repinfo_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "repinfo"
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:21:1: repinfo : repdef USING storedef ( onInfo )? ;
public final FTGenParser.repinfo_return repinfo() throws RecognitionException {
FTGenParser.repinfo_return retval = new FTGenParser.repinfo_return();
retval.start = input.LT(1);
Object root_0 = null;
Token USING2=null;
ParserRuleReturnScope repdef1 =null;
ParserRuleReturnScope storedef3 =null;
ParserRuleReturnScope onInfo4 =null;
Object USING2_tree=null;
try {
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:21:12: ( repdef USING storedef ( onInfo )? )
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:21:14: repdef USING storedef ( onInfo )?
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_repdef_in_repinfo94);
repdef1=repdef();
state._fsp--;
adaptor.addChild(root_0, repdef1.getTree());
USING2=(Token)match(input,USING,FOLLOW_USING_in_repinfo96);
USING2_tree = (Object)adaptor.create(USING2);
adaptor.addChild(root_0, USING2_tree);
pushFollow(FOLLOW_storedef_in_repinfo98);
storedef3=storedef();
state._fsp--;
adaptor.addChild(root_0, storedef3.getTree());
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:21:36: ( onInfo )?
int alt1=2;
int LA1_0 = input.LA(1);
if ( (LA1_0==ON) ) {
alt1=1;
}
switch (alt1) {
case 1 :
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:21:36: onInfo
{
pushFollow(FOLLOW_onInfo_in_repinfo100);
onInfo4=onInfo();
state._fsp--;
adaptor.addChild(root_0, onInfo4.getTree());
}
break;
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "repinfo"
public static class onInfo_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "onInfo"
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:23:1: onInfo : ON x= ID ;
public final FTGenParser.onInfo_return onInfo() throws RecognitionException {
FTGenParser.onInfo_return retval = new FTGenParser.onInfo_return();
retval.start = input.LT(1);
Object root_0 = null;
Token x=null;
Token ON5=null;
Object x_tree=null;
Object ON5_tree=null;
try {
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:23:12: ( ON x= ID )
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:23:14: ON x= ID
{
root_0 = (Object)adaptor.nil();
ON5=(Token)match(input,ON,FOLLOW_ON_in_onInfo113);
ON5_tree = (Object)adaptor.create(ON5);
adaptor.addChild(root_0, ON5_tree);
x=(Token)match(input,ID,FOLLOW_ID_in_onInfo117);
x_tree = (Object)adaptor.create(x);
adaptor.addChild(root_0, x_tree);
setInstance((x!=null?x.getText():null));
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "onInfo"
public static class repdef_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "repdef"
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:24:1: repdef : s= repstyle config ;
public final FTGenParser.repdef_return repdef() throws RecognitionException {
FTGenParser.repdef_return retval = new FTGenParser.repdef_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope s =null;
ParserRuleReturnScope config6 =null;
try {
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:24:11: (s= repstyle config )
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:24:13: s= repstyle config
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_repstyle_in_repdef131);
s=repstyle();
state._fsp--;
adaptor.addChild(root_0, s.getTree());
pushFollow(FOLLOW_config_in_repdef133);
config6=config();
state._fsp--;
adaptor.addChild(root_0, config6.getTree());
addProcessorConfig((s!=null?input.toString(s.start,s.stop):null));
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "repdef"
public static class storedef_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "storedef"
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:25:1: storedef : s= storestyle config ;
public final FTGenParser.storedef_return storedef() throws RecognitionException {
FTGenParser.storedef_return retval = new FTGenParser.storedef_return();
retval.start = input.LT(1);
Object root_0 = null;
ParserRuleReturnScope s =null;
ParserRuleReturnScope config7 =null;
try {
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:25:12: (s= storestyle config )
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:25:14: s= storestyle config
{
root_0 = (Object)adaptor.nil();
pushFollow(FOLLOW_storestyle_in_storedef146);
s=storestyle();
state._fsp--;
adaptor.addChild(root_0, s.getTree());
pushFollow(FOLLOW_config_in_storedef148);
config7=config();
state._fsp--;
adaptor.addChild(root_0, config7.getTree());
addConfig((s!=null?input.toString(s.start,s.stop):null));
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "storedef"
public static class repstyle_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "repstyle"
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:27:1: repstyle : SEARCH ;
public final FTGenParser.repstyle_return repstyle() throws RecognitionException {
FTGenParser.repstyle_return retval = new FTGenParser.repstyle_return();
retval.start = input.LT(1);
Object root_0 = null;
Token SEARCH8=null;
Object SEARCH8_tree=null;
try {
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:27:12: ( SEARCH )
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:27:14: SEARCH
{
root_0 = (Object)adaptor.nil();
SEARCH8=(Token)match(input,SEARCH,FOLLOW_SEARCH_in_repstyle160);
SEARCH8_tree = (Object)adaptor.create(SEARCH8);
adaptor.addChild(root_0, SEARCH8_tree);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "repstyle"
public static class storestyle_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "storestyle"
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:28:1: storestyle : s= ( ELASTIC ) ;
public final FTGenParser.storestyle_return storestyle() throws RecognitionException {
FTGenParser.storestyle_return retval = new FTGenParser.storestyle_return();
retval.start = input.LT(1);
Object root_0 = null;
Token s=null;
Object s_tree=null;
try {
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:28:12: (s= ( ELASTIC ) )
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:28:14: s= ( ELASTIC )
{
root_0 = (Object)adaptor.nil();
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:28:16: ( ELASTIC )
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:28:17: ELASTIC
{
s=(Token)match(input,ELASTIC,FOLLOW_ELASTIC_in_storestyle170);
s_tree = (Object)adaptor.create(s);
adaptor.addChild(root_0, s_tree);
}
setStore(s);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "storestyle"
public static class config_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "config"
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:30:1: config : LBRACE entrylist RBRACE ;
public final FTGenParser.config_return config() throws RecognitionException {
FTGenParser.config_return retval = new FTGenParser.config_return();
retval.start = input.LT(1);
Object root_0 = null;
Token LBRACE9=null;
Token RBRACE11=null;
ParserRuleReturnScope entrylist10 =null;
Object LBRACE9_tree=null;
Object RBRACE11_tree=null;
try {
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:30:12: ( LBRACE entrylist RBRACE )
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:30:14: LBRACE entrylist RBRACE
{
root_0 = (Object)adaptor.nil();
LBRACE9=(Token)match(input,LBRACE,FOLLOW_LBRACE_in_config185);
LBRACE9_tree = (Object)adaptor.create(LBRACE9);
adaptor.addChild(root_0, LBRACE9_tree);
pushFollow(FOLLOW_entrylist_in_config187);
entrylist10=entrylist();
state._fsp--;
adaptor.addChild(root_0, entrylist10.getTree());
RBRACE11=(Token)match(input,RBRACE,FOLLOW_RBRACE_in_config189);
RBRACE11_tree = (Object)adaptor.create(RBRACE11);
adaptor.addChild(root_0, RBRACE11_tree);
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "config"
public static class entrylist_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "entrylist"
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:32:1: entrylist : (k= entry )? ( COMMA k= entry )* ;
public final FTGenParser.entrylist_return entrylist() throws RecognitionException {
FTGenParser.entrylist_return retval = new FTGenParser.entrylist_return();
retval.start = input.LT(1);
Object root_0 = null;
Token COMMA12=null;
ParserRuleReturnScope k =null;
Object COMMA12_tree=null;
try {
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:32:11: ( (k= entry )? ( COMMA k= entry )* )
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:32:13: (k= entry )? ( COMMA k= entry )*
{
root_0 = (Object)adaptor.nil();
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:32:14: (k= entry )?
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==ID) ) {
alt2=1;
}
switch (alt2) {
case 1 :
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:32:14: k= entry
{
pushFollow(FOLLOW_entry_in_entrylist199);
k=entry();
state._fsp--;
adaptor.addChild(root_0, k.getTree());
}
break;
}
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:32:22: ( COMMA k= entry )*
loop3:
while (true) {
int alt3=2;
int LA3_0 = input.LA(1);
if ( (LA3_0==COMMA) ) {
alt3=1;
}
switch (alt3) {
case 1 :
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:32:23: COMMA k= entry
{
COMMA12=(Token)match(input,COMMA,FOLLOW_COMMA_in_entrylist203);
COMMA12_tree = (Object)adaptor.create(COMMA12);
adaptor.addChild(root_0, COMMA12_tree);
pushFollow(FOLLOW_entry_in_entrylist207);
k=entry();
state._fsp--;
adaptor.addChild(root_0, k.getTree());
}
break;
default :
break loop3;
}
}
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "entrylist"
public static class entry_return extends ParserRuleReturnScope {
Object tree;
@Override
public Object getTree() { return tree; }
};
// $ANTLR start "entry"
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:33:1: entry : i= ID EQUALS v= STRING ;
public final FTGenParser.entry_return entry() throws RecognitionException {
FTGenParser.entry_return retval = new FTGenParser.entry_return();
retval.start = input.LT(1);
Object root_0 = null;
Token i=null;
Token v=null;
Token EQUALS13=null;
Object i_tree=null;
Object v_tree=null;
Object EQUALS13_tree=null;
try {
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:33:8: (i= ID EQUALS v= STRING )
// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/ftgen/FTGenParser.g:33:10: i= ID EQUALS v= STRING
{
root_0 = (Object)adaptor.nil();
i=(Token)match(input,ID,FOLLOW_ID_in_entry219);
i_tree = (Object)adaptor.create(i);
adaptor.addChild(root_0, i_tree);
EQUALS13=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_entry221);
EQUALS13_tree = (Object)adaptor.create(EQUALS13);
adaptor.addChild(root_0, EQUALS13_tree);
v=(Token)match(input,STRING,FOLLOW_STRING_in_entry225);
v_tree = (Object)adaptor.create(v);
adaptor.addChild(root_0, v_tree);
addConfig((i!=null?i.getText():null), (v!=null?v.getText():null));
}
retval.stop = input.LT(-1);
retval.tree = (Object)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
}
finally {
// do for sure before leaving
}
return retval;
}
// $ANTLR end "entry"
// Delegated rules
public static final BitSet FOLLOW_repdef_in_repinfo94 = new BitSet(new long[]{0x0000000000002000L});
public static final BitSet FOLLOW_USING_in_repinfo96 = new BitSet(new long[]{0x0000000000000020L});
public static final BitSet FOLLOW_storedef_in_repinfo98 = new BitSet(new long[]{0x0000000000000202L});
public static final BitSet FOLLOW_onInfo_in_repinfo100 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ON_in_onInfo113 = new BitSet(new long[]{0x0000000000000080L});
public static final BitSet FOLLOW_ID_in_onInfo117 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_repstyle_in_repdef131 = new BitSet(new long[]{0x0000000000000100L});
public static final BitSet FOLLOW_config_in_repdef133 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_storestyle_in_storedef146 = new BitSet(new long[]{0x0000000000000100L});
public static final BitSet FOLLOW_config_in_storedef148 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEARCH_in_repstyle160 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_ELASTIC_in_storestyle170 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_LBRACE_in_config185 = new BitSet(new long[]{0x0000000000000490L});
public static final BitSet FOLLOW_entrylist_in_config187 = new BitSet(new long[]{0x0000000000000400L});
public static final BitSet FOLLOW_RBRACE_in_config189 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_entry_in_entrylist199 = new BitSet(new long[]{0x0000000000000012L});
public static final BitSet FOLLOW_COMMA_in_entrylist203 = new BitSet(new long[]{0x0000000000000080L});
public static final BitSet FOLLOW_entry_in_entrylist207 = new BitSet(new long[]{0x0000000000000012L});
public static final BitSet FOLLOW_ID_in_entry219 = new BitSet(new long[]{0x0000000000000040L});
public static final BitSet FOLLOW_EQUALS_in_entry221 = new BitSet(new long[]{0x0000000000001000L});
public static final BitSet FOLLOW_STRING_in_entry225 = new BitSet(new long[]{0x0000000000000002L});
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy