# compiler: R8
# compiler_version: 8.10.24
# common_typos_disable
# {"id":"com.android.tools.r8.mapping","version":"2.2"}
# pg_map_id: 173e7a5
# pg_map_hash: SHA-256 173e7a55561b8dcf1e93ac7bf73fcb40d6397eab065b335228ba0ab9c309b31a
cn.thinkingdata.module.routes.StrategyModuleRouter -> cn.thinkingdata.module.routes.StrategyModuleRouter:
# {"id":"sourceFile","fileName":"StrategyModuleRouter.java"}
    1:1:void <init>():7:7 -> <init>
    1:2:java.util.Map getRouterMap():9:10 -> getRouterMap
cn.thinkingdata.strategy.BuildConfig -> cn.thinkingdata.strategy.BuildConfig:
# {"id":"sourceFile","fileName":"BuildConfig.java"}
    1:1:void <init>():6:6 -> <init>
cn.thinkingdata.strategy.TDStrategy -> cn.thinkingdata.strategy.TDStrategy:
# {"id":"sourceFile","fileName":"TDStrategy.java"}
    1:2:void <clinit>():44:45 -> <clinit>
    1:1:void <init>():32:32 -> <init>
    1:1:void addClientParams(org.json.JSONObject):97:97 -> addClientParams
    1:1:void enableLog(boolean):85:85 -> enableLog
    1:1:void fetch():106:106 -> fetch
    1:1:java.lang.String getSDKVersion():110:110 -> getSDKVersion
    1:1:void init(android.content.Context,java.lang.String,java.lang.String):40:40 -> init
    2:4:void init(android.content.Context,cn.thinkingdata.strategy.TDStrategySettings):50:52 -> init
    1:1:void removeClientParam(java.lang.String):102:102 -> removeClientParam
    1:1:void setTriggerListener(cn.thinkingdata.strategy.core.result.TDStrategyResultListener):81:81 -> setTriggerListener
    2:2:void cn.thinkingdata.strategy.core.result.TDStrategyResultObservable.addListener(cn.thinkingdata.strategy.core.result.TDStrategyResultListener):40:40 -> setTriggerListener
    2:2:void setTriggerListener(cn.thinkingdata.strategy.core.result.TDStrategyResultListener):81 -> setTriggerListener
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    4:7:void cn.thinkingdata.strategy.core.result.TDStrategyResultObservable.addListener(cn.thinkingdata.strategy.core.result.TDStrategyResultListener):42:45 -> setTriggerListener
    4:7:void setTriggerListener(cn.thinkingdata.strategy.core.result.TDStrategyResultListener):81 -> setTriggerListener
cn.thinkingdata.strategy.TDStrategy$1 -> cn.thinkingdata.strategy.a:
# {"id":"sourceFile","fileName":"TDStrategy.java"}
    cn.thinkingdata.strategy.TDStrategySettings val$settings -> a
    android.content.Context val$context -> b
    1:1:void <init>(cn.thinkingdata.strategy.TDStrategySettings,android.content.Context):52:52 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Landroid/content/Context;Lcn/thinkingdata/strategy/TDStrategySettings;)V"}
    1:14:void run():55:68 -> run
    15:15:void cn.thinkingdata.strategy.utils.SpUtils.init(android.content.Context):24:24 -> run
    15:15:void run():68 -> run
    16:17:boolean cn.thinkingdata.strategy.utils.TDStrategyLog.getPropLogTag():60:61 -> run
    16:17:void cn.thinkingdata.strategy.utils.TDStrategyLog.initLogTag():54 -> run
    16:17:void run():69 -> run
    18:18:void cn.thinkingdata.strategy.utils.TDStrategyLog.setEnableLog(boolean):20:20 -> run
    18:18:void cn.thinkingdata.strategy.utils.TDStrategyLog.initLogTag():55 -> run
    18:18:void run():69 -> run
    19:20:void run():71:72 -> run
    21:21:void cn.thinkingdata.strategy.core.task.TaskFlowManager.loadLocalTask():90:90 -> run
    21:21:void run():72 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    22:22:boolean cn.thinkingdata.strategy.utils.CommonUtils.isStrategyStop(java.lang.String):304:304 -> run
    22:22:void cn.thinkingdata.strategy.core.task.TaskFlowManager.loadLocalTask():90 -> run
    22:22:void run():72 -> run
    23:28:void cn.thinkingdata.strategy.core.task.TaskFlowManager.loadLocalTask():91:96 -> run
    23:28:void run():72 -> run
    29:33:java.lang.String cn.thinkingdata.strategy.utils.AnalyticUtils.getAccountId(java.lang.String):213:217 -> run
    29:33:void cn.thinkingdata.strategy.core.task.TaskFlowManager.loadLocalTask():97 -> run
    29:33:void run():72 -> run
    34:34:void cn.thinkingdata.strategy.core.task.TaskFlowManager.loadLocalTask():97:97 -> run
    34:34:void run():72 -> run
    35:39:java.lang.String cn.thinkingdata.strategy.utils.AnalyticUtils.getDistinctId(java.lang.String):221:225 -> run
    35:39:void cn.thinkingdata.strategy.core.task.TaskFlowManager.loadLocalTask():97 -> run
    35:39:void run():72 -> run
    40:43:void cn.thinkingdata.strategy.core.task.TaskFlowManager.loadLocalTask():96:99 -> run
    40:43:void run():72 -> run
    44:44:boolean cn.thinkingdata.strategy.utils.SpUtils.getBoolean(java.lang.String,boolean):64:64 -> run
    44:44:void cn.thinkingdata.strategy.core.task.TaskFlowManager.loadLocalTask():99 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    44:44:void run():72 -> run
    45:45:boolean cn.thinkingdata.strategy.utils.SpUtils.getBoolean(java.lang.String,boolean):65:65 -> run
    45:45:void cn.thinkingdata.strategy.core.task.TaskFlowManager.loadLocalTask():99 -> run
    45:45:void run():72 -> run
    46:54:void cn.thinkingdata.strategy.core.task.TaskFlowManager.loadLocalTask():99:107 -> run
    46:54:void run():72 -> run
    55:58:cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer.getInstance():52:55 -> run
    55:58:void cn.thinkingdata.strategy.core.task.TaskFlowManager.loadLocalTask():109 -> run
    55:58:void run():72 -> run
    59:59:void cn.thinkingdata.strategy.core.task.TaskFlowManager.loadLocalTask():109:109 -> run
    59:59:void run():72 -> run
    60:66:void cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer.initAppTask(java.lang.String,java.lang.String):59:65 -> run
    60:66:void cn.thinkingdata.strategy.core.task.TaskFlowManager.loadLocalTask():109 -> run
    60:66:void run():72 -> run
    67:70:cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer.getInstance():52:55 -> run
    67:70:void cn.thinkingdata.strategy.core.task.TaskFlowManager.loadLocalTask():110 -> run
    67:70:void run():72 -> run
    71:71:void cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer.startTaskTimer(boolean):69:69 -> run
    71:71:void cn.thinkingdata.strategy.core.task.TaskFlowManager.loadLocalTask():110 -> run
    71:71:void run():72 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(2)"]}
    72:77:void cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer.startTaskTimer(boolean):69:74 -> run
    72:77:void cn.thinkingdata.strategy.core.task.TaskFlowManager.loadLocalTask():110 -> run
    72:77:void run():72 -> run
    78:78:void cn.thinkingdata.strategy.core.task.TaskFlowManager.loadLocalTask():112:112 -> run
    78:78:void run():72 -> run
    79:80:void run():74:75 -> run
cn.thinkingdata.strategy.TDStrategy$2 -> cn.thinkingdata.strategy.b:
# {"id":"sourceFile","fileName":"TDStrategy.java"}
    boolean val$enable -> a
    1:1:void <init>(boolean):85:85 -> <init>
    1:2:boolean cn.thinkingdata.strategy.utils.TDStrategyLog.getPropLogTag():60:61 -> run
    1:2:void run():88 -> run
    3:3:void run():89:89 -> run
    4:4:void cn.thinkingdata.strategy.utils.TDStrategyLog.setEnableLog(boolean):20:20 -> run
    4:4:void run():89 -> run
cn.thinkingdata.strategy.TDStrategy$TDStrategyMode -> cn.thinkingdata.strategy.TDStrategy$TDStrategyMode:
# {"id":"sourceFile","fileName":"TDStrategy.java"}
    1:1:cn.thinkingdata.strategy.TDStrategy$TDStrategyMode[] $values():113:113 -> $values
    1:2:void <clinit>():114:115 -> <clinit>
    3:3:void <clinit>():113:113 -> <clinit>
    1:1:void <init>(java.lang.String,int):113:113 -> <init>
    1:1:cn.thinkingdata.strategy.TDStrategy$TDStrategyMode valueOf(java.lang.String):113:113 -> valueOf
    1:1:cn.thinkingdata.strategy.TDStrategy$TDStrategyMode[] values():113:113 -> values
cn.thinkingdata.strategy.TDStrategySettings -> cn.thinkingdata.strategy.TDStrategySettings:
# {"id":"sourceFile","fileName":"TDStrategySettings.java"}
    1:3:void <init>(java.lang.String,java.lang.String):15:17 -> <init>
cn.thinkingdata.strategy.core.audience.TargetAudienceManager -> cn.thinkingdata.strategy.core.audience.a:
# {"id":"sourceFile","fileName":"TargetAudienceManager.java"}
    boolean isTargetUser -> a
    cn.thinkingdata.strategy.rules.support.composite.CompositeRule compositeRule -> b
    java.lang.String pushId -> c
    java.util.List columns -> d
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    cn.thinkingdata.strategy.core.task.TaskFlow flow -> e
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/task/a;"}
    java.lang.String finalPushId -> f
    1:1:void <init>(cn.thinkingdata.strategy.core.task.TaskFlow,boolean,org.json.JSONObject,java.lang.String):35:35 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/task/a;ZLorg/json/JSONObject;Ljava/lang/String;)V"}
    2:15:void <init>(cn.thinkingdata.strategy.core.task.TaskFlow,boolean,org.json.JSONObject,java.lang.String):31:44 -> <init>
    1:1:java.lang.String getPushId(cn.thinkingdata.strategy.rules.api.Facts):115:115 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Ljava/lang/String;"}
    2:9:java.lang.String getFinalPushId(cn.thinkingdata.strategy.rules.api.Facts):96:103 -> a
    2:9:java.lang.String getPushId(cn.thinkingdata.strategy.rules.api.Facts):116 -> a
    10:10:boolean cn.thinkingdata.strategy.utils.CommonUtils.isEmpty(java.lang.Object):211:211 -> a
    10:10:java.lang.String getFinalPushId(cn.thinkingdata.strategy.rules.api.Facts):104 -> a
    10:10:java.lang.String getPushId(cn.thinkingdata.strategy.rules.api.Facts):116 -> a
    11:11:java.lang.String getFinalPushId(cn.thinkingdata.strategy.rules.api.Facts):106:106 -> a
    11:11:java.lang.String getPushId(cn.thinkingdata.strategy.rules.api.Facts):116 -> a
    12:12:boolean cn.thinkingdata.strategy.utils.CommonUtils.isEmpty(java.lang.Object):211:211 -> a
    12:12:java.lang.String getFinalPushId(cn.thinkingdata.strategy.rules.api.Facts):108 -> a
    12:12:java.lang.String getPushId(cn.thinkingdata.strategy.rules.api.Facts):116 -> a
    13:15:java.lang.String getFinalPushId(cn.thinkingdata.strategy.rules.api.Facts):109:111 -> a
    13:15:java.lang.String getPushId(cn.thinkingdata.strategy.rules.api.Facts):116 -> a
    16:16:java.lang.String getFinalPushId(cn.thinkingdata.strategy.rules.api.Facts):96:96 -> a
    16:16:java.lang.String getPushId(cn.thinkingdata.strategy.rules.api.Facts):116 -> a
    17:19:java.lang.String getPushId(cn.thinkingdata.strategy.rules.api.Facts):116:118 -> a
cn.thinkingdata.strategy.core.exp.ExpConfigManager -> cn.thinkingdata.strategy.core.exp.a:
# {"id":"sourceFile","fileName":"ExpConfigManager.java"}
    boolean enableExp -> a
    boolean expSampleOut -> b
    int expType -> c
    boolean expReleasePushStarted -> d
    long expStartTimeStamp -> e
    long expEndTimeStamp -> f
    java.lang.String expGroupId -> g
    boolean isPush -> h
    boolean expEntityIdExist -> i
    1:19:void <init>(org.json.JSONObject,double):33:51 -> <init>
cn.thinkingdata.strategy.core.frequency.AbstractTaskLimit -> cn.thinkingdata.strategy.core.frequency.a:
# {"id":"sourceFile","fileName":"AbstractTaskLimit.java"}
    cn.thinkingdata.strategy.core.task.TaskFlow mTaskFlow -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/task/a;"}
    boolean enableLimit -> b
    java.util.List mLimits -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    java.lang.String mClientUserId -> d
    1:1:void <init>(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject):30:30 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/task/a;Lorg/json/JSONObject;)V"}
    2:11:void <init>(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject):26:35 -> <init>
    int getLimitCount(long,long) -> a
    void parseLimitInfo(org.json.JSONObject) -> a
    1:2:void addLimitCount():66:67 -> a
    void addLimitStorage() -> b
    1:11:boolean isLimit():44:54 -> c
cn.thinkingdata.strategy.core.frequency.FrequencyLimit -> cn.thinkingdata.strategy.core.frequency.b:
# {"id":"sourceFile","fileName":"FrequencyLimit.java"}
    cn.thinkingdata.strategy.storage.db.FrequencyLimitInfo mFrequencyLimitInfo -> e
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/storage/db/b;"}
    1:1:void <init>(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject):29:29 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/task/a;Lorg/json/JSONObject;)V"}
    1:10:void parseLimitInfo(org.json.JSONObject):35:44 -> a
    11:49:cn.thinkingdata.strategy.core.period.ITimeCycle cn.thinkingdata.strategy.core.period.PeriodLimitFactory.createFrequencyLimit(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject):72:110 -> a
    11:49:void parseLimitInfo(org.json.JSONObject):44 -> a
    50:50:cn.thinkingdata.strategy.core.period.ITimeCycle cn.thinkingdata.strategy.core.period.PeriodLimitFactory.createFrequencyLimit(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject):89:89 -> a
    50:50:void parseLimitInfo(org.json.JSONObject):44 -> a
    51:54:cn.thinkingdata.strategy.core.period.ITimeCycle cn.thinkingdata.strategy.core.period.PeriodLimitFactory.createFrequencyLimit(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject):83:86 -> a
    51:54:void parseLimitInfo(org.json.JSONObject):44 -> a
    55:92:cn.thinkingdata.strategy.core.period.ITimeCycle cn.thinkingdata.strategy.core.period.PeriodLimitFactory.createFrequencyLimit(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject):80:117 -> a
    55:92:void parseLimitInfo(org.json.JSONObject):44 -> a
    93:93:void parseLimitInfo(org.json.JSONObject):46:46 -> a
    94:100:cn.thinkingdata.strategy.storage.db.FrequencyLimitInfo getFrequencyLimitInfo():51:57 -> a
    94:100:int getLimitCount(long,long):62 -> a
    101:102:int getLimitCount(long,long):63:64 -> a
    103:115:int cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.getFrequencyLimitCount(cn.thinkingdata.strategy.storage.db.FrequencyLimitInfo,long,long):583:595 -> a
    103:115:int getLimitCount(long,long):64 -> a
    116:121:int cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.getFrequencyLimitCount(cn.thinkingdata.strategy.storage.db.FrequencyLimitInfo,long,long):592:597 -> a
    116:121:int getLimitCount(long,long):64 -> a
    1:1:void addLimitStorage():69:69 -> b
    2:8:cn.thinkingdata.strategy.storage.db.FrequencyLimitInfo getFrequencyLimitInfo():51:57 -> b
    2:8:void addLimitStorage():69 -> b
    9:9:void addLimitStorage():69:69 -> b
    10:21:void cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.addFrequencyLimit(cn.thinkingdata.strategy.storage.db.FrequencyLimitInfo):603:614 -> b
    10:21:void addLimitStorage():69 -> b
cn.thinkingdata.strategy.core.frequency.UserFatigueControl -> cn.thinkingdata.strategy.core.frequency.c:
# {"id":"sourceFile","fileName":"UserFatigueControl.java"}
    cn.thinkingdata.strategy.storage.db.TouchLimitInfo mTouchLimitInfo -> e
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/storage/db/e;"}
    1:1:void <init>(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject):34:34 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/task/a;Lorg/json/JSONObject;)V"}
    1:29:void parseLimitInfo(org.json.JSONObject):40:68 -> a
    30:31:cn.thinkingdata.strategy.storage.db.TouchLimitInfo getTouchLimitInfo():74:75 -> a
    30:31:int getLimitCount(long,long):82 -> a
    32:33:java.lang.String cn.thinkingdata.strategy.core.task.TaskFlow.getPushId():253:254 -> a
    32:33:cn.thinkingdata.strategy.storage.db.TouchLimitInfo getTouchLimitInfo():75 -> a
    32:33:int getLimitCount(long,long):82 -> a
    34:36:cn.thinkingdata.strategy.storage.db.TouchLimitInfo getTouchLimitInfo():75:77 -> a
    34:36:int getLimitCount(long,long):82 -> a
    37:38:int getLimitCount(long,long):83:84 -> a
    39:51:int cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.getTouchLimitCount(cn.thinkingdata.strategy.storage.db.TouchLimitInfo,long,long):670:682 -> a
    39:51:int getLimitCount(long,long):84 -> a
    52:57:int cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.getTouchLimitCount(cn.thinkingdata.strategy.storage.db.TouchLimitInfo,long,long):679:684 -> a
    52:57:int getLimitCount(long,long):84 -> a
    58:58:void addLimitCount():94:94 -> a
    1:1:void addLimitStorage():89:89 -> b
    2:3:cn.thinkingdata.strategy.storage.db.TouchLimitInfo getTouchLimitInfo():74:75 -> b
    2:3:void addLimitStorage():89 -> b
    4:5:java.lang.String cn.thinkingdata.strategy.core.task.TaskFlow.getPushId():253:254 -> b
    4:5:cn.thinkingdata.strategy.storage.db.TouchLimitInfo getTouchLimitInfo():75 -> b
    4:5:void addLimitStorage():89 -> b
    6:8:cn.thinkingdata.strategy.storage.db.TouchLimitInfo getTouchLimitInfo():75:77 -> b
    6:8:void addLimitStorage():89 -> b
    9:9:void addLimitStorage():89:89 -> b
    10:21:void cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.addTouchLimit(cn.thinkingdata.strategy.storage.db.TouchLimitInfo):654:665 -> b
    10:21:void addLimitStorage():89 -> b
cn.thinkingdata.strategy.core.period.AbstractFatigueTimeCycle -> cn.thinkingdata.strategy.core.period.a:
# {"id":"sourceFile","fileName":"AbstractFatigueTimeCycle.java"}
    1:1:void <init>(cn.thinkingdata.strategy.core.period.TaskPeriodInfo,cn.thinkingdata.strategy.core.period.PeriodScrollInfo):13:13 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/period/q;Lcn/thinkingdata/strategy/core/period/n;)V"}
    1:3:android.util.Pair getCurrentTimeCycle():18:20 -> a
    boolean isWithInPeriod() -> b
    long getCycleTimeStamp() -> c
    long getOffsetTimeStamp() -> d
    long getStartOfTimestamp() -> e
cn.thinkingdata.strategy.core.period.AbstractScrollTimeCycle -> cn.thinkingdata.strategy.core.period.b:
# {"id":"sourceFile","fileName":"AbstractScrollTimeCycle.java"}
    1:1:void <init>(cn.thinkingdata.strategy.core.period.TaskPeriodInfo,cn.thinkingdata.strategy.core.period.PeriodScrollInfo):15:15 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/period/q;Lcn/thinkingdata/strategy/core/period/n;)V"}
    1:24:android.util.Pair getCurrentTimeCycle():20:43 -> a
    long getCycleTimeStamp() -> c
    long getOffsetTimeStamp() -> d
    long getStartOfTimestamp() -> e
cn.thinkingdata.strategy.core.period.AbstractTimeCycle -> cn.thinkingdata.strategy.core.period.c:
# {"id":"sourceFile","fileName":"AbstractTimeCycle.java"}
    long startTime -> a
    long endTime -> b
    cn.thinkingdata.strategy.core.period.PeriodScrollInfo scrollInfo -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/period/n;"}
    1:17:void <init>(cn.thinkingdata.strategy.core.period.TaskPeriodInfo,cn.thinkingdata.strategy.core.period.PeriodScrollInfo):20:36 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/period/q;Lcn/thinkingdata/strategy/core/period/n;)V"}
    android.util.Pair cn.thinkingdata.strategy.core.period.ITimeCycle.getCurrentTimeCycle() -> a
    1:2:boolean isWithInPeriod():41:42 -> b
cn.thinkingdata.strategy.core.period.ClientStartTimeCycle -> cn.thinkingdata.strategy.core.period.d:
# {"id":"sourceFile","fileName":"ClientStartTimeCycle.java"}
    1:1:void <init>(cn.thinkingdata.strategy.core.period.TaskPeriodInfo):19:19 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/period/q;)V"}
    1:1:android.util.Pair getCurrentTimeCycle():25:25 -> a
    2:6:android.util.Pair cn.thinkingdata.strategy.utils.AnalyticUtils.getCurrentTimePair():144:148 -> a
    2:6:android.util.Pair getCurrentTimeCycle():26 -> a
    7:17:android.util.Pair getCurrentTimeCycle():27:37 -> a
cn.thinkingdata.strategy.core.period.DailyScrollTimeCycle -> cn.thinkingdata.strategy.core.period.e:
# {"id":"sourceFile","fileName":"DailyScrollTimeCycle.java"}
    1:7:void <init>(cn.thinkingdata.strategy.core.period.TaskPeriodInfo,cn.thinkingdata.strategy.core.period.PeriodScrollInfo):14:20 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/period/q;Lcn/thinkingdata/strategy/core/period/n;)V"}
    1:1:long getCycleTimeStamp():43:43 -> c
    1:1:long getOffsetTimeStamp():38:38 -> d
    1:7:long getStartOfTimestamp():27:33 -> e
cn.thinkingdata.strategy.core.period.FatigueDayTimeCycle -> cn.thinkingdata.strategy.core.period.f:
# {"id":"sourceFile","fileName":"FatigueDayTimeCycle.java"}
    1:1:void <init>(cn.thinkingdata.strategy.core.period.TaskPeriodInfo,cn.thinkingdata.strategy.core.period.PeriodScrollInfo):19:19 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/period/q;Lcn/thinkingdata/strategy/core/period/n;)V"}
    1:2:long getCycleTimeStamp():41:42 -> c
    long getOffsetTimeStamp() -> d
    1:8:long getStartOfTimestamp():24:31 -> e
cn.thinkingdata.strategy.core.period.FatigueHourTimeCycle -> cn.thinkingdata.strategy.core.period.g:
# {"id":"sourceFile","fileName":"FatigueHourTimeCycle.java"}
    1:1:void <init>(cn.thinkingdata.strategy.core.period.TaskPeriodInfo,cn.thinkingdata.strategy.core.period.PeriodScrollInfo):19:19 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/period/q;Lcn/thinkingdata/strategy/core/period/n;)V"}
    1:2:long getCycleTimeStamp():40:41 -> c
    long getOffsetTimeStamp() -> d
    1:7:long getStartOfTimestamp():24:30 -> e
cn.thinkingdata.strategy.core.period.FatigueMinuteTimeCycle -> cn.thinkingdata.strategy.core.period.h:
# {"id":"sourceFile","fileName":"FatigueMinuteTimeCycle.java"}
    1:1:void <init>(cn.thinkingdata.strategy.core.period.TaskPeriodInfo,cn.thinkingdata.strategy.core.period.PeriodScrollInfo):18:18 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/period/q;Lcn/thinkingdata/strategy/core/period/n;)V"}
    1:2:long getCycleTimeStamp():38:39 -> c
    long getOffsetTimeStamp() -> d
    1:6:long getStartOfTimestamp():23:28 -> e
cn.thinkingdata.strategy.core.period.FatigueWeekTimeCycle -> cn.thinkingdata.strategy.core.period.i:
# {"id":"sourceFile","fileName":"FatigueWeekTimeCycle.java"}
    1:1:void <init>(cn.thinkingdata.strategy.core.period.TaskPeriodInfo,cn.thinkingdata.strategy.core.period.PeriodScrollInfo):18:18 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/period/q;Lcn/thinkingdata/strategy/core/period/n;)V"}
    1:2:long getCycleTimeStamp():40:41 -> c
    long getOffsetTimeStamp() -> d
    1:8:long getStartOfTimestamp():23:30 -> e
cn.thinkingdata.strategy.core.period.HourScrollTimeCycle -> cn.thinkingdata.strategy.core.period.j:
# {"id":"sourceFile","fileName":"HourScrollTimeCycle.java"}
    1:7:void <init>(cn.thinkingdata.strategy.core.period.TaskPeriodInfo,cn.thinkingdata.strategy.core.period.PeriodScrollInfo):17:23 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/period/q;Lcn/thinkingdata/strategy/core/period/n;)V"}
    1:2:long getCycleTimeStamp():45:46 -> c
    long getOffsetTimeStamp() -> d
    1:6:long getStartOfTimestamp():30:35 -> e
cn.thinkingdata.strategy.core.period.MinuteScrollTimeCycle -> cn.thinkingdata.strategy.core.period.k:
# {"id":"sourceFile","fileName":"MinuteScrollTimeCycle.java"}
    1:7:void <init>(cn.thinkingdata.strategy.core.period.TaskPeriodInfo,cn.thinkingdata.strategy.core.period.PeriodScrollInfo):15:21 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/period/q;Lcn/thinkingdata/strategy/core/period/n;)V"}
    1:2:long getCycleTimeStamp():42:43 -> c
    long getOffsetTimeStamp() -> d
    1:5:long getStartOfTimestamp():28:32 -> e
cn.thinkingdata.strategy.core.period.MonthScrollTimeCycle -> cn.thinkingdata.strategy.core.period.l:
# {"id":"sourceFile","fileName":"MonthScrollTimeCycle.java"}
    int startYear -> d
    int startMonth -> e
    1:14:void <init>(cn.thinkingdata.strategy.core.period.TaskPeriodInfo,cn.thinkingdata.strategy.core.period.PeriodScrollInfo):18:31 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/period/q;Lcn/thinkingdata/strategy/core/period/n;)V"}
    1:1:long getCycleTimeStamp():60:60 -> c
    2:9:int getDayOfMonth():67:74 -> c
    2:9:long getCycleTimeStamp():61 -> c
    1:1:long getOffsetTimeStamp():54:54 -> d
    1:12:long getStartOfTimestamp():38:49 -> e
cn.thinkingdata.strategy.core.period.PeriodLimitFactory -> cn.thinkingdata.strategy.core.period.m:
# {"id":"sourceFile","fileName":"PeriodLimitFactory.java"}
    1:1:cn.thinkingdata.strategy.core.period.TimeCycleUnit getTimeCycleUnit(java.lang.String):123:123 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;)I"}
cn.thinkingdata.strategy.core.period.PeriodScrollInfo -> cn.thinkingdata.strategy.core.period.n:
# {"id":"sourceFile","fileName":"PeriodScrollInfo.java"}
    int timeCycleNumber -> a
    cn.thinkingdata.strategy.core.period.TimeCycleUnit timeCycleUnit -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"I"}
    int startHour -> c
    int startMinute -> d
    int startNumber -> e
    1:1:void <init>():10:10 -> <init>
cn.thinkingdata.strategy.core.period.SlideTimeCycle -> cn.thinkingdata.strategy.core.period.o:
# {"id":"sourceFile","fileName":"SlideTimeCycle.java"}
    1:1:void <init>(cn.thinkingdata.strategy.core.period.TaskPeriodInfo,cn.thinkingdata.strategy.core.period.PeriodScrollInfo):17:17 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/period/q;Lcn/thinkingdata/strategy/core/period/n;)V"}
    1:1:android.util.Pair getCurrentTimeCycle():22:22 -> a
    2:10:int getMinutes():38:46 -> a
    2:10:android.util.Pair getCurrentTimeCycle():23 -> a
    11:20:android.util.Pair getCurrentTimeCycle():25:34 -> a
cn.thinkingdata.strategy.core.period.StartEndLimit -> cn.thinkingdata.strategy.core.period.p:
# {"id":"sourceFile","fileName":"StartEndLimit.java"}
    1:1:void <init>(cn.thinkingdata.strategy.core.period.TaskPeriodInfo):15:15 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/period/q;)V"}
    1:1:android.util.Pair getCurrentTimeCycle():20:20 -> a
cn.thinkingdata.strategy.core.period.TaskPeriodInfo -> cn.thinkingdata.strategy.core.period.q:
# {"id":"sourceFile","fileName":"TaskPeriodInfo.java"}
    java.lang.String periodStart -> a
    java.lang.String periodEnd -> b
    java.lang.String timePattern -> c
    double zoneOffset -> d
    long periodStartStamp -> e
    long periodEndStamp -> f
    1:1:void <init>():11:11 -> <init>
cn.thinkingdata.strategy.core.period.WeekScrollTimeCycle -> cn.thinkingdata.strategy.core.period.r:
# {"id":"sourceFile","fileName":"WeekScrollTimeCycle.java"}
    1:12:void <init>(cn.thinkingdata.strategy.core.period.TaskPeriodInfo,cn.thinkingdata.strategy.core.period.PeriodScrollInfo):14:25 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/period/q;Lcn/thinkingdata/strategy/core/period/n;)V"}
    1:1:long getCycleTimeStamp():53:53 -> c
    1:1:long getOffsetTimeStamp():48:48 -> d
    1:12:long getStartOfTimestamp():32:43 -> e
cn.thinkingdata.strategy.core.result.PushResultManager -> cn.thinkingdata.strategy.core.result.a:
# {"id":"sourceFile","fileName":"PushResultManager.java"}
    org.json.JSONObject contentJson -> a
    org.json.JSONArray userParamsList -> b
    cn.thinkingdata.strategy.core.task.TaskFlow mFlow -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/task/a;"}
    1:13:void <init>(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject):37:49 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/task/a;Lorg/json/JSONObject;)V"}
    1:13:org.json.JSONObject getOccasionJson(org.json.JSONObject,cn.thinkingdata.strategy.rules.api.Facts):143:155 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lorg/json/JSONObject;Lcn/thinkingdata/strategy/rules/api/b;)Lorg/json/JSONObject;"}
    14:18:java.lang.String getClientValue(java.lang.String,cn.thinkingdata.strategy.rules.api.Facts):213:217 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;Lcn/thinkingdata/strategy/rules/api/b;)Ljava/lang/String;"}
    19:20:java.lang.String getContentColumnValue(cn.thinkingdata.strategy.rules.api.Facts,java.lang.String):226:227 -> a
    19:20:java.lang.String getClientValue(java.lang.String,cn.thinkingdata.strategy.rules.api.Facts):218 -> a
    21:25:java.lang.Object cn.thinkingdata.strategy.utils.CommonUtils.getColumnValue(cn.thinkingdata.strategy.rules.api.Facts,java.lang.String[]):232:236 -> a
    21:25:java.lang.String getContentColumnValue(cn.thinkingdata.strategy.rules.api.Facts,java.lang.String):228 -> a
    21:25:java.lang.String getClientValue(java.lang.String,cn.thinkingdata.strategy.rules.api.Facts):218 -> a
    26:26:boolean cn.thinkingdata.strategy.utils.CommonUtils.isEmpty(java.lang.Object):211:211 -> a
    26:26:java.lang.Object cn.thinkingdata.strategy.utils.CommonUtils.getColumnValue(cn.thinkingdata.strategy.rules.api.Facts,java.lang.String[]):238 -> a
    26:26:java.lang.String getContentColumnValue(cn.thinkingdata.strategy.rules.api.Facts,java.lang.String):228 -> a
    26:26:java.lang.String getClientValue(java.lang.String,cn.thinkingdata.strategy.rules.api.Facts):218 -> a
    27:27:java.lang.Object cn.thinkingdata.strategy.utils.CommonUtils.getColumnValue(cn.thinkingdata.strategy.rules.api.Facts,java.lang.String[]):240:240 -> a
    27:27:java.lang.String getContentColumnValue(cn.thinkingdata.strategy.rules.api.Facts,java.lang.String):228 -> a
    27:27:java.lang.String getClientValue(java.lang.String,cn.thinkingdata.strategy.rules.api.Facts):218 -> a
    28:37:java.lang.String getContentColumnValue(cn.thinkingdata.strategy.rules.api.Facts,java.lang.String):230:239 -> a
    28:37:java.lang.String getClientValue(java.lang.String,cn.thinkingdata.strategy.rules.api.Facts):218 -> a
    38:41:java.lang.String getClientValue(java.lang.String,cn.thinkingdata.strategy.rules.api.Facts):219:222 -> a
    1:5:java.lang.String getOccasionValue(java.lang.String,cn.thinkingdata.strategy.rules.api.Facts):165:169 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;Lcn/thinkingdata/strategy/rules/api/b;)Ljava/lang/String;"}
    6:32:java.lang.String getOccasionColumnValue(cn.thinkingdata.strategy.rules.api.Facts,java.lang.String):182:208 -> b
    6:32:java.lang.String getOccasionValue(java.lang.String,cn.thinkingdata.strategy.rules.api.Facts):170 -> b
    33:37:java.lang.String getOccasionValue(java.lang.String,cn.thinkingdata.strategy.rules.api.Facts):171:175 -> b
cn.thinkingdata.strategy.core.result.TDStrategyResult -> cn.thinkingdata.strategy.core.result.TDStrategyResult:
# {"id":"sourceFile","fileName":"TDStrategyResult.java"}
    1:4:void <init>(java.lang.String,java.lang.String,java.lang.String):23:26 -> <init>
cn.thinkingdata.strategy.core.result.TDStrategyResultListener -> cn.thinkingdata.strategy.core.result.TDStrategyResultListener:
# {"id":"sourceFile","fileName":"TDStrategyResultListener.java"}
cn.thinkingdata.strategy.core.result.TDStrategyResultObservable -> cn.thinkingdata.strategy.core.result.c:
# {"id":"sourceFile","fileName":"TDStrategyResultObservable.java"}
    java.util.List listeners -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    android.os.Handler mHandler -> b
    cn.thinkingdata.strategy.core.result.TDStrategyResultObservable instance -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/result/c;"}
    1:1:void <init>():24:24 -> <init>
    2:5:void <init>():22:25 -> <init>
    1:8:cn.thinkingdata.strategy.core.result.TDStrategyResultObservable getInstance():29:36 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"()Lcn/thinkingdata/strategy/core/result/c;"}
cn.thinkingdata.strategy.core.result.TDStrategyResultObservable$1 -> cn.thinkingdata.strategy.core.result.b:
# {"id":"sourceFile","fileName":"TDStrategyResultObservable.java"}
    cn.thinkingdata.strategy.core.result.TDStrategyResultListener val$listener -> a
    cn.thinkingdata.strategy.core.result.TDStrategyResult val$result -> b
    1:1:void <init>(cn.thinkingdata.strategy.core.result.TDStrategyResultObservable,cn.thinkingdata.strategy.core.result.TDStrategyResultListener,cn.thinkingdata.strategy.core.result.TDStrategyResult):52:52 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/result/TDStrategyResultListener;Lcn/thinkingdata/strategy/core/result/TDStrategyResult;)V"}
    1:1:void run():55:55 -> run
cn.thinkingdata.strategy.core.task.TaskFlow -> cn.thinkingdata.strategy.core.task.a:
# {"id":"sourceFile","fileName":"TaskFlow.java"}
    java.lang.String appId -> a
    java.lang.String projectId -> b
    java.lang.String taskId -> c
    java.lang.String clientUserId -> d
    long taskVersion -> e
    java.lang.String channelMsgType -> f
    java.lang.String channelId -> g
    cn.thinkingdata.strategy.core.period.ITimeCycle mTimeCycle -> h
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/period/p;"}
    double zoneOffset -> i
    cn.thinkingdata.strategy.core.trigger.IComplete iComplete -> j
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/trigger/g;"}
    cn.thinkingdata.strategy.core.frequency.ITaskLimit mTaskFrequencyLimit -> k
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/frequency/b;"}
    cn.thinkingdata.strategy.core.frequency.ITaskLimit mTaskTouchLimit -> l
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/frequency/c;"}
    cn.thinkingdata.strategy.core.audience.TargetAudienceManager mTargetAudienceManager -> m
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/audience/a;"}
    cn.thinkingdata.strategy.core.result.PushResultManager mPushResultManger -> n
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/result/a;"}
    cn.thinkingdata.strategy.core.exp.ExpConfigManager mExpConfigManager -> o
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/exp/a;"}
    cn.thinkingdata.strategy.core.trigger.entity.ClientTriggerRecord mTriggerRecord -> p
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/trigger/entity/a;"}
    int taskMode -> q
    long eventTimeout -> r
    1:6:void <init>(java.lang.String,java.lang.String,org.json.JSONObject):65:70 -> <init>
    7:16:void parseTargetAudience(org.json.JSONObject):108:117 -> <init>
    7:16:void <init>(java.lang.String,java.lang.String,org.json.JSONObject):71 -> <init>
    17:17:void parseExpConfig(org.json.JSONObject):104:104 -> <init>
    17:17:void <init>(java.lang.String,java.lang.String,org.json.JSONObject):72 -> <init>
    18:20:void parseTaskLimit(org.json.JSONObject):140:142 -> <init>
    18:20:void <init>(java.lang.String,java.lang.String,org.json.JSONObject):73 -> <init>
    21:21:void parseContentList(org.json.JSONObject):100:100 -> <init>
    21:21:void <init>(java.lang.String,java.lang.String,org.json.JSONObject):74 -> <init>
    1:17:void parseTaskInfo(org.json.JSONObject):80:96 -> a
    1:14:void parseTriggerRule(org.json.JSONObject):121:134 -> b
cn.thinkingdata.strategy.core.task.TaskFlowManager -> cn.thinkingdata.strategy.core.task.d:
# {"id":"sourceFile","fileName":"TaskFlowManager.java"}
    java.lang.String appId -> a
    java.util.Map taskFlows -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/HashMap;"}
    boolean mUserTaskStatus -> c
    java.util.List mDebugTriggerList -> d
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    java.util.List preEventCaches -> e
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    boolean loadTaskSuccess -> f
    java.util.Map instances -> g
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/HashMap;"}
    long clientStartTime -> h
    long clientStartElapsedRealtime -> i
    1:6:void <clinit>():43:48 -> <clinit>
    1:1:void <init>(java.lang.String):56:56 -> <init>
    2:16:void <init>(java.lang.String):46:60 -> <init>
    17:17:void cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.addDatabaseChangeListener(cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper$OnDatabaseChangeListener):86:86 -> <init>
    17:17:void <init>(java.lang.String):60 -> <init>
    18:18:void <init>(java.lang.String):66:66 -> <init>
    1:8:cn.thinkingdata.strategy.core.task.TaskFlowManager getInstance(java.lang.String):70:77 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;)Lcn/thinkingdata/strategy/core/task/d;"}
    9:9:cn.thinkingdata.strategy.core.task.TaskFlowManager getInstance(java.lang.String):77:77 -> a
    10:10:void applyNewConfig(java.lang.String,java.lang.String):125:125 -> a
    11:11:boolean cn.thinkingdata.strategy.utils.CommonUtils.isStrategyStop(java.lang.String):304:304 -> a
    11:11:void applyNewConfig(java.lang.String,java.lang.String):125 -> a
    12:12:void applyNewConfig(java.lang.String,java.lang.String):126:126 -> a
    13:16:cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer.getInstance():52:55 -> a
    13:16:void applyNewConfig(java.lang.String,java.lang.String):127 -> a
    17:17:void applyNewConfig(java.lang.String,java.lang.String):127:127 -> a
    18:24:void cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer.initAppTask(java.lang.String,java.lang.String):59:65 -> a
    18:24:void applyNewConfig(java.lang.String,java.lang.String):127 -> a
    25:55:void applyNewConfig(java.lang.String,java.lang.String):128:158 -> a
    56:68:void cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.createNewTask(cn.thinkingdata.strategy.storage.db.StrategyTaskInfo):123:135 -> a
    56:68:void applyNewConfig(java.lang.String,java.lang.String):158 -> a
    69:92:void applyNewConfig(java.lang.String,java.lang.String):159:182 -> a
    93:99:void cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.deleteTask(java.lang.String,java.lang.String,java.lang.String):156:162 -> a
    93:99:void applyNewConfig(java.lang.String,java.lang.String):182 -> a
    100:102:void applyNewConfig(java.lang.String,java.lang.String):184:186 -> a
    103:109:void cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.deleteFrequencyLimit(java.lang.String,java.lang.String,java.lang.String):620:626 -> a
    103:109:void applyNewConfig(java.lang.String,java.lang.String):186 -> a
    110:122:void applyNewConfig(java.lang.String,java.lang.String):190:202 -> a
    123:138:void cn.thinkingdata.strategy.utils.AnalyticUtils.trackClientDebugEvent(java.lang.String,java.util.List):98:113 -> a
    123:138:void applyNewConfig(java.lang.String,java.lang.String):202 -> a
    139:144:void applyNewConfig(java.lang.String,java.lang.String):204:209 -> a
    145:150:void clearPreEvent():214:219 -> a
    151:151:void triggerEvent(org.json.JSONObject,long):224:224 -> a
    152:152:boolean cn.thinkingdata.strategy.utils.CommonUtils.isStrategyStop(java.lang.String):304:304 -> a
    152:152:void triggerEvent(org.json.JSONObject,long):224 -> a
    153:153:void triggerEvent(org.json.JSONObject,long):226:226 -> a
    154:156:boolean cn.thinkingdata.strategy.utils.CommonUtils.isCommonEvent(org.json.JSONObject):320:322 -> a
    154:156:void triggerEvent(org.json.JSONObject,long):227 -> a
    157:164:void triggerEvent(org.json.JSONObject,long):228:235 -> a
    165:166:boolean cn.thinkingdata.strategy.utils.AnalyticUtils.isBlackEvent(java.lang.String):160:161 -> a
    165:166:void triggerEvent(org.json.JSONObject,long):236 -> a
    167:172:void triggerEvent(org.json.JSONObject,long):237:242 -> a
    173:173:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):248:248 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/task/a;Ljava/lang/String;Lcn/thinkingdata/strategy/rules/api/b;J)V"}
    174:179:void cn.thinkingdata.strategy.core.task.TaskFlow.startClientRecord():202:207 -> a
    174:179:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):250 -> a
    180:181:boolean cn.thinkingdata.strategy.utils.AnalyticUtils.isWhiteEvent(java.lang.String):169:170 -> a
    180:181:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isTargetEvent(java.lang.String):229 -> a
    180:181:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):252 -> a
    182:184:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isTargetEvent(java.lang.String):230:232 -> a
    182:184:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):252 -> a
    185:185:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isEventTimeout(long):239:239 -> a
    185:185:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):254 -> a
    186:189:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isValidityPeriod():164:167 -> a
    186:189:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):256 -> a
    190:199:boolean cn.thinkingdata.strategy.core.task.TaskFlow.triggerRules(cn.thinkingdata.strategy.rules.api.Facts):149:158 -> a
    190:199:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):258 -> a
    200:200:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isTargetAudience(cn.thinkingdata.strategy.rules.api.Facts):244:244 -> a
    200:200:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):260 -> a
    201:201:boolean cn.thinkingdata.strategy.core.audience.TargetAudienceManager.isTargetUser(cn.thinkingdata.strategy.rules.api.Facts):51:51 -> a
    201:201:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isTargetAudience(cn.thinkingdata.strategy.rules.api.Facts):245 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    201:201:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):260 -> a
    202:214:boolean cn.thinkingdata.strategy.core.audience.TargetAudienceManager.isTargetUser(cn.thinkingdata.strategy.rules.api.Facts):52:64 -> a
    202:214:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isTargetAudience(cn.thinkingdata.strategy.rules.api.Facts):245 -> a
    202:214:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):260 -> a
    215:215:void cn.thinkingdata.strategy.rules.api.Facts.remove(java.lang.String):60:60 -> a
    215:215:boolean cn.thinkingdata.strategy.core.audience.TargetAudienceManager.isTargetUser(cn.thinkingdata.strategy.rules.api.Facts):65 -> a
    215:215:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isTargetAudience(cn.thinkingdata.strategy.rules.api.Facts):245 -> a
    215:215:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):260 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(3)"]}
    216:216:void cn.thinkingdata.strategy.rules.api.Facts.remove(cn.thinkingdata.strategy.rules.api.Fact):73:73 -> a
    216:216:void cn.thinkingdata.strategy.rules.api.Facts.remove(java.lang.String):62 -> a
    216:216:boolean cn.thinkingdata.strategy.core.audience.TargetAudienceManager.isTargetUser(cn.thinkingdata.strategy.rules.api.Facts):65 -> a
    216:216:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isTargetAudience(cn.thinkingdata.strategy.rules.api.Facts):245 -> a
    216:216:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):260 -> a
    217:238:boolean cn.thinkingdata.strategy.core.audience.TargetAudienceManager.isTargetUser(cn.thinkingdata.strategy.rules.api.Facts):68:89 -> a
    217:238:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isTargetAudience(cn.thinkingdata.strategy.rules.api.Facts):245 -> a
    217:238:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):260 -> a
    239:239:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isTargetAudience(cn.thinkingdata.strategy.rules.api.Facts):247:247 -> a
    239:239:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):260 -> a
    240:241:java.lang.String cn.thinkingdata.strategy.core.task.TaskFlow.getPushId():253:254 -> a
    240:241:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isTargetAudience(cn.thinkingdata.strategy.rules.api.Facts):247 -> a
    240:241:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):260 -> a
    242:242:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isTargetAudience(cn.thinkingdata.strategy.rules.api.Facts):247:247 -> a
    242:242:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):260 -> a
    243:244:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isExpRelease():258:259 -> a
    243:244:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):262 -> a
    245:245:boolean cn.thinkingdata.strategy.core.exp.ExpConfigManager.isExpRelease(cn.thinkingdata.strategy.core.trigger.entity.ClientTriggerRecord):77:77 -> a
    245:245:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isExpRelease():259 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    245:245:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):262 -> a
    246:246:boolean cn.thinkingdata.strategy.core.exp.ExpConfigManager.isExpRelease(cn.thinkingdata.strategy.core.trigger.entity.ClientTriggerRecord):77:77 -> a
    246:246:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isExpRelease():259 -> a
    246:246:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):262 -> a
    247:247:boolean cn.thinkingdata.strategy.core.exp.ExpConfigManager.isGapExp():55:55 -> a
    247:247:boolean cn.thinkingdata.strategy.core.exp.ExpConfigManager.isExpRelease(cn.thinkingdata.strategy.core.trigger.entity.ClientTriggerRecord):79 -> a
    247:247:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isExpRelease():259 -> a
    247:247:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):262 -> a
    248:252:boolean cn.thinkingdata.strategy.core.exp.ExpConfigManager.isExpGroupIdExist(cn.thinkingdata.strategy.core.trigger.entity.ClientTriggerRecord):64:68 -> a
    248:252:boolean cn.thinkingdata.strategy.core.exp.ExpConfigManager.isExpRelease(cn.thinkingdata.strategy.core.trigger.entity.ClientTriggerRecord):80 -> a
    248:252:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isExpRelease():259 -> a
    248:252:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):262 -> a
    253:264:boolean cn.thinkingdata.strategy.core.exp.ExpConfigManager.isExpRelease(cn.thinkingdata.strategy.core.trigger.entity.ClientTriggerRecord):81:92 -> a
    253:264:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isExpRelease():259 -> a
    253:264:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):262 -> a
    265:271:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isTaskLimit():173:179 -> a
    265:271:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):264 -> a
    272:272:boolean cn.thinkingdata.strategy.core.exp.ExpConfigManager.isGapExp():55:55 -> a
    272:272:boolean cn.thinkingdata.strategy.core.exp.ExpConfigManager.isExpSampleOut():101 -> a
    272:272:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isTaskLimit():179 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(2)"]}
    272:272:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):264 -> a
    273:273:boolean cn.thinkingdata.strategy.core.exp.ExpConfigManager.isExpSampleOut():102:102 -> a
    273:273:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isTaskLimit():179 -> a
    273:273:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):264 -> a
    274:285:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isTaskLimit():181:192 -> a
    274:285:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):264 -> a
    286:286:boolean cn.thinkingdata.strategy.core.exp.ExpConfigManager.isGapExp():55:55 -> a
    286:286:boolean cn.thinkingdata.strategy.core.exp.ExpConfigManager.isPush():106 -> a
    286:286:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isTaskLimit():192 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(2)"]}
    286:286:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):264 -> a
    287:287:boolean cn.thinkingdata.strategy.core.exp.ExpConfigManager.isPush():107:107 -> a
    287:287:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isTaskLimit():192 -> a
    287:287:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):264 -> a
    288:290:boolean cn.thinkingdata.strategy.core.task.TaskFlow.isTaskLimit():193:195 -> a
    288:290:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):264 -> a
    291:291:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):263:263 -> a
    291:291:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    292:292:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):54:54 -> a
    292:292:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    292:292:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    293:293:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):54:54 -> a
    293:293:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    293:293:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    294:294:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):54:54 -> a
    294:294:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    294:294:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    295:324:org.json.JSONObject cn.thinkingdata.strategy.core.result.PushResultManager.buildContentMap(cn.thinkingdata.strategy.rules.api.Facts):104:133 -> a
    295:324:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):55 -> a
    295:324:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    295:324:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    325:326:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):55:56 -> a
    325:326:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    325:326:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    327:327:java.lang.String cn.thinkingdata.strategy.core.task.TaskFlow.getPushId():253:253 -> a
    327:327:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):56 -> a
    327:327:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    327:327:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(3)"]}
    328:329:java.lang.String cn.thinkingdata.strategy.core.task.TaskFlow.getPushId():253:254 -> a
    328:329:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):56 -> a
    328:329:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    328:329:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    330:330:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):56:56 -> a
    330:330:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    330:330:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    331:338:org.json.JSONObject cn.thinkingdata.strategy.core.result.PushResultManager.buildUserParamsMap(cn.thinkingdata.strategy.rules.api.Facts):80:87 -> a
    331:338:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):57 -> a
    331:338:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    331:338:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    339:339:boolean cn.thinkingdata.strategy.utils.CommonUtils.isNull(java.lang.Object):215:215 -> a
    339:339:org.json.JSONObject cn.thinkingdata.strategy.core.result.PushResultManager.buildUserParamsMap(cn.thinkingdata.strategy.rules.api.Facts):88 -> a
    339:339:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):57 -> a
    339:339:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    339:339:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    340:340:org.json.JSONObject cn.thinkingdata.strategy.core.result.PushResultManager.buildUserParamsMap(cn.thinkingdata.strategy.rules.api.Facts):93:93 -> a
    340:340:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):57 -> a
    340:340:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    340:340:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    341:342:org.json.JSONObject cn.thinkingdata.strategy.core.result.PushResultManager.buildUserParamsMap(cn.thinkingdata.strategy.rules.api.Facts):89:90 -> a
    341:342:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):57 -> a
    341:342:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    341:342:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    343:343:java.lang.Object cn.thinkingdata.strategy.core.result.PushResultManager.getUserParamsValue(cn.thinkingdata.strategy.rules.api.Facts,java.lang.String,java.lang.String):244:244 -> a
    343:343:org.json.JSONObject cn.thinkingdata.strategy.core.result.PushResultManager.buildUserParamsMap(cn.thinkingdata.strategy.rules.api.Facts):91 -> a
    343:343:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):57 -> a
    343:343:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    343:343:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    344:348:java.lang.Object cn.thinkingdata.strategy.utils.CommonUtils.getColumnValue(cn.thinkingdata.strategy.rules.api.Facts,java.lang.String[]):232:236 -> a
    344:348:java.lang.Object cn.thinkingdata.strategy.core.result.PushResultManager.getUserParamsValue(cn.thinkingdata.strategy.rules.api.Facts,java.lang.String,java.lang.String):245 -> a
    344:348:org.json.JSONObject cn.thinkingdata.strategy.core.result.PushResultManager.buildUserParamsMap(cn.thinkingdata.strategy.rules.api.Facts):91 -> a
    344:348:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):57 -> a
    344:348:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    344:348:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    349:349:boolean cn.thinkingdata.strategy.utils.CommonUtils.isEmpty(java.lang.Object):211:211 -> a
    349:349:java.lang.Object cn.thinkingdata.strategy.utils.CommonUtils.getColumnValue(cn.thinkingdata.strategy.rules.api.Facts,java.lang.String[]):238 -> a
    349:349:java.lang.Object cn.thinkingdata.strategy.core.result.PushResultManager.getUserParamsValue(cn.thinkingdata.strategy.rules.api.Facts,java.lang.String,java.lang.String):245 -> a
    349:349:org.json.JSONObject cn.thinkingdata.strategy.core.result.PushResultManager.buildUserParamsMap(cn.thinkingdata.strategy.rules.api.Facts):91 -> a
    349:349:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):57 -> a
    349:349:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    349:349:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    350:350:java.lang.Object cn.thinkingdata.strategy.utils.CommonUtils.getColumnValue(cn.thinkingdata.strategy.rules.api.Facts,java.lang.String[]):240:240 -> a
    350:350:java.lang.Object cn.thinkingdata.strategy.core.result.PushResultManager.getUserParamsValue(cn.thinkingdata.strategy.rules.api.Facts,java.lang.String,java.lang.String):245 -> a
    350:350:org.json.JSONObject cn.thinkingdata.strategy.core.result.PushResultManager.buildUserParamsMap(cn.thinkingdata.strategy.rules.api.Facts):91 -> a
    350:350:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):57 -> a
    350:350:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    350:350:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    351:351:org.json.JSONObject cn.thinkingdata.strategy.core.result.PushResultManager.buildUserParamsMap(cn.thinkingdata.strategy.rules.api.Facts):91:91 -> a
    351:351:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):57 -> a
    351:351:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    351:351:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    352:352:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):57:57 -> a
    352:352:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    352:352:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    353:359:org.json.JSONObject cn.thinkingdata.strategy.core.result.PushResultManager.buildOpsProperties():63:69 -> a
    353:359:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):58 -> a
    353:359:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    353:359:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    360:368:java.util.TimeZone cn.thinkingdata.strategy.utils.AnalyticUtils.getAnalyticsTimeZone(java.lang.String):201:209 -> a
    360:368:org.json.JSONObject cn.thinkingdata.strategy.core.result.PushResultManager.buildOpsProperties():69 -> a
    360:368:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):58 -> a
    360:368:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    360:368:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    369:373:org.json.JSONObject cn.thinkingdata.strategy.core.result.PushResultManager.buildOpsProperties():69:73 -> a
    369:373:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):58 -> a
    369:373:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    369:373:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    374:374:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.result.PushResultManager.calculate(cn.thinkingdata.strategy.rules.api.Facts):58:58 -> a
    374:374:cn.thinkingdata.strategy.core.result.TDStrategyResult cn.thinkingdata.strategy.core.task.TaskFlow.calculate(cn.thinkingdata.strategy.rules.api.Facts):264 -> a
    374:374:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):266 -> a
    375:376:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):268:269 -> a
    377:377:void cn.thinkingdata.strategy.core.result.TDStrategyResultObservable.triggerResult(cn.thinkingdata.strategy.core.result.TDStrategyResult):49:49 -> a
    377:377:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):269 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    378:387:void cn.thinkingdata.strategy.core.result.TDStrategyResultObservable.triggerResult(cn.thinkingdata.strategy.core.result.TDStrategyResult):50:59 -> a
    378:387:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):269 -> a
    388:389:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):270:271 -> a
    390:395:void cn.thinkingdata.strategy.core.task.TaskFlow.finishClientRecord():211:216 -> a
    390:395:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):274 -> a
    396:396:void cn.thinkingdata.strategy.core.frequency.UserFatigueControl.addLimitCount():94:94 -> a
    396:396:void cn.thinkingdata.strategy.core.task.TaskFlow.finishClientRecord():217 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    396:396:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):274 -> a
    397:397:void cn.thinkingdata.strategy.core.task.TaskFlow.finishClientRecord():219:219 -> a
    397:397:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):274 -> a
    398:398:boolean cn.thinkingdata.strategy.core.result.TDStrategyResultObservable.isObserverEmpty():63:63 -> a
    398:398:void cn.thinkingdata.strategy.core.task.TaskFlow.finishClientRecord():219 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    398:398:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):274 -> a
    399:399:boolean cn.thinkingdata.strategy.core.result.TDStrategyResultObservable.isObserverEmpty():63:63 -> a
    399:399:void cn.thinkingdata.strategy.core.task.TaskFlow.finishClientRecord():219 -> a
    399:399:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):274 -> a
    400:404:void cn.thinkingdata.strategy.core.task.TaskFlow.finishClientRecord():220:224 -> a
    400:404:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):274 -> a
    405:405:void cn.thinkingdata.strategy.core.result.TDStrategyResultObservable.triggerResult(cn.thinkingdata.strategy.core.result.TDStrategyResult):59:59 -> a
    405:405:void taskTriggerFlow(cn.thinkingdata.strategy.core.task.TaskFlow,java.lang.String,cn.thinkingdata.strategy.rules.api.Facts,long):269 -> a
    1:1:void stopTasks(java.lang.String,java.lang.String):117:117 -> b
    2:2:boolean cn.thinkingdata.strategy.utils.CommonUtils.isStrategyStop(java.lang.String):304:304 -> b
    2:2:void stopTasks(java.lang.String,java.lang.String):117 -> b
    3:6:void stopTasks(java.lang.String,java.lang.String):118:121 -> b
cn.thinkingdata.strategy.core.task.TaskFlowManager$1 -> cn.thinkingdata.strategy.core.task.b:
# {"id":"sourceFile","fileName":"TaskFlowManager.java"}
    cn.thinkingdata.strategy.core.task.TaskFlowManager this$0 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/task/d;"}
    1:1:void <init>(cn.thinkingdata.strategy.core.task.TaskFlowManager):60:60 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/task/d;)V"}
cn.thinkingdata.strategy.core.task.TaskFlowManager$2 -> cn.thinkingdata.strategy.core.task.c:
# {"id":"sourceFile","fileName":"TaskFlowManager.java"}
    cn.thinkingdata.strategy.core.task.TaskFlowManager this$0 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/task/d;"}
    1:1:void <init>(cn.thinkingdata.strategy.core.task.TaskFlowManager):279:279 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/task/d;)V"}
    1:1:void run():284:284 -> run
    2:4:void cn.thinkingdata.strategy.utils.AnalyticUtils.trackRiskEvent(java.lang.String):90:92 -> run
    2:4:void run():284 -> run
cn.thinkingdata.strategy.core.trigger.AbstractTriggerRule -> cn.thinkingdata.strategy.core.trigger.a:
# {"id":"sourceFile","fileName":"AbstractTriggerRule.java"}
    int mTriggerId -> a
    java.util.List targetEventList -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    cn.thinkingdata.strategy.core.task.TaskFlow mTaskFlow -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/task/a;"}
    cn.thinkingdata.strategy.rules.support.composite.ActivationRuleGroup mEventFilters -> d
    cn.thinkingdata.strategy.core.period.ITimeCycle mTriggerTimeCycle -> e
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/period/c;"}
    java.util.List disableEventList -> f
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    java.lang.String clientUserId -> g
    1:8:void <init>(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject,int):47:54 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/task/a;Lorg/json/JSONObject;I)V"}
    9:42:cn.thinkingdata.strategy.core.period.ITimeCycle cn.thinkingdata.strategy.core.period.PeriodLimitFactory.createTriggerTimeCycle(org.json.JSONObject,double):25:58 -> <init>
    9:42:void <init>(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject,int):54 -> <init>
    43:45:cn.thinkingdata.strategy.core.period.ITimeCycle cn.thinkingdata.strategy.core.period.PeriodLimitFactory.createTriggerTimeCycle(org.json.JSONObject,double):53:55 -> <init>
    43:45:void <init>(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject,int):54 -> <init>
    46:50:cn.thinkingdata.strategy.core.period.ITimeCycle cn.thinkingdata.strategy.core.period.PeriodLimitFactory.createTriggerTimeCycle(org.json.JSONObject,double) -> <init>
    46:50:void <init>(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject,int):54 -> <init>
    51:51:cn.thinkingdata.strategy.core.period.ITimeCycle cn.thinkingdata.strategy.core.period.PeriodLimitFactory.createTriggerTimeCycle(org.json.JSONObject,double):43:43 -> <init>
    51:51:void <init>(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject,int):54 -> <init>
    52:79:cn.thinkingdata.strategy.core.period.ITimeCycle cn.thinkingdata.strategy.core.period.PeriodLimitFactory.createTriggerTimeCycle(org.json.JSONObject,double):37:64 -> <init>
    52:79:void <init>(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject,int):54 -> <init>
    80:84:void <init>(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject,int):54:58 -> <init>
    1:21:void parseEventFilters(org.json.JSONObject):86:106 -> a
    1:21:void parseFilters(org.json.JSONObject):82 -> a
    22:22:boolean isTargetEvent(java.lang.String):122:122 -> a
    23:47:boolean isRelationEq(org.json.JSONObject,java.lang.String):157:181 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;Lorg/json/JSONObject;)Z"}
    1:1:java.util.List getRelationProperties():71:71 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"()Ljava/util/ArrayList;"}
    2:14:java.util.List parseRelationProperties(org.json.JSONObject):139:151 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lorg/json/JSONObject;)Ljava/util/ArrayList;"}
    15:20:android.util.Pair getFactRelationProperties(cn.thinkingdata.strategy.rules.api.Facts):189:194 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Landroid/util/Pair;"}
    21:25:android.util.Pair getFactRelationProperties(cn.thinkingdata.strategy.rules.api.Facts):194:194 -> b
    48:48:android.util.Pair getFactRelationProperties(cn.thinkingdata.strategy.rules.api.Facts):217:217 -> b
    49:50:android.util.Pair getFactRelationProperties(cn.thinkingdata.strategy.rules.api.Facts):213:214 -> b
    51:52:android.util.Pair getFactRelationProperties(cn.thinkingdata.strategy.rules.api.Facts):209:210 -> b
    53:54:android.util.Pair getFactRelationProperties(cn.thinkingdata.strategy.rules.api.Facts):205:206 -> b
    55:56:android.util.Pair getFactRelationProperties(cn.thinkingdata.strategy.rules.api.Facts):201:202 -> b
    57:85:android.util.Pair getFactRelationProperties(cn.thinkingdata.strategy.rules.api.Facts):197:225 -> b
    1:1:java.util.List getTargetEventKeyList():0:0 -> c
    2:2:void parseSpecialFilters(org.json.JSONObject):0:0 -> c
    int getTriggerCaliberType() -> d
cn.thinkingdata.strategy.core.trigger.CompleteA -> cn.thinkingdata.strategy.core.trigger.b:
# {"id":"sourceFile","fileName":"CompleteA.java"}
    cn.thinkingdata.strategy.core.trigger.ITriggerRule taskA -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/trigger/a;"}
    1:6:void <init>(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONArray):19:24 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/task/a;Lorg/json/JSONArray;)V"}
    1:1:boolean isComplete(cn.thinkingdata.strategy.rules.api.Facts):29:29 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    2:2:boolean isTargetEvent(java.lang.String):34:34 -> a
cn.thinkingdata.strategy.core.trigger.CompleteAInCompleteB -> cn.thinkingdata.strategy.core.trigger.c:
# {"id":"sourceFile","fileName":"CompleteAInCompleteB.java"}
    cn.thinkingdata.strategy.core.trigger.ITriggerRule taskA -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/trigger/a;"}
    cn.thinkingdata.strategy.core.trigger.ITriggerRule taskB -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/trigger/a;"}
    long endTimeStamp -> c
    long taskDelayTime -> d
    cn.thinkingdata.strategy.core.task.TaskFlow mTaskFlow -> e
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/task/a;"}
    int mPushType -> f
    1:40:void <init>(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONArray,int,java.lang.String):40:79 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/task/a;Lorg/json/JSONArray;ILjava/lang/String;)V"}
    1:2:boolean cn.thinkingdata.strategy.utils.AnalyticUtils.isCompleteEvent(java.lang.String):59:60 -> a
    1:2:boolean isTargetEvent(java.lang.String):139 -> a
    3:4:boolean isTargetEvent(java.lang.String):142:143 -> a
    5:5:boolean isComplete(cn.thinkingdata.strategy.rules.api.Facts):85:85 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    6:7:boolean cn.thinkingdata.strategy.utils.AnalyticUtils.isCompleteEvent(java.lang.String):59:60 -> a
    6:7:boolean isComplete(cn.thinkingdata.strategy.rules.api.Facts):85 -> a
    8:12:boolean isComplete(cn.thinkingdata.strategy.rules.api.Facts):89:93 -> a
    13:43:java.util.List cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.getCompleteListByTaskId(java.lang.String,java.lang.String,java.lang.String):460:490 -> a
    13:43:boolean isComplete(cn.thinkingdata.strategy.rules.api.Facts):93 -> a
    44:47:java.util.List cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.getCompleteListByTaskId(java.lang.String,java.lang.String,java.lang.String):487:490 -> a
    44:47:boolean isComplete(cn.thinkingdata.strategy.rules.api.Facts):93 -> a
    48:59:boolean isComplete(cn.thinkingdata.strategy.rules.api.Facts):94:105 -> a
    60:62:java.util.List cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.getCompleteListByTaskId(java.lang.String,java.lang.String,java.lang.String):490:492 -> a
    60:62:boolean isComplete(cn.thinkingdata.strategy.rules.api.Facts):93 -> a
    63:83:boolean isComplete(cn.thinkingdata.strategy.rules.api.Facts):112:132 -> a
    84:99:void cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.addCompleteTask(cn.thinkingdata.strategy.storage.db.CompleteTaskInfo):401:416 -> a
    84:99:boolean isComplete(cn.thinkingdata.strategy.rules.api.Facts):132 -> a
cn.thinkingdata.strategy.core.trigger.ContinueTriggerRule -> cn.thinkingdata.strategy.core.trigger.d:
# {"id":"sourceFile","fileName":"ContinueTriggerRule.java"}
    cn.thinkingdata.strategy.core.period.PeriodScrollInfo periodScrollInfo -> h
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/period/n;"}
    cn.thinkingdata.strategy.rules.support.composite.ActivationRuleGroup blackListGroup -> i
    java.util.List relationProperties -> j
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    1:1:void <init>(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject,int):48:48 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/task/a;Lorg/json/JSONObject;I)V"}
    1:1:void parseFilters(org.json.JSONObject):53:53 -> a
    2:8:cn.thinkingdata.strategy.core.period.PeriodScrollInfo cn.thinkingdata.strategy.core.trigger.AbstractTriggerRule.parseTimeCycleHour(org.json.JSONObject):126:132 -> a
    2:8:void parseFilters(org.json.JSONObject):54 -> a
    9:10:void parseFilters(org.json.JSONObject):54:55 -> a
    11:27:void parseDisableEvent(org.json.JSONObject):61:77 -> a
    11:27:void parseFilters(org.json.JSONObject):56 -> a
    28:41:boolean triggerEventRules(cn.thinkingdata.strategy.rules.api.Facts):89:102 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    42:44:boolean cn.thinkingdata.strategy.core.trigger.AbstractTriggerRule.triggerEventFilters(cn.thinkingdata.strategy.rules.api.Facts):114:116 -> a
    42:44:boolean triggerEventRules(cn.thinkingdata.strategy.rules.api.Facts):106 -> a
    45:51:cn.thinkingdata.strategy.core.period.ITimeCycle getTimeCycle():111:117 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"()Lcn/thinkingdata/strategy/core/period/c;"}
    52:52:boolean cn.thinkingdata.strategy.core.trigger.AbstractTriggerRule.isTargetEvent(java.lang.String):122:122 -> a
    52:52:boolean isTargetEvent(java.lang.String):83 -> a
    53:53:boolean isTargetEvent(java.lang.String):83:83 -> a
    1:1:java.util.List getRelationProperties():122:122 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"()Ljava/util/ArrayList;"}
cn.thinkingdata.strategy.core.trigger.EverySequenceTriggerRule -> cn.thinkingdata.strategy.core.trigger.e:
# {"id":"sourceFile","fileName":"EverySequenceTriggerRule.java"}
    java.util.List mSequenceEventInfoList -> h
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    java.util.List disableEventList -> i
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    cn.thinkingdata.strategy.core.period.PeriodScrollInfo periodScrollInfo -> j
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/period/n;"}
    java.util.List relationProperties -> k
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    java.util.Map mEventRuleMaps -> l
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/HashMap;"}
    1:1:void <init>(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject,int):50:50 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/task/a;Lorg/json/JSONObject;I)V"}
    1:8:void parseFilters(org.json.JSONObject):79:86 -> a
    9:27:void parseSequenceFilters(org.json.JSONObject):54:72 -> a
    9:27:void parseFilters(org.json.JSONObject):87 -> a
    28:37:void parseFilters(org.json.JSONObject):88:97 -> a
    38:44:cn.thinkingdata.strategy.core.period.PeriodScrollInfo cn.thinkingdata.strategy.core.trigger.AbstractTriggerRule.parseTimeCycleHour(org.json.JSONObject):126:132 -> a
    38:44:void parseFilters(org.json.JSONObject):99 -> a
    45:46:void parseFilters(org.json.JSONObject):99:100 -> a
    47:69:boolean triggerEventRules(cn.thinkingdata.strategy.rules.api.Facts):105:127 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    70:112:java.util.HashMap cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.getTriggerSequenceList(cn.thinkingdata.strategy.storage.db.TriggerResultInfo,long,long,cn.thinkingdata.strategy.core.trigger.AbstractTriggerRule,org.json.JSONObject):305:347 -> a
    70:112:boolean triggerEventRules(cn.thinkingdata.strategy.rules.api.Facts):127 -> a
    113:116:java.util.HashMap cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.getTriggerSequenceList(cn.thinkingdata.strategy.storage.db.TriggerResultInfo,long,long,cn.thinkingdata.strategy.core.trigger.AbstractTriggerRule,org.json.JSONObject):344:347 -> a
    113:116:boolean triggerEventRules(cn.thinkingdata.strategy.rules.api.Facts):127 -> a
    117:129:boolean triggerEventRules(cn.thinkingdata.strategy.rules.api.Facts):130:142 -> a
    130:131:boolean cn.thinkingdata.strategy.utils.CommonUtils.findTargetList(java.util.List,java.util.List):341:342 -> a
    130:131:boolean triggerEventRules(cn.thinkingdata.strategy.rules.api.Facts):142 -> a
    132:237:boolean triggerEventRules(cn.thinkingdata.strategy.rules.api.Facts):143:248 -> a
    238:240:java.util.HashMap cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.getTriggerSequenceList(cn.thinkingdata.strategy.storage.db.TriggerResultInfo,long,long,cn.thinkingdata.strategy.core.trigger.AbstractTriggerRule,org.json.JSONObject):347:349 -> a
    238:240:boolean triggerEventRules(cn.thinkingdata.strategy.rules.api.Facts):127 -> a
    241:245:void deleteWindowTriggerList(java.util.List):260:264 -> a
    246:252:cn.thinkingdata.strategy.core.period.ITimeCycle getTimeCycle():269:275 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"()Lcn/thinkingdata/strategy/core/period/c;"}
    1:1:java.util.List getRelationProperties():256:256 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"()Ljava/util/ArrayList;"}
cn.thinkingdata.strategy.core.trigger.EveryTriggerRule -> cn.thinkingdata.strategy.core.trigger.f:
# {"id":"sourceFile","fileName":"EveryTriggerRule.java"}
    int mEventTriggerCaliberType -> h
    java.util.List targetEventKeyList -> i
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    1:2:void <init>(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject,int,int):27:28 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/task/a;Lorg/json/JSONObject;II)V"}
    1:1:cn.thinkingdata.strategy.core.period.ITimeCycle getTimeCycle():57:57 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"()Lcn/thinkingdata/strategy/core/period/c;"}
    2:4:boolean cn.thinkingdata.strategy.core.trigger.AbstractTriggerRule.triggerEventFilters(cn.thinkingdata.strategy.rules.api.Facts):114:116 -> a
    2:4:boolean triggerEventRules(cn.thinkingdata.strategy.rules.api.Facts):52 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    1:4:void parseSpecialFilters(org.json.JSONObject):38:41 -> c
    5:5:java.util.List getTargetEventKeyList():46:46 -> c
    1:1:int getTriggerCaliberType():33:33 -> d
cn.thinkingdata.strategy.core.trigger.IComplete -> cn.thinkingdata.strategy.core.trigger.g:
# {"id":"sourceFile","fileName":"IComplete.java"}
    boolean isComplete(cn.thinkingdata.strategy.rules.api.Facts) -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    boolean isTargetEvent(java.lang.String) -> a
cn.thinkingdata.strategy.core.trigger.ITriggerRule -> cn.thinkingdata.strategy.core.trigger.h:
# {"id":"sourceFile","fileName":"ITriggerRule.java"}
    cn.thinkingdata.strategy.core.period.ITimeCycle getTimeCycle() -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"()Lcn/thinkingdata/strategy/core/period/c;"}
    boolean isTargetEvent(java.lang.String) -> a
    boolean triggerEventRules(cn.thinkingdata.strategy.rules.api.Facts) -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.core.trigger.TriggerRuleFactory -> cn.thinkingdata.strategy.core.trigger.i:
# {"id":"sourceFile","fileName":"TriggerRuleFactory.java"}
    1:1:cn.thinkingdata.strategy.core.trigger.ITriggerRule createTriggerRule(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject,int,int,int):29:29 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/task/a;Lorg/json/JSONObject;III)Lcn/thinkingdata/strategy/core/trigger/a;"}
    2:2:cn.thinkingdata.strategy.core.trigger.ITriggerRule createTriggerRule(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject,int,int,int):25:25 -> a
    3:3:cn.thinkingdata.strategy.core.trigger.ITriggerRule createTriggerRule(cn.thinkingdata.strategy.core.task.TaskFlow,org.json.JSONObject,int,int,int):21:21 -> a
cn.thinkingdata.strategy.core.trigger.entity.ClientTriggerRecord -> cn.thinkingdata.strategy.core.trigger.entity.a:
# {"id":"sourceFile","fileName":"ClientTriggerRecord.java"}
    java.lang.String appId -> a
    java.lang.String taskId -> b
    java.lang.String clientUserId -> c
    java.lang.String pushId -> d
    java.lang.String expGroupId -> e
    java.util.Date triggerTime -> f
    java.util.Date actualPushTime -> g
    int status -> h
    int taskMode -> i
    1:1:void <init>(java.lang.String,java.lang.String,java.lang.String):24:24 -> <init>
    2:7:void <init>(java.lang.String,java.lang.String,java.lang.String):22:27 -> <init>
cn.thinkingdata.strategy.core.trigger.entity.RelationProperties -> cn.thinkingdata.strategy.core.trigger.entity.b:
# {"id":"sourceFile","fileName":"RelationProperties.java"}
    java.lang.String columnName -> a
    java.lang.String columnType -> b
    1:1:void <init>():10:10 -> <init>
cn.thinkingdata.strategy.core.trigger.entity.SequenceEventInfo -> cn.thinkingdata.strategy.core.trigger.entity.c:
# {"id":"sourceFile","fileName":"SequenceEventInfo.java"}
    java.lang.String eventKey -> a
    java.lang.String eventName -> b
    java.util.List disableEventList -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    long timeStampCycle -> d
    1:1:void <init>():12:12 -> <init>
cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer -> cn.thinkingdata.strategy.core.trigger.timer.c:
# {"id":"sourceFile","fileName":"CompleteDelayTaskTimer.java"}
    android.os.Handler mHandler -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/trigger/timer/b;"}
    java.lang.String appId -> b
    java.lang.String clientUserId -> c
    cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer instance -> d
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/trigger/timer/c;"}
    1:6:void <init>():43:48 -> <init>
cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer$1 -> cn.thinkingdata.strategy.core.trigger.timer.a:
# {"id":"sourceFile","fileName":"CompleteDelayTaskTimer.java"}
    boolean val$isClientStart -> a
    cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer this$0 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/trigger/timer/c;"}
    1:1:void <init>(cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer,boolean):106:106 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/trigger/timer/c;Z)V"}
    1:1:void run():109:109 -> run
    2:32:java.util.List cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.getCompleteTaskList(java.lang.String,java.lang.String):422:452 -> run
    2:32:void run():109 -> run
    33:36:java.util.List cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.getCompleteTaskList(java.lang.String,java.lang.String):449:452 -> run
    33:36:void run():109 -> run
    37:74:void run():110:147 -> run
    75:75:void cn.thinkingdata.strategy.core.task.TaskFlowManager.triggerCompleteEvent(java.lang.String):290:290 -> run
    75:75:void run():147 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    76:80:void cn.thinkingdata.strategy.core.task.TaskFlowManager.triggerCompleteEvent(java.lang.String):290:294 -> run
    76:80:void run():147 -> run
    81:83:java.util.List cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.getCompleteTaskList(java.lang.String,java.lang.String):452:454 -> run
    81:83:void run():109 -> run
cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer$TimerHandler -> cn.thinkingdata.strategy.core.trigger.timer.b:
# {"id":"sourceFile","fileName":"CompleteDelayTaskTimer.java"}
    cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer this$0 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/trigger/timer/c;"}
    1:2:void <init>(cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer,android.os.Looper):82:83 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/trigger/timer/c;Landroid/os/Looper;)V"}
    1:4:void handleMessage(android.os.Message):88:91 -> handleMessage
    5:5:void cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer.doCompleteTask(boolean):106:106 -> handleMessage
    5:5:void handleMessage(android.os.Message):91 -> handleMessage
    6:6:void handleMessage(android.os.Message):92:92 -> handleMessage
    7:7:void cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer.startTaskTimer(boolean):69:69 -> handleMessage
    7:7:void handleMessage(android.os.Message):92 -> handleMessage
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    8:15:void cn.thinkingdata.strategy.core.trigger.timer.CompleteDelayTaskTimer.startTaskTimer(boolean):69:76 -> handleMessage
    8:15:void handleMessage(android.os.Message):92 -> handleMessage
    16:20:void handleMessage(android.os.Message):95:99 -> handleMessage
cn.thinkingdata.strategy.plugin.StrategyPlugin -> cn.thinkingdata.strategy.plugin.StrategyPlugin:
# {"id":"sourceFile","fileName":"StrategyPlugin.java"}
    1:1:void <init>():24:24 -> <init>
    1:11:void onMethodCall(cn.thinkingdata.core.router.plugin.MethodCall):29:39 -> onMethodCall
    12:17:void onMethodCall(cn.thinkingdata.core.router.plugin.MethodCall):37:42 -> onMethodCall
cn.thinkingdata.strategy.receiver.TDEventReceiver -> cn.thinkingdata.strategy.receiver.c:
# {"id":"sourceFile","fileName":"TDEventReceiver.java"}
    1:1:void <init>():16:16 -> <init>
    1:1:void onDataEnqueued(java.lang.String,org.json.JSONObject):39:39 -> onDataEnqueued
    1:1:void onTimeCalibrated():49:49 -> onTimeCalibrated
cn.thinkingdata.strategy.receiver.TDEventReceiver$1 -> cn.thinkingdata.strategy.receiver.a:
# {"id":"sourceFile","fileName":"TDEventReceiver.java"}
    java.lang.String val$s -> a
    org.json.JSONObject val$jsonObject -> b
    1:1:void <init>(cn.thinkingdata.strategy.receiver.TDEventReceiver,java.lang.String,org.json.JSONObject):39:39 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;Lorg/json/JSONObject;)V"}
    1:1:void run():42:42 -> run
cn.thinkingdata.strategy.receiver.TDEventReceiver$2 -> cn.thinkingdata.strategy.receiver.b:
# {"id":"sourceFile","fileName":"TDEventReceiver.java"}
    1:1:void <init>(cn.thinkingdata.strategy.receiver.TDEventReceiver):49:49 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"()V"}
    1:2:void run():52:53 -> run
    3:3:void cn.thinkingdata.strategy.core.task.TaskFlowManager.deleteInvalidTasks():83:83 -> run
    3:3:void run():53 -> run
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    4:4:boolean cn.thinkingdata.strategy.utils.CommonUtils.isStrategyStop(java.lang.String):304:304 -> run
    4:4:void cn.thinkingdata.strategy.core.task.TaskFlowManager.deleteInvalidTasks():83 -> run
    4:4:void run():53 -> run
    5:6:void cn.thinkingdata.strategy.core.task.TaskFlowManager.deleteInvalidTasks():85:86 -> run
    5:6:void run():53 -> run
    7:13:void cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper.deleteTouchLimitByTime(long):690:696 -> run
    7:13:void cn.thinkingdata.strategy.core.task.TaskFlowManager.deleteInvalidTasks():86 -> run
    7:13:void run():53 -> run
cn.thinkingdata.strategy.receiver.TDRemoteReceiver -> cn.thinkingdata.strategy.receiver.f:
# {"id":"sourceFile","fileName":"TDRemoteReceiver.java"}
    1:1:void <init>():14:14 -> <init>
    1:1:void stopTask(java.lang.String,java.lang.String,java.lang.String):26:26 -> onChangeAccountSuccess
    1:1:void onChangeAccountSuccess(java.lang.String,java.lang.String,java.lang.String):17 -> onChangeAccountSuccess
    1:1:void onConfigApplySuccess(java.lang.String,java.lang.String,java.lang.String):40:40 -> onConfigApplySuccess
    1:1:void stopTask(java.lang.String,java.lang.String,java.lang.String):26:26 -> onConfigExpired
    1:1:void onConfigExpired(java.lang.String,java.lang.String,java.lang.String):22 -> onConfigExpired
cn.thinkingdata.strategy.receiver.TDRemoteReceiver$1 -> cn.thinkingdata.strategy.receiver.d:
# {"id":"sourceFile","fileName":"TDRemoteReceiver.java"}
    java.lang.String val$appId -> a
    java.lang.String val$tempCode -> b
    java.lang.String val$clientUserId -> c
    1:1:void <init>(cn.thinkingdata.strategy.receiver.TDRemoteReceiver,java.lang.String,java.lang.String,java.lang.String):26:26 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"}
    1:3:void run():30:32 -> run
cn.thinkingdata.strategy.receiver.TDRemoteReceiver$2 -> cn.thinkingdata.strategy.receiver.e:
# {"id":"sourceFile","fileName":"TDRemoteReceiver.java"}
    java.lang.String val$appId -> a
    java.lang.String val$tempCode -> b
    java.lang.String val$clientUserId -> c
    1:1:void <init>(cn.thinkingdata.strategy.receiver.TDRemoteReceiver,java.lang.String,java.lang.String,java.lang.String):40:40 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"}
    1:3:void run():44:46 -> run
cn.thinkingdata.strategy.rules.annotation.Action -> cn.thinkingdata.strategy.rules.annotation.a:
# {"id":"sourceFile","fileName":"Action.java"}
cn.thinkingdata.strategy.rules.annotation.Condition -> cn.thinkingdata.strategy.rules.annotation.b:
# {"id":"sourceFile","fileName":"Condition.java"}
cn.thinkingdata.strategy.rules.annotation.Fact -> cn.thinkingdata.strategy.rules.annotation.c:
# {"id":"sourceFile","fileName":"Fact.java"}
cn.thinkingdata.strategy.rules.annotation.Priority -> cn.thinkingdata.strategy.rules.annotation.d:
# {"id":"sourceFile","fileName":"Priority.java"}
cn.thinkingdata.strategy.rules.annotation.Rule -> cn.thinkingdata.strategy.rules.annotation.e:
# {"id":"sourceFile","fileName":"Rule.java"}
cn.thinkingdata.strategy.rules.api.Fact -> cn.thinkingdata.strategy.rules.api.a:
# {"id":"sourceFile","fileName":"Fact.java"}
    java.lang.String name -> a
    java.lang.Object value -> b
    1:5:void <init>(java.lang.String,java.lang.Object):25:29 -> <init>
    1:3:boolean equals(java.lang.Object):64:66 -> equals
    1:1:int hashCode():71:71 -> hashCode
    1:1:java.lang.String toString():50:50 -> toString
cn.thinkingdata.strategy.rules.api.Facts -> cn.thinkingdata.strategy.rules.api.b:
# {"id":"sourceFile","fileName":"Facts.java"}
    java.util.Set facts -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/HashSet;"}
    1:3:void <init>():19:21 -> <init>
    1:3:void put(java.lang.String,java.lang.Object):30:32 -> a
    4:4:void remove(cn.thinkingdata.strategy.rules.api.Fact):73:73 -> a
    4:4:void put(java.lang.String,java.lang.Object):34 -> a
    5:5:void put(java.lang.String,java.lang.Object):36:36 -> a
    6:6:java.lang.String cn.thinkingdata.strategy.rules.api.Fact.getName():37:37 -> a
    6:6:void add(cn.thinkingdata.strategy.rules.api.Fact):46 -> a
    6:6:void put(java.lang.String,java.lang.Object):36 -> a
    7:7:void add(cn.thinkingdata.strategy.rules.api.Fact):46:46 -> a
    7:7:void put(java.lang.String,java.lang.Object):36 -> a
    8:8:void remove(cn.thinkingdata.strategy.rules.api.Fact):73:73 -> a
    8:8:void add(cn.thinkingdata.strategy.rules.api.Fact):48 -> a
    8:8:void put(java.lang.String,java.lang.Object):36 -> a
    9:9:void add(cn.thinkingdata.strategy.rules.api.Fact):50:50 -> a
    9:9:void put(java.lang.String,java.lang.Object):36 -> a
    10:11:java.lang.Object get(java.lang.String):87:88 -> a
    12:12:java.lang.Object cn.thinkingdata.strategy.rules.api.Fact.getValue():45:45 -> a
    12:12:java.lang.Object get(java.lang.String):90 -> a
    1:7:cn.thinkingdata.strategy.rules.api.Fact getFact(java.lang.String):102:108 -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;)Lcn/thinkingdata/strategy/rules/api/a;"}
    8:8:java.lang.String cn.thinkingdata.strategy.rules.api.Fact.getName():37:37 -> b
    8:8:cn.thinkingdata.strategy.rules.api.Fact getFact(java.lang.String):109 -> b
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    9:9:cn.thinkingdata.strategy.rules.api.Fact getFact(java.lang.String):109:109 -> b
    1:1:java.util.Iterator iterator():139:139 -> iterator
    1:10:java.lang.String toString():151:160 -> toString
cn.thinkingdata.strategy.rules.api.Rule -> cn.thinkingdata.strategy.rules.api.c:
# {"id":"sourceFile","fileName":"Rule.java"}
    1:1:java.lang.String getDescription():44:44 -> getDescription
    1:1:java.lang.String getName():36:36 -> getName
cn.thinkingdata.strategy.rules.core.ActionMethodOrderBean -> cn.thinkingdata.strategy.rules.core.a:
# {"id":"sourceFile","fileName":"ActionMethodOrderBean.java"}
    java.lang.reflect.Method method -> a
    int order -> b
    1:3:void <init>(java.lang.reflect.Method,int):18:20 -> <init>
    1:1:int compareTo(java.lang.Object):13:13 -> compareTo
    2:2:int compareTo(cn.thinkingdata.strategy.rules.core.ActionMethodOrderBean):33:33 -> compareTo
    2:2:int compareTo(java.lang.Object):13 -> compareTo
    3:3:int getOrder():24:24 -> compareTo
    3:3:int compareTo(cn.thinkingdata.strategy.rules.core.ActionMethodOrderBean):33 -> compareTo
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    3:3:int compareTo(java.lang.Object):13 -> compareTo
    4:4:int compareTo(cn.thinkingdata.strategy.rules.core.ActionMethodOrderBean):38:38 -> compareTo
    4:4:int compareTo(java.lang.Object):13 -> compareTo
    5:5:java.lang.reflect.Method getMethod():28:28 -> compareTo
    5:5:int compareTo(cn.thinkingdata.strategy.rules.core.ActionMethodOrderBean):38 -> compareTo
    5:5:int compareTo(java.lang.Object):13 -> compareTo
    6:6:int compareTo(cn.thinkingdata.strategy.rules.core.ActionMethodOrderBean):38:38 -> compareTo
    6:6:int compareTo(java.lang.Object):13 -> compareTo
    1:6:boolean equals(java.lang.Object):45:50 -> equals
    1:2:int hashCode():55:56 -> hashCode
cn.thinkingdata.strategy.rules.core.BasicRule -> cn.thinkingdata.strategy.rules.core.b:
# {"id":"sourceFile","fileName":"BasicRule.java"}
    1:4:void <init>(java.lang.String,java.lang.String,int):69:72 -> <init>
    1:1:int compareTo(java.lang.Object):19:19 -> compareTo
    2:7:int compareTo(cn.thinkingdata.strategy.rules.api.Rule):145:150 -> compareTo
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/c;)I"}
    1:10:boolean equals(java.lang.Object):117:126 -> equals
    1:1:java.lang.String getDescription():94:94 -> getDescription
    1:1:java.lang.String getName():90:90 -> getName
    1:1:int getPriority():102:102 -> getPriority
    1:3:int hashCode():132:134 -> hashCode
    1:1:void setDescription(java.lang.String):98:98 -> setDescription
    1:1:void setPriority(int):106:106 -> setPriority
    1:1:java.lang.String toString():140:140 -> toString
cn.thinkingdata.strategy.rules.core.NoSuchFactException -> cn.thinkingdata.strategy.rules.core.c:
# {"id":"sourceFile","fileName":"NoSuchFactException.java"}
    1:1:void <init>(java.lang.String,java.lang.String):11:11 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;)V"}
cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator -> cn.thinkingdata.strategy.rules.core.d:
# {"id":"sourceFile","fileName":"RuleDefinitionValidator.java"}
    1:24:boolean validParameters(java.lang.reflect.Method):102:125 -> a
    25:28:int getIndexOfParameterOfTypeFacts(java.lang.reflect.Method):133:136 -> a
    25:28:boolean validParameters(java.lang.reflect.Method):126 -> a
    29:29:boolean validParameters(java.lang.reflect.Method):127:127 -> a
    30:30:java.lang.reflect.Method[] getMethods(java.lang.Object):178:178 -> a
    30:30:java.util.List getMethodsAnnotatedWith(java.lang.Class,java.lang.Object):167 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Class;Ljava/lang/Object;)Ljava/util/ArrayList;"}
    31:34:java.util.List getMethodsAnnotatedWith(java.lang.Class,java.lang.Object):168:171 -> a
cn.thinkingdata.strategy.rules.core.RuleProxy -> cn.thinkingdata.strategy.rules.core.e:
# {"id":"sourceFile","fileName":"RuleProxy.java"}
    java.lang.Object target -> a
    java.lang.String name -> b
    java.lang.String description -> c
    java.lang.Integer priority -> d
    java.lang.reflect.Method[] methods -> e
    java.lang.reflect.Method conditionMethod -> f
    java.util.Set actionMethods -> g
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/TreeSet;"}
    java.lang.reflect.Method compareToMethod -> h
    java.lang.reflect.Method toStringMethod -> i
    1:2:void <init>(java.lang.Object):68:69 -> <init>
    1:6:java.util.List getActualParameters(java.lang.reflect.Method,cn.thinkingdata.strategy.rules.api.Facts):141:146 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/reflect/Method;Lcn/thinkingdata/strategy/rules/api/b;)Ljava/util/ArrayList;"}
    7:8:java.util.Map cn.thinkingdata.strategy.rules.api.Facts.asMap():124:125 -> a
    7:8:java.util.List getActualParameters(java.lang.reflect.Method,cn.thinkingdata.strategy.rules.api.Facts):147 -> a
    9:9:java.lang.String cn.thinkingdata.strategy.rules.api.Fact.getName():37:37 -> a
    9:9:java.util.Map cn.thinkingdata.strategy.rules.api.Facts.asMap():126 -> a
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    9:9:java.util.List getActualParameters(java.lang.reflect.Method,cn.thinkingdata.strategy.rules.api.Facts):147 -> a
    10:10:java.lang.Object cn.thinkingdata.strategy.rules.api.Fact.getValue():45:45 -> a
    10:10:java.util.Map cn.thinkingdata.strategy.rules.api.Facts.asMap():126 -> a
    10:10:java.util.List getActualParameters(java.lang.reflect.Method,cn.thinkingdata.strategy.rules.api.Facts):147 -> a
    11:11:java.util.Map cn.thinkingdata.strategy.rules.api.Facts.asMap():126:126 -> a
    11:11:java.util.List getActualParameters(java.lang.reflect.Method,cn.thinkingdata.strategy.rules.api.Facts):147 -> a
    12:17:java.util.List getActualParameters(java.lang.reflect.Method,cn.thinkingdata.strategy.rules.api.Facts):147:152 -> a
    18:29:java.util.Set getActionMethodBeans():258:269 -> a
    1:1:java.lang.reflect.Method[] getMethods():286:286 -> b
    2:2:java.lang.Class getTargetClass():343:343 -> b
    2:2:java.lang.reflect.Method[] getMethods():287 -> b
    3:5:java.lang.reflect.Method[] getMethods():287:289 -> b
    1:3:java.lang.String getRuleDescription():308:310 -> c
    4:13:java.lang.reflect.Method getConditionMethod():245:254 -> c
    4:13:void appendConditionMethodName(java.lang.StringBuilder):320 -> c
    4:13:java.lang.String getRuleDescription():311 -> c
    14:16:void appendConditionMethodName(java.lang.StringBuilder):322:324 -> c
    14:16:java.lang.String getRuleDescription():311 -> c
    17:19:void appendActionMethodsNames(java.lang.StringBuilder):329:331 -> c
    17:19:java.lang.String getRuleDescription():312 -> c
    20:20:java.lang.reflect.Method cn.thinkingdata.strategy.rules.core.ActionMethodOrderBean.getMethod():28:28 -> c
    20:20:void appendActionMethodsNames(java.lang.StringBuilder):331 -> c
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    20:20:java.lang.String getRuleDescription():312 -> c
    21:23:void appendActionMethodsNames(java.lang.StringBuilder):331:333 -> c
    21:23:java.lang.String getRuleDescription():312 -> c
    24:24:java.lang.Class getTargetClass():343:343 -> c
    24:24:cn.thinkingdata.strategy.rules.annotation.Rule getRuleAnnotation():294 -> c
    24:24:java.lang.String getRuleDescription():313 -> c
    25:25:cn.thinkingdata.strategy.rules.annotation.Rule getRuleAnnotation():294:294 -> c
    25:25:java.lang.String getRuleDescription():313 -> c
    26:31:java.lang.annotation.Annotation cn.thinkingdata.strategy.rules.core.Utils.findAnnotation(java.lang.Class,java.lang.Class):13:18 -> c
    26:31:cn.thinkingdata.strategy.rules.annotation.Rule getRuleAnnotation():294 -> c
    26:31:java.lang.String getRuleDescription():313 -> c
    32:32:cn.thinkingdata.strategy.rules.annotation.Rule getRuleAnnotation():294:294 -> c
    32:32:java.lang.String getRuleDescription():313 -> c
    33:35:java.lang.String getRuleDescription():314:316 -> c
    1:1:java.lang.String getRuleName():300:300 -> d
    2:2:java.lang.Class getTargetClass():343:343 -> d
    2:2:cn.thinkingdata.strategy.rules.annotation.Rule getRuleAnnotation():294 -> d
    2:2:java.lang.String getRuleName():301 -> d
    3:3:cn.thinkingdata.strategy.rules.annotation.Rule getRuleAnnotation():294:294 -> d
    3:3:java.lang.String getRuleName():301 -> d
    4:9:java.lang.annotation.Annotation cn.thinkingdata.strategy.rules.core.Utils.findAnnotation(java.lang.Class,java.lang.Class):13:18 -> d
    4:9:cn.thinkingdata.strategy.rules.annotation.Rule getRuleAnnotation():294 -> d
    4:9:java.lang.String getRuleName():301 -> d
    10:10:cn.thinkingdata.strategy.rules.annotation.Rule getRuleAnnotation():294:294 -> d
    10:10:java.lang.String getRuleName():301 -> d
    11:13:java.lang.String getRuleName():302:304 -> d
    1:1:int getRulePriority():224:224 -> e
    2:2:java.lang.Class getTargetClass():343:343 -> e
    2:2:cn.thinkingdata.strategy.rules.annotation.Rule getRuleAnnotation():294 -> e
    2:2:int getRulePriority():227 -> e
    3:3:cn.thinkingdata.strategy.rules.annotation.Rule getRuleAnnotation():294:294 -> e
    3:3:int getRulePriority():227 -> e
    4:9:java.lang.annotation.Annotation cn.thinkingdata.strategy.rules.core.Utils.findAnnotation(java.lang.Class,java.lang.Class):13:18 -> e
    4:9:cn.thinkingdata.strategy.rules.annotation.Rule getRuleAnnotation():294 -> e
    4:9:int getRulePriority():227 -> e
    10:10:cn.thinkingdata.strategy.rules.annotation.Rule getRuleAnnotation():294:294 -> e
    10:10:int getRulePriority():227 -> e
    11:24:int getRulePriority():228:241 -> e
    1:8:java.lang.Object invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]):74:81 -> invoke
    9:9:java.lang.Object evaluateMethod(java.lang.Object[]):100:100 -> invoke
    9:9:java.lang.Object invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]):85 -> invoke
    10:19:java.lang.reflect.Method getConditionMethod():245:254 -> invoke
    10:19:java.lang.Object evaluateMethod(java.lang.Object[]):101 -> invoke
    10:19:java.lang.Object invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]):85 -> invoke
    20:21:java.lang.Object evaluateMethod(java.lang.Object[]):103:104 -> invoke
    20:21:java.lang.Object invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]):85 -> invoke
    22:25:int hashCodeMethod():179:182 -> invoke
    22:25:java.lang.Object invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]):91 -> invoke
    26:26:java.lang.Object invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]):91:91 -> invoke
    27:27:java.lang.Object invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]):77:77 -> invoke
    28:44:boolean equalsMethod(java.lang.Object[]):159:175 -> invoke
    28:44:java.lang.Object invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]):89 -> invoke
    45:45:java.lang.Object invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]):89:89 -> invoke
    46:47:java.lang.Object executeMethod(java.lang.Object[]):117:118 -> invoke
    46:47:java.lang.Object invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]):87 -> invoke
    48:48:java.lang.reflect.Method cn.thinkingdata.strategy.rules.core.ActionMethodOrderBean.getMethod():28:28 -> invoke
    48:48:java.lang.Object executeMethod(java.lang.Object[]):119 -> invoke
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    48:48:java.lang.Object invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]):87 -> invoke
    49:50:java.lang.Object executeMethod(java.lang.Object[]):120:121 -> invoke
    49:50:java.lang.Object invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]):87 -> invoke
    51:60:java.lang.reflect.Method getCompareToMethod():273:282 -> invoke
    51:60:java.lang.Object compareToMethod(java.lang.Object[]):127 -> invoke
    51:60:java.lang.Object invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]):83 -> invoke
    61:67:java.lang.Object compareToMethod(java.lang.Object[]):128:134 -> invoke
    61:67:java.lang.Object invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]):83 -> invoke
    68:68:java.lang.Object getTarget():339:339 -> invoke
    68:68:java.lang.Object compareToMethod(java.lang.Object[]):134 -> invoke
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    68:68:java.lang.Object invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]):83 -> invoke
    69:71:java.lang.Object compareToMethod(java.lang.Object[]):134:136 -> invoke
    69:71:java.lang.Object invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]):83 -> invoke
    72:81:int compareTo(cn.thinkingdata.strategy.rules.api.Rule):210:219 -> invoke
    72:81:java.lang.Object compareToMethod(java.lang.Object[]):136 -> invoke
    72:81:java.lang.Object invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]):83 -> invoke
    82:82:java.lang.Object compareToMethod(java.lang.Object[]):136:136 -> invoke
    82:82:java.lang.Object invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]):83 -> invoke
    83:92:java.lang.reflect.Method getToStringMethod():188:197 -> invoke
    83:92:java.lang.String toStringMethod():201 -> invoke
    83:92:java.lang.Object invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]):93 -> invoke
    93:95:java.lang.String toStringMethod():203:205 -> invoke
    93:95:java.lang.Object invoke(java.lang.Object,java.lang.reflect.Method,java.lang.Object[]):93 -> invoke
cn.thinkingdata.strategy.rules.core.Utils -> R8$$REMOVED$$CLASS$$0:
# {"id":"sourceFile","fileName":"Utils.java"}
cn.thinkingdata.strategy.rules.filters.analytic.AbstractCountRule -> cn.thinkingdata.strategy.rules.filters.analytic.AbstractCountRule:
# {"id":"sourceFile","fileName":"AbstractCountRule.java"}
    cn.thinkingdata.strategy.core.trigger.AbstractTriggerRule triggerRule -> triggerRule
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/trigger/a;"}
    1:8:void <init>(org.json.JSONObject,cn.thinkingdata.strategy.core.trigger.AbstractTriggerRule):20:27 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lorg/json/JSONObject;Lcn/thinkingdata/strategy/core/trigger/a;)V"}
cn.thinkingdata.strategy.rules.filters.analytic.EventCountRule -> cn.thinkingdata.strategy.rules.filters.analytic.EventCountRule:
# {"id":"sourceFile","fileName":"EventCountRule.java"}
    1:1:void <init>(org.json.JSONObject,cn.thinkingdata.strategy.core.trigger.AbstractTriggerRule):31:31 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lorg/json/JSONObject;Lcn/thinkingdata/strategy/core/trigger/a;)V"}
    1:12:android.util.Pair getEventCount(java.util.List,org.json.JSONObject):88:99 -> getEventCount
    1:1:java.lang.String getQuota():39:39 -> getQuota
    1:17:boolean when(cn.thinkingdata.strategy.rules.api.Facts):45:61 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    18:18:boolean cn.thinkingdata.strategy.core.trigger.AbstractTriggerRule.isWithInPeriod():75:75 -> when
    18:18:boolean when(cn.thinkingdata.strategy.rules.api.Facts):61 -> when
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    19:19:boolean cn.thinkingdata.strategy.core.trigger.AbstractTriggerRule.isWithInPeriod():76:76 -> when
    19:19:boolean when(cn.thinkingdata.strategy.rules.api.Facts):61 -> when
    20:31:boolean when(cn.thinkingdata.strategy.rules.api.Facts):64:75 -> when
cn.thinkingdata.strategy.rules.filters.analytic.PropertySumCountRule -> cn.thinkingdata.strategy.rules.filters.analytic.PropertySumCountRule:
# {"id":"sourceFile","fileName":"PropertySumCountRule.java"}
    1:3:void <init>(org.json.JSONObject,cn.thinkingdata.strategy.core.trigger.AbstractTriggerRule,java.lang.String,java.lang.String):27:29 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lorg/json/JSONObject;Lcn/thinkingdata/strategy/core/trigger/a;Ljava/lang/String;Ljava/lang/String;)V"}
    1:31:double getPropertyCount(cn.thinkingdata.strategy.rules.api.Facts):40:70 -> getPropertyCount
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)D"}
    1:1:java.lang.String getQuota():34:34 -> getQuota
    1:1:boolean isMeetCondition(double,double):83:83 -> isMeetCondition
cn.thinkingdata.strategy.rules.filters.analytic.SequenceCountRule -> cn.thinkingdata.strategy.rules.filters.analytic.SequenceCountRule:
# {"id":"sourceFile","fileName":"SequenceCountRule.java"}
    1:1:void <init>(org.json.JSONObject,cn.thinkingdata.strategy.core.trigger.AbstractTriggerRule):32:32 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lorg/json/JSONObject;Lcn/thinkingdata/strategy/core/trigger/a;)V"}
cn.thinkingdata.strategy.rules.filters.contition.ARRAY_INCLUDE_ITEMRule -> cn.thinkingdata.strategy.rules.filters.contition.ARRAY_INCLUDE_ITEMRule:
# {"id":"sourceFile","fileName":"ARRAY_INCLUDE_ITEMRule.java"}
    1:1:void <init>(org.json.JSONObject):25:25 -> <init>
    1:2:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):30:31 -> executeWhen
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Object;Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    1:2:boolean isArrayVarCondition(java.util.List):37:38 -> isArrayVarCondition
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):45:45 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.ARRAY_ITEM_POSRule -> cn.thinkingdata.strategy.rules.filters.contition.ARRAY_ITEM_POSRule:
# {"id":"sourceFile","fileName":"ARRAY_ITEM_POSRule.java"}
    1:2:void <init>(org.json.JSONObject,double):33:34 -> <init>
    1:24:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):39:62 -> executeWhen
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Object;Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    25:32:org.json.JSONObject cn.thinkingdata.strategy.utils.CommonUtils.buildArrayPositionRule(java.lang.String,java.lang.String,org.json.JSONArray):189:196 -> executeWhen
    25:32:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):62 -> executeWhen
    33:37:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):64:68 -> executeWhen
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):76:76 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.ARRAY_NON_NULLRule -> cn.thinkingdata.strategy.rules.filters.contition.ARRAY_NON_NULLRule:
# {"id":"sourceFile","fileName":"ARRAY_NON_NULLRule.java"}
    1:1:void <init>(org.json.JSONObject):21:21 -> <init>
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):31:31 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.ARRAY_NULLRule -> cn.thinkingdata.strategy.rules.filters.contition.ARRAY_NULLRule:
# {"id":"sourceFile","fileName":"ARRAY_NULLRule.java"}
    1:1:void <init>(org.json.JSONObject):21:21 -> <init>
    1:6:boolean when(cn.thinkingdata.strategy.rules.api.Facts):32:37 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.ARRAY_ROW_ALL_INCLUDERule -> cn.thinkingdata.strategy.rules.filters.contition.ARRAY_ROW_ALL_INCLUDERule:
# {"id":"sourceFile","fileName":"ARRAY_ROW_ALL_INCLUDERule.java"}
    1:1:void <init>(org.json.JSONObject,double):21:21 -> <init>
    1:3:boolean isRowTypeCondition(cn.thinkingdata.strategy.rules.support.composite.CompositeRule,java.util.List,java.lang.Object):32:34 -> isRowTypeCondition
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):26:26 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.ARRAY_ROW_EXIST_INCLUDERule -> cn.thinkingdata.strategy.rules.filters.contition.ARRAY_ROW_EXIST_INCLUDERule:
# {"id":"sourceFile","fileName":"ARRAY_ROW_EXIST_INCLUDERule.java"}
    1:2:void <init>(org.json.JSONObject,double):31:32 -> <init>
    1:1:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):42:42 -> executeWhen
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Object;Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    2:26:java.util.List cn.thinkingdata.strategy.utils.CommonUtils.getFactList(java.lang.Object):246:270 -> executeWhen
    2:26:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):43 -> executeWhen
    27:52:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):44:69 -> executeWhen
    1:3:boolean isRowTypeCondition(cn.thinkingdata.strategy.rules.support.composite.CompositeRule,java.util.List,java.lang.Object):79:81 -> isRowTypeCondition
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):37:37 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.ARRAY_ROW_NONE_EXISTRule -> cn.thinkingdata.strategy.rules.filters.contition.ARRAY_ROW_NONE_EXISTRule:
# {"id":"sourceFile","fileName":"ARRAY_ROW_NONE_EXISTRule.java"}
    1:1:void <init>(org.json.JSONObject,double):26:26 -> <init>
    1:3:boolean isRowTypeCondition(cn.thinkingdata.strategy.rules.support.composite.CompositeRule,java.util.List,java.lang.Object):37:39 -> isRowTypeCondition
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):31:31 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.ARRAY_UN_INCLUDE_ITEMRule -> cn.thinkingdata.strategy.rules.filters.contition.ARRAY_UN_INCLUDE_ITEMRule:
# {"id":"sourceFile","fileName":"ARRAY_UN_INCLUDE_ITEMRule.java"}
    1:1:void <init>(org.json.JSONObject):24:24 -> <init>
    1:2:boolean isArrayVarCondition(java.util.List):34:35 -> isArrayVarCondition
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):29:29 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.BOOLEAN_FALSERule -> cn.thinkingdata.strategy.rules.filters.contition.BOOLEAN_FALSERule:
# {"id":"sourceFile","fileName":"BOOLEAN_FALSERule.java"}
    1:1:void <init>(org.json.JSONObject):21:21 -> <init>
    1:2:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):31:32 -> executeWhen
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Object;Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):26:26 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.BOOLEAN_TRUERule -> cn.thinkingdata.strategy.rules.filters.contition.BOOLEAN_TRUERule:
# {"id":"sourceFile","fileName":"BOOLEAN_TRUERule.java"}
    1:1:void <init>(org.json.JSONObject):23:23 -> <init>
    1:2:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):33:34 -> executeWhen
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Object;Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):28:28 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.EQRule -> cn.thinkingdata.strategy.rules.filters.contition.EQRule:
# {"id":"sourceFile","fileName":"EQRule.java"}
    1:1:void <init>(org.json.JSONObject):26:26 -> <init>
    1:45:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):36:80 -> executeWhen
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Object;Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    46:49:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):38:41 -> executeWhen
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):31:31 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.GTERule -> cn.thinkingdata.strategy.rules.filters.contition.GTERule:
# {"id":"sourceFile","fileName":"GTERule.java"}
    1:2:void <init>(org.json.JSONObject,double):28:29 -> <init>
    1:22:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):39:60 -> executeWhen
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Object;Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):34:34 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.GTRule -> cn.thinkingdata.strategy.rules.filters.contition.GTRule:
# {"id":"sourceFile","fileName":"GTRule.java"}
    1:1:void <init>(org.json.JSONObject):23:23 -> <init>
    1:17:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):33:49 -> executeWhen
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Object;Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):28:28 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.INCLUDERule -> cn.thinkingdata.strategy.rules.filters.contition.INCLUDERule:
# {"id":"sourceFile","fileName":"INCLUDERule.java"}
    1:1:void <init>(org.json.JSONObject):24:24 -> <init>
    1:5:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):34:38 -> executeWhen
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Object;Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):29:29 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.LTERule -> cn.thinkingdata.strategy.rules.filters.contition.LTERule:
# {"id":"sourceFile","fileName":"LTERule.java"}
    1:2:void <init>(org.json.JSONObject,double):28:29 -> <init>
    1:22:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):39:60 -> executeWhen
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Object;Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):34:34 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.LTRule -> cn.thinkingdata.strategy.rules.filters.contition.LTRule:
# {"id":"sourceFile","fileName":"LTRule.java"}
    1:1:void <init>(org.json.JSONObject):24:24 -> <init>
    1:17:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):34:50 -> executeWhen
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Object;Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):29:29 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.NOT_NULLRule -> cn.thinkingdata.strategy.rules.filters.contition.NOT_NULLRule:
# {"id":"sourceFile","fileName":"NOT_NULLRule.java"}
    1:1:void <init>(org.json.JSONObject):27:27 -> <init>
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):32:32 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.NULLRule -> cn.thinkingdata.strategy.rules.filters.contition.NULLRule:
# {"id":"sourceFile","fileName":"NULLRule.java"}
    1:1:void <init>(org.json.JSONObject):29:29 -> <init>
    1:6:boolean when(cn.thinkingdata.strategy.rules.api.Facts):35:40 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.PropertiesRule -> cn.thinkingdata.strategy.rules.filters.contition.PropertiesRule:
# {"id":"sourceFile","fileName":"PropertiesRule.java"}
    1:21:void <init>(org.json.JSONObject):27:47 -> <init>
    1:11:boolean isCondition(cn.thinkingdata.strategy.rules.api.Facts):53:63 -> isCondition
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    1:1:boolean isPresetProperties(java.lang.String):71:71 -> isPresetProperties
cn.thinkingdata.strategy.rules.filters.contition.RANGERule -> cn.thinkingdata.strategy.rules.filters.contition.RANGERule:
# {"id":"sourceFile","fileName":"RANGERule.java"}
    1:2:void <init>(org.json.JSONObject,double):30:31 -> <init>
    1:27:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):41:67 -> executeWhen
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Object;Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):36:36 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.REGULAR_MATCHRule -> cn.thinkingdata.strategy.rules.filters.contition.REGULAR_MATCHRule:
# {"id":"sourceFile","fileName":"REGULAR_MATCHRule.java"}
    1:1:void <init>(org.json.JSONObject):24:24 -> <init>
    1:7:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):34:40 -> executeWhen
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Object;Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):29:29 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.RELATIVE_CURRENT_TIMERule -> cn.thinkingdata.strategy.rules.filters.contition.RELATIVE_CURRENT_TIMERule:
# {"id":"sourceFile","fileName":"RELATIVE_CURRENT_TIMERule.java"}
    1:1:void <init>(org.json.JSONObject):25:25 -> <init>
    1:12:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):36:47 -> executeWhen
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Object;Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    1:7:long getTargetTimeStamp(cn.thinkingdata.strategy.rules.api.Facts):62:68 -> getTargetTimeStamp
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)J"}
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):30:30 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.RELATIVE_EVENT_TIMERule -> cn.thinkingdata.strategy.rules.filters.contition.RELATIVE_EVENT_TIMERule:
# {"id":"sourceFile","fileName":"RELATIVE_EVENT_TIMERule.java"}
    1:1:void <init>(org.json.JSONObject):31:31 -> <init>
    1:29:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):41:69 -> executeWhen
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Object;Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    1:7:android.util.Pair getDayTimeStamp(cn.thinkingdata.strategy.rules.api.Facts):95:101 -> getDayTimeStamp
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Landroid/util/Pair;"}
    1:1:int getMillis():77:77 -> getMillis
    1:10:android.util.Pair getMonthTimeStamp(cn.thinkingdata.strategy.rules.api.Facts):118:127 -> getMonthTimeStamp
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Landroid/util/Pair;"}
    1:7:long getTargetTimeStamp(cn.thinkingdata.strategy.rules.api.Facts):132:138 -> getTargetTimeStamp
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)J"}
    1:10:android.util.Pair getWeekTimeStamp(cn.thinkingdata.strategy.rules.api.Facts):105:114 -> getWeekTimeStamp
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Landroid/util/Pair;"}
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):36:36 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.UN_EQRule -> cn.thinkingdata.strategy.rules.filters.contition.UN_EQRule:
# {"id":"sourceFile","fileName":"UN_EQRule.java"}
    1:1:void <init>(org.json.JSONObject):22:22 -> <init>
    1:50:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):32:81 -> executeWhen
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Object;Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):27:27 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.UN_INCLUDERule -> cn.thinkingdata.strategy.rules.filters.contition.UN_INCLUDERule:
# {"id":"sourceFile","fileName":"UN_INCLUDERule.java"}
    1:1:void <init>(org.json.JSONObject):22:22 -> <init>
    1:6:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):32:37 -> executeWhen
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Object;Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):27:27 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.contition.UN_REGULAR_MATCHRule -> cn.thinkingdata.strategy.rules.filters.contition.UN_REGULAR_MATCHRule:
# {"id":"sourceFile","fileName":"UN_REGULAR_MATCHRule.java"}
    1:1:void <init>(org.json.JSONObject):23:23 -> <init>
    1:7:boolean executeWhen(java.lang.Object,cn.thinkingdata.strategy.rules.api.Facts):33:39 -> executeWhen
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Object;Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    1:1:boolean when(cn.thinkingdata.strategy.rules.api.Facts):28:28 -> when
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
cn.thinkingdata.strategy.rules.filters.factory.RuleFactory -> cn.thinkingdata.strategy.rules.filters.factory.RuleFactory:
# {"id":"sourceFile","fileName":"RuleFactory.java"}
    1:1:void <init>():20:20 -> <init>
    1:9:java.lang.Object createAnalyticsRule(org.json.JSONObject,cn.thinkingdata.strategy.core.trigger.AbstractTriggerRule):82:90 -> createAnalyticsRule
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lorg/json/JSONObject;Lcn/thinkingdata/strategy/core/trigger/a;)Ljava/lang/Object;"}
    1:14:java.lang.Object createFilterRule(org.json.JSONObject,double):23:36 -> createFilterRule
    15:57:java.lang.Object createFilterRule(org.json.JSONObject,double):32:74 -> createFilterRule
    58:58:java.lang.Object createFilterRule(org.json.JSONObject,double):72:72 -> createFilterRule
    59:59:java.lang.Object createFilterRule(org.json.JSONObject,double):70:70 -> createFilterRule
    60:60:java.lang.Object createFilterRule(org.json.JSONObject,double):68:68 -> createFilterRule
    61:61:java.lang.Object createFilterRule(org.json.JSONObject,double):66:66 -> createFilterRule
    62:62:java.lang.Object createFilterRule(org.json.JSONObject,double):64:64 -> createFilterRule
    63:63:java.lang.Object createFilterRule(org.json.JSONObject,double):62:62 -> createFilterRule
    64:64:java.lang.Object createFilterRule(org.json.JSONObject,double):60:60 -> createFilterRule
    65:65:java.lang.Object createFilterRule(org.json.JSONObject,double):58:58 -> createFilterRule
    66:66:java.lang.Object createFilterRule(org.json.JSONObject,double):56:56 -> createFilterRule
    67:67:java.lang.Object createFilterRule(org.json.JSONObject,double):54:54 -> createFilterRule
    68:68:java.lang.Object createFilterRule(org.json.JSONObject,double):52:52 -> createFilterRule
    69:69:java.lang.Object createFilterRule(org.json.JSONObject,double):50:50 -> createFilterRule
    70:70:java.lang.Object createFilterRule(org.json.JSONObject,double):48:48 -> createFilterRule
    71:71:java.lang.Object createFilterRule(org.json.JSONObject,double):46:46 -> createFilterRule
    72:72:java.lang.Object createFilterRule(org.json.JSONObject,double):44:44 -> createFilterRule
    73:73:java.lang.Object createFilterRule(org.json.JSONObject,double):42:42 -> createFilterRule
    74:74:java.lang.Object createFilterRule(org.json.JSONObject,double):40:40 -> createFilterRule
    75:75:java.lang.Object createFilterRule(org.json.JSONObject,double):38:38 -> createFilterRule
    76:76:java.lang.Object createFilterRule(org.json.JSONObject,double):34:34 -> createFilterRule
    77:77:java.lang.Object createFilterRule(org.json.JSONObject,double):30:30 -> createFilterRule
    78:78:java.lang.Object createFilterRule(org.json.JSONObject,double):28:28 -> createFilterRule
    79:79:java.lang.Object createFilterRule(org.json.JSONObject,double):26:26 -> createFilterRule
cn.thinkingdata.strategy.rules.support.AbstractRuleFactory -> cn.thinkingdata.strategy.rules.support.AbstractRuleFactory:
# {"id":"sourceFile","fileName":"AbstractRuleFactory.java"}
    1:1:void <clinit>():47:47 -> <clinit>
    2:2:void <clinit>():44:44 -> <clinit>
    1:1:void <init>():40:40 -> <init>
    1:28:cn.thinkingdata.strategy.rules.api.Rule createCompositeRule(cn.thinkingdata.strategy.rules.support.RuleDefinition):61:88 -> createCompositeRule
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/support/RuleDefinition;)Lcn/thinkingdata/strategy/rules/api/c;"}
    29:44:cn.thinkingdata.strategy.rules.api.Rule createCompositeRule(cn.thinkingdata.strategy.rules.support.RuleDefinition):79:94 -> createCompositeRule
    1:4:cn.thinkingdata.strategy.rules.api.Rule createRule(cn.thinkingdata.strategy.rules.support.RuleDefinition):51:54 -> createRule
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/support/RuleDefinition;)Lcn/thinkingdata/strategy/rules/api/c;"}
cn.thinkingdata.strategy.rules.support.RuleDefinition -> cn.thinkingdata.strategy.rules.support.RuleDefinition:
# {"id":"sourceFile","fileName":"RuleDefinition.java"}
    1:8:void <init>():20:27 -> <init>
    1:1:java.util.List getActions():63:63 -> getActions
    1:1:java.util.List getComposingRules():83:83 -> getComposingRules
    1:1:java.lang.String getCompositeRuleType():79:79 -> getCompositeRuleType
    1:1:java.lang.String getCondition():47:47 -> getCondition
    1:1:java.lang.String getDescription():39:39 -> getDescription
    1:1:java.lang.String getName():31:31 -> getName
    1:1:int getPriority():55:55 -> getPriority
    1:1:boolean isCompositeRule():87:87 -> isCompositeRule
    1:1:void setActions(java.util.List):67:67 -> setActions
    1:1:void setComposingRules(java.util.List):71:71 -> setComposingRules
    1:1:void setCompositeRuleType(java.lang.String):75:75 -> setCompositeRuleType
    1:1:void setCondition(java.lang.String):51:51 -> setCondition
    1:1:void setDescription(java.lang.String):43:43 -> setDescription
    1:1:void setName(java.lang.String):35:35 -> setName
    1:1:void setPriority(int):59:59 -> setPriority
cn.thinkingdata.strategy.rules.support.composite.ActivationRuleGroup -> cn.thinkingdata.strategy.rules.support.composite.ActivationRuleGroup:
# {"id":"sourceFile","fileName":"ActivationRuleGroup.java"}
    cn.thinkingdata.strategy.rules.api.Rule selectedRule -> selectedRule
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/rules/api/c;"}
    1:1:void <init>():25:25 -> <init>
    2:2:void <init>(java.lang.String):35:35 -> <init>
    3:3:void <init>(java.lang.String,java.lang.String):46:46 -> <init>
    4:4:void <init>(java.lang.String,java.lang.String,int):58:58 -> <init>
    1:3:boolean evaluate(cn.thinkingdata.strategy.rules.api.Facts):70:72 -> evaluate
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    1:2:void execute(cn.thinkingdata.strategy.rules.api.Facts):81:82 -> execute
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)V"}
cn.thinkingdata.strategy.rules.support.composite.CompositeRule -> cn.thinkingdata.strategy.rules.support.composite.CompositeRule:
# {"id":"sourceFile","fileName":"CompositeRule.java"}
    1:1:void <init>():40:40 -> <init>
    2:2:void <init>(java.lang.String):49:49 -> <init>
    3:3:void <init>(java.lang.String,java.lang.String):59:59 -> <init>
    4:7:void <init>(java.lang.String,java.lang.String,int):70:73 -> <init>
    1:2:cn.thinkingdata.strategy.rules.api.Rule cn.thinkingdata.strategy.rules.core.RuleProxy.asRule(java.lang.Object):56:57 -> addRule
    1:2:void addRule(java.lang.Object):87 -> addRule
    3:3:boolean cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.isRuleClassWellDefined(java.lang.Object):91:91 -> addRule
    3:3:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.checkRuleClass(java.lang.Object):36 -> addRule
    3:3:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.validateRuleDefinition(java.lang.Object):29 -> addRule
    3:3:cn.thinkingdata.strategy.rules.api.Rule cn.thinkingdata.strategy.rules.core.RuleProxy.asRule(java.lang.Object):59 -> addRule
    3:3:void addRule(java.lang.Object):87 -> addRule
    4:4:boolean cn.thinkingdata.strategy.rules.core.Utils.isAnnotationPresent(java.lang.Class,java.lang.Class):27:27 -> addRule
    4:4:boolean cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.isRuleClassWellDefined(java.lang.Object):91 -> addRule
    4:4:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.checkRuleClass(java.lang.Object):36 -> addRule
    4:4:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.validateRuleDefinition(java.lang.Object):29 -> addRule
    4:4:cn.thinkingdata.strategy.rules.api.Rule cn.thinkingdata.strategy.rules.core.RuleProxy.asRule(java.lang.Object):59 -> addRule
    4:4:void addRule(java.lang.Object):87 -> addRule
    5:10:java.lang.annotation.Annotation cn.thinkingdata.strategy.rules.core.Utils.findAnnotation(java.lang.Class,java.lang.Class):13:18 -> addRule
    5:10:boolean cn.thinkingdata.strategy.rules.core.Utils.isAnnotationPresent(java.lang.Class,java.lang.Class):27 -> addRule
    5:10:boolean cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.isRuleClassWellDefined(java.lang.Object):91 -> addRule
    5:10:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.checkRuleClass(java.lang.Object):36 -> addRule
    5:10:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.validateRuleDefinition(java.lang.Object):29 -> addRule
    5:10:cn.thinkingdata.strategy.rules.api.Rule cn.thinkingdata.strategy.rules.core.RuleProxy.asRule(java.lang.Object):59 -> addRule
    5:10:void addRule(java.lang.Object):87 -> addRule
    11:20:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.checkConditionMethod(java.lang.Object):42:51 -> addRule
    11:20:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.validateRuleDefinition(java.lang.Object):30 -> addRule
    11:20:cn.thinkingdata.strategy.rules.api.Rule cn.thinkingdata.strategy.rules.core.RuleProxy.asRule(java.lang.Object):59 -> addRule
    11:20:void addRule(java.lang.Object):87 -> addRule
    21:23:boolean cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.isConditionMethodWellDefined(java.lang.reflect.Method):95:97 -> addRule
    21:23:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.checkConditionMethod(java.lang.Object):53 -> addRule
    21:23:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.validateRuleDefinition(java.lang.Object):30 -> addRule
    21:23:cn.thinkingdata.strategy.rules.api.Rule cn.thinkingdata.strategy.rules.core.RuleProxy.asRule(java.lang.Object):59 -> addRule
    21:23:void addRule(java.lang.Object):87 -> addRule
    24:29:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.checkActionMethods(java.lang.Object):59:64 -> addRule
    24:29:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.validateRuleDefinition(java.lang.Object):31 -> addRule
    24:29:cn.thinkingdata.strategy.rules.api.Rule cn.thinkingdata.strategy.rules.core.RuleProxy.asRule(java.lang.Object):59 -> addRule
    24:29:void addRule(java.lang.Object):87 -> addRule
    30:32:boolean cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.isActionMethodWellDefined(java.lang.reflect.Method):155:157 -> addRule
    30:32:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.checkActionMethods(java.lang.Object):65 -> addRule
    30:32:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.validateRuleDefinition(java.lang.Object):31 -> addRule
    30:32:cn.thinkingdata.strategy.rules.api.Rule cn.thinkingdata.strategy.rules.core.RuleProxy.asRule(java.lang.Object):59 -> addRule
    30:32:void addRule(java.lang.Object):87 -> addRule
    33:33:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.checkActionMethods(java.lang.Object):66:66 -> addRule
    33:33:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.validateRuleDefinition(java.lang.Object):31 -> addRule
    33:33:cn.thinkingdata.strategy.rules.api.Rule cn.thinkingdata.strategy.rules.core.RuleProxy.asRule(java.lang.Object):59 -> addRule
    33:33:void addRule(java.lang.Object):87 -> addRule
    34:44:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.checkPriorityMethod(java.lang.Object):73:83 -> addRule
    34:44:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.validateRuleDefinition(java.lang.Object):32 -> addRule
    34:44:cn.thinkingdata.strategy.rules.api.Rule cn.thinkingdata.strategy.rules.core.RuleProxy.asRule(java.lang.Object):59 -> addRule
    34:44:void addRule(java.lang.Object):87 -> addRule
    45:47:boolean cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.isPriorityMethodWellDefined(java.lang.reflect.Method):161:163 -> addRule
    45:47:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.checkPriorityMethod(java.lang.Object):85 -> addRule
    45:47:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.validateRuleDefinition(java.lang.Object):32 -> addRule
    45:47:cn.thinkingdata.strategy.rules.api.Rule cn.thinkingdata.strategy.rules.core.RuleProxy.asRule(java.lang.Object):59 -> addRule
    45:47:void addRule(java.lang.Object):87 -> addRule
    48:48:cn.thinkingdata.strategy.rules.api.Rule cn.thinkingdata.strategy.rules.core.RuleProxy.asRule(java.lang.Object):61:61 -> addRule
    48:48:void addRule(java.lang.Object):87 -> addRule
    49:49:cn.thinkingdata.strategy.rules.api.Rule cn.thinkingdata.strategy.rules.core.RuleProxy.asRule(java.lang.Object):60:60 -> addRule
    49:49:void addRule(java.lang.Object):87 -> addRule
    50:50:void addRule(java.lang.Object):88:88 -> addRule
    51:51:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.checkPriorityMethod(java.lang.Object):86:86 -> addRule
    51:51:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.validateRuleDefinition(java.lang.Object):32 -> addRule
    51:51:cn.thinkingdata.strategy.rules.api.Rule cn.thinkingdata.strategy.rules.core.RuleProxy.asRule(java.lang.Object):59 -> addRule
    51:51:void addRule(java.lang.Object):87 -> addRule
    52:52:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.checkPriorityMethod(java.lang.Object):80:80 -> addRule
    52:52:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.validateRuleDefinition(java.lang.Object):32 -> addRule
    52:52:cn.thinkingdata.strategy.rules.api.Rule cn.thinkingdata.strategy.rules.core.RuleProxy.asRule(java.lang.Object):59 -> addRule
    52:52:void addRule(java.lang.Object):87 -> addRule
    53:53:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.checkActionMethods(java.lang.Object):61:61 -> addRule
    53:53:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.validateRuleDefinition(java.lang.Object):31 -> addRule
    53:53:cn.thinkingdata.strategy.rules.api.Rule cn.thinkingdata.strategy.rules.core.RuleProxy.asRule(java.lang.Object):59 -> addRule
    53:53:void addRule(java.lang.Object):87 -> addRule
    54:54:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.checkConditionMethod(java.lang.Object) -> addRule
    54:54:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.validateRuleDefinition(java.lang.Object):30 -> addRule
    54:54:cn.thinkingdata.strategy.rules.api.Rule cn.thinkingdata.strategy.rules.core.RuleProxy.asRule(java.lang.Object):59 -> addRule
    54:54:void addRule(java.lang.Object):87 -> addRule
    55:55:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.checkConditionMethod(java.lang.Object):48:48 -> addRule
    55:55:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.validateRuleDefinition(java.lang.Object):30 -> addRule
    55:55:cn.thinkingdata.strategy.rules.api.Rule cn.thinkingdata.strategy.rules.core.RuleProxy.asRule(java.lang.Object):59 -> addRule
    55:55:void addRule(java.lang.Object):87 -> addRule
    56:56:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.checkConditionMethod(java.lang.Object):44:44 -> addRule
    56:56:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.validateRuleDefinition(java.lang.Object):30 -> addRule
    56:56:cn.thinkingdata.strategy.rules.api.Rule cn.thinkingdata.strategy.rules.core.RuleProxy.asRule(java.lang.Object):59 -> addRule
    56:56:void addRule(java.lang.Object):87 -> addRule
    57:57:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.checkRuleClass(java.lang.Object):37:37 -> addRule
    57:57:void cn.thinkingdata.strategy.rules.core.RuleDefinitionValidator.validateRuleDefinition(java.lang.Object):29 -> addRule
    57:57:cn.thinkingdata.strategy.rules.api.Rule cn.thinkingdata.strategy.rules.core.RuleProxy.asRule(java.lang.Object):59 -> addRule
    57:57:void addRule(java.lang.Object):87 -> addRule
cn.thinkingdata.strategy.rules.support.composite.ConditionalRuleGroup -> cn.thinkingdata.strategy.rules.support.composite.ConditionalRuleGroup:
# {"id":"sourceFile","fileName":"ConditionalRuleGroup.java"}
    cn.thinkingdata.strategy.rules.api.Rule conditionalRule -> conditionalRule
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/rules/api/c;"}
    1:1:void <init>():33:33 -> <init>
    2:2:void <init>(java.lang.String):42:42 -> <init>
    3:3:void <init>(java.lang.String,java.lang.String):52:52 -> <init>
    4:4:void <init>(java.lang.String,java.lang.String,int):63:63 -> <init>
    1:6:boolean evaluate(cn.thinkingdata.strategy.rules.api.Facts):75:80 -> evaluate
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    1:3:void execute(cn.thinkingdata.strategy.rules.api.Facts):99:101 -> execute
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)V"}
    1:1:java.util.List sort(java.util.Set):117:117 -> sort
cn.thinkingdata.strategy.rules.support.composite.UnitRuleGroup -> cn.thinkingdata.strategy.rules.support.composite.UnitRuleGroup:
# {"id":"sourceFile","fileName":"UnitRuleGroup.java"}
    1:1:void <init>():22:22 -> <init>
    2:2:void <init>(java.lang.String):30:30 -> <init>
    3:3:void <init>(java.lang.String,java.lang.String):39:39 -> <init>
    4:4:void <init>(java.lang.String,java.lang.String,int):49:49 -> <init>
    1:3:boolean evaluate(cn.thinkingdata.strategy.rules.api.Facts):63:65 -> evaluate
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)Z"}
    1:2:void execute(cn.thinkingdata.strategy.rules.api.Facts):76:77 -> execute
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/rules/api/b;)V"}
cn.thinkingdata.strategy.rules.support.reader.AbstractRuleDefinitionReader -> cn.thinkingdata.strategy.rules.support.reader.AbstractRuleDefinitionReader:
# {"id":"sourceFile","fileName":"AbstractRuleDefinitionReader.java"}
    1:1:void <init>():19:19 -> <init>
    1:38:cn.thinkingdata.strategy.rules.support.RuleDefinition createRuleDefinition(java.util.Map):46:83 -> createRuleDefinition
    39:39:cn.thinkingdata.strategy.rules.support.RuleDefinition createRuleDefinition(java.util.Map):75:75 -> createRuleDefinition
    40:40:cn.thinkingdata.strategy.rules.support.RuleDefinition createRuleDefinition(java.util.Map):67:67 -> createRuleDefinition
    1:4:java.util.List read(java.io.Reader):22:25 -> read
cn.thinkingdata.strategy.rules.support.reader.RuleDefinitionReader -> cn.thinkingdata.strategy.rules.support.reader.RuleDefinitionReader:
# {"id":"sourceFile","fileName":"RuleDefinitionReader.java"}
cn.thinkingdata.strategy.storage.db.CompleteTaskInfo -> cn.thinkingdata.strategy.storage.db.a:
# {"id":"sourceFile","fileName":"CompleteTaskInfo.java"}
    long _id -> a
    java.lang.String taskId -> b
    java.lang.String eventProperties -> c
    int pushType -> d
    long triggerTimeStamp -> e
    long delayTimeStamp -> f
    long endTimeStamp -> g
    1:1:void <init>():13:13 -> <init>
    1:4:boolean equals(java.lang.Object):27:30 -> equals
    1:1:int hashCode():35:35 -> hashCode
cn.thinkingdata.strategy.storage.db.FrequencyLimitInfo -> cn.thinkingdata.strategy.storage.db.b:
# {"id":"sourceFile","fileName":"FrequencyLimitInfo.java"}
    java.lang.String appId -> a
    java.lang.String userId -> b
    java.lang.String taskId -> c
    1:1:void <init>():14:14 -> <init>
    1:3:boolean equals(java.lang.Object):22:24 -> equals
    1:1:int hashCode():31:31 -> hashCode
cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper -> cn.thinkingdata.strategy.storage.db.c:
# {"id":"sourceFile","fileName":"StrategyDataBaseHelper.java"}
    java.io.File dbFile -> a
    cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper$OnDatabaseChangeListener mListener -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/core/task/b;"}
    cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper mDataBaseHelper -> c
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/storage/db/c;"}
    1:2:void <init>(android.content.Context):90:91 -> <init>
    1:10:void updateTask(cn.thinkingdata.strategy.storage.db.StrategyTaskInfo):141:150 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/storage/db/d;)V"}
    11:37:java.util.Map getTasksByUser(java.lang.String,java.lang.String):191:217 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;Ljava/lang/String;)Ljava/util/HashMap;"}
    38:43:java.util.Map getTasksByUser(java.lang.String,java.lang.String):214:219 -> a
    44:77:java.util.List getTriggerResultList(cn.thinkingdata.strategy.storage.db.TriggerResultInfo,long,long):264:297 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/storage/db/f;JJ)Ljava/util/ArrayList;"}
    78:83:java.util.List getTriggerResultList(cn.thinkingdata.strategy.storage.db.TriggerResultInfo,long,long):294:299 -> a
    84:99:void addTriggerResult(cn.thinkingdata.strategy.storage.db.TriggerResultInfo):379:394 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/storage/db/f;)V"}
    100:109:void deleteCompleteTaskByIds(java.util.List):498:507 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/util/ArrayList;)V"}
    110:116:void deleteTriggerResult(java.lang.String,java.lang.String,java.lang.String):513:519 -> a
    117:127:void deleteTriggerResultByIds(java.util.List):546:556 -> a
    128:144:void deleteTriggerResultByKey(java.util.List,java.lang.String):562:578 -> a
    145:161:void deleteFrequencyByLimit():632:648 -> a
    1:17:void deleteTaskByLimit():168:184 -> b
    1:16:void deleteTriggerResultLimit():525:540 -> c
    1:1:cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper getHelper():79:79 -> d
      # {"id":"com.android.tools.r8.residualsignature","signature":"()Lcn/thinkingdata/strategy/storage/db/c;"}
    2:2:boolean cn.thinkingdata.strategy.utils.FileUtils.isDatabaseExists(java.io.File):17:17 -> d
    2:2:cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper getHelper():79 -> d
    3:5:cn.thinkingdata.strategy.storage.db.StrategyDataBaseHelper getHelper():80:82 -> d
    1:3:boolean isDbModified():714:716 -> e
    4:4:java.lang.String cn.thinkingdata.strategy.utils.SpUtils.getString(java.lang.String,java.lang.String):44:44 -> e
    4:4:boolean isDbModified():716 -> e
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    5:5:java.lang.String cn.thinkingdata.strategy.utils.SpUtils.getString(java.lang.String,java.lang.String):45:45 -> e
    5:5:boolean isDbModified():716 -> e
    6:19:boolean isDbModified():719:732 -> e
    20:20:void cn.thinkingdata.strategy.core.task.TaskFlowManager$1.onDbModified():63:63 -> e
    20:20:boolean isDbModified():733 -> e
      # {"id":"com.android.tools.r8.rewriteFrame","conditions":["throws(Ljava/lang/NullPointerException;)"],"actions":["removeInnerFrames(1)"]}
    21:21:void cn.thinkingdata.strategy.core.task.TaskFlowManager$1.onDbModified():63:63 -> e
    21:21:boolean isDbModified():733 -> e
    22:22:void cn.thinkingdata.strategy.core.task.TaskFlowManager.clearAllTasks():279:279 -> e
    22:22:void cn.thinkingdata.strategy.core.task.TaskFlowManager$1.onDbModified():63 -> e
    22:22:boolean isDbModified():733 -> e
    23:23:boolean isDbModified():739:739 -> e
    1:6:void updateModifyInfo():702:707 -> f
    1:5:void onCreate(android.database.sqlite.SQLiteDatabase):97:101 -> onCreate
    1:32:java.util.List getAllTriggerResult(android.database.sqlite.SQLiteDatabase):225:256 -> onUpgrade
    1:32:void onUpgrade(android.database.sqlite.SQLiteDatabase,int,int):107 -> onUpgrade
    33:33:java.util.List getAllTriggerResult(android.database.sqlite.SQLiteDatabase):253:253 -> onUpgrade
    33:33:void onUpgrade(android.database.sqlite.SQLiteDatabase,int,int):107 -> onUpgrade
    34:36:void onUpgrade(android.database.sqlite.SQLiteDatabase,int,int):109:111 -> onUpgrade
    37:54:void migrateEventData(android.database.sqlite.SQLiteDatabase,java.util.List):356:373 -> onUpgrade
    37:54:void onUpgrade(android.database.sqlite.SQLiteDatabase,int,int):113 -> onUpgrade
    55:55:void onUpgrade(android.database.sqlite.SQLiteDatabase,int,int):115:115 -> onUpgrade
    56:58:java.util.List getAllTriggerResult(android.database.sqlite.SQLiteDatabase):256:258 -> onUpgrade
    56:58:void onUpgrade(android.database.sqlite.SQLiteDatabase,int,int):107 -> onUpgrade
    59:59:void onUpgrade(android.database.sqlite.SQLiteDatabase,int,int):117:117 -> onUpgrade
cn.thinkingdata.strategy.storage.db.StrategyTaskInfo -> cn.thinkingdata.strategy.storage.db.d:
# {"id":"sourceFile","fileName":"StrategyTaskInfo.java"}
    java.lang.String appId -> a
    java.lang.String userId -> b
    java.lang.String taskId -> c
    java.lang.String task -> d
    long taskVersion -> e
    1:1:void <init>():12:12 -> <init>
cn.thinkingdata.strategy.storage.db.TouchLimitInfo -> cn.thinkingdata.strategy.storage.db.e:
# {"id":"sourceFile","fileName":"TouchLimitInfo.java"}
    java.lang.String appId -> a
    java.lang.String pushId -> b
    java.lang.String channelId -> c
    1:4:void <init>(java.lang.String,java.lang.String,java.lang.String):16:19 -> <init>
cn.thinkingdata.strategy.storage.db.TriggerResultInfo -> cn.thinkingdata.strategy.storage.db.f:
# {"id":"sourceFile","fileName":"TriggerResultInfo.java"}
    long _id -> a
    java.lang.String appId -> b
    java.lang.String userId -> c
    java.lang.String taskId -> d
    int triggerId -> e
    java.lang.String key -> f
    double result -> g
    long triggerTimestamp -> h
    java.lang.String relationProperties -> i
    1:1:void <init>():10:10 -> <init>
cn.thinkingdata.strategy.task.StrategyTaskManager -> cn.thinkingdata.strategy.task.b:
# {"id":"sourceFile","fileName":"StrategyTaskManager.java"}
    java.util.concurrent.ExecutorService executor -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/concurrent/ThreadPoolExecutor;"}
    cn.thinkingdata.strategy.task.StrategyTaskManager instance -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/task/b;"}
    1:2:void <init>():23:24 -> <init>
    1:8:cn.thinkingdata.strategy.task.StrategyTaskManager getInstance():35:42 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"()Lcn/thinkingdata/strategy/task/b;"}
    9:11:void addTask(java.lang.Runnable):47:49 -> a
cn.thinkingdata.strategy.task.StrategyTaskManager$1 -> cn.thinkingdata.strategy.task.a:
# {"id":"sourceFile","fileName":"StrategyTaskManager.java"}
    1:1:void <init>(cn.thinkingdata.strategy.task.StrategyTaskManager):26:26 -> <init>
      # {"id":"com.android.tools.r8.residualsignature","signature":"()V"}
    1:1:java.lang.Thread newThread(java.lang.Runnable):29:29 -> newThread
cn.thinkingdata.strategy.utils.AnalyticUtils -> cn.thinkingdata.strategy.utils.a:
# {"id":"sourceFile","fileName":"AnalyticUtils.java"}
    java.lang.String[] eventBlackList -> a
    java.lang.String[] eventWhiteList -> b
    java.lang.String[] completeEventList -> c
    java.util.List hasTrackTestTaskIds -> d
      # {"id":"com.android.tools.r8.residualsignature","signature":"Ljava/util/ArrayList;"}
    1:5:void <clinit>():52:56 -> <clinit>
    1:2:void trackTriggerEvent(cn.thinkingdata.strategy.core.trigger.entity.ClientTriggerRecord):69:69 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lcn/thinkingdata/strategy/core/trigger/entity/a;)V"}
    4:15:void trackTriggerEvent(cn.thinkingdata.strategy.core.trigger.entity.ClientTriggerRecord):71:82 -> a
    16:23:void track(java.lang.String,org.json.JSONObject,java.lang.String,int):125:132 -> a
    24:24:cn.thinkingdata.core.router.provider.IAnalyticsProvider getAnalyticProvider():153:153 -> a
    25:42:cn.thinkingdata.strategy.rules.api.Facts buildAnalyticPresetFacts(java.lang.String):178:195 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;)Lcn/thinkingdata/strategy/rules/api/b;"}
    1:5:long getCurrentTimeStamp():136:140 -> b
cn.thinkingdata.strategy.utils.CommonUtils -> cn.thinkingdata.strategy.utils.b:
# {"id":"sourceFile","fileName":"CommonUtils.java"}
    1:22:cn.thinkingdata.strategy.rules.api.Facts jsonToFacts(org.json.JSONObject):37:58 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Lorg/json/JSONObject;)Lcn/thinkingdata/strategy/rules/api/b;"}
    23:42:cn.thinkingdata.strategy.rules.support.composite.CompositeRule parseCompound(int,org.json.JSONArray,double):64:83 -> a
    43:59:org.json.JSONObject buildC24Rule(java.lang.String,org.json.JSONObject,int):164:180 -> a
    43:59:cn.thinkingdata.strategy.rules.support.composite.CompositeRule parseCompound(int,org.json.JSONArray,double):84 -> a
    60:69:cn.thinkingdata.strategy.rules.support.composite.CompositeRule parseCompound(int,org.json.JSONArray,double):86:95 -> a
    70:92:cn.thinkingdata.strategy.rules.support.composite.CompositeRule parseCompound(int,org.json.JSONArray,double,java.util.List):104:126 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(ILorg/json/JSONArray;DLjava/util/ArrayList;)Lcn/thinkingdata/strategy/rules/support/composite/CompositeRule;"}
    93:103:void parseStartTime(java.lang.String,cn.thinkingdata.strategy.core.period.PeriodScrollInfo):137:147 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;Lcn/thinkingdata/strategy/core/period/n;)V"}
    104:111:java.lang.Object buildEventNameRule(java.lang.String):152:159 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;)Lcn/thinkingdata/strategy/rules/filters/contition/EQRule;"}
    112:115:java.lang.String getLogFormatTime(long):203:206 -> a
    116:122:long getTimeStampForObj(java.lang.Object,java.lang.Object):221:227 -> a
    123:143:java.util.List getValueList(java.lang.Object):276:296 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Object;)Ljava/util/ArrayList;"}
cn.thinkingdata.strategy.utils.FileUtils -> R8$$REMOVED$$CLASS$$1:
# {"id":"sourceFile","fileName":"FileUtils.java"}
cn.thinkingdata.strategy.utils.SpUtils -> cn.thinkingdata.strategy.utils.c:
# {"id":"sourceFile","fileName":"SpUtils.java"}
    android.content.SharedPreferences sp -> a
    cn.thinkingdata.strategy.utils.SpUtils instance -> b
      # {"id":"com.android.tools.r8.residualsignature","signature":"Lcn/thinkingdata/strategy/utils/c;"}
    1:1:void <init>():20:20 -> <init>
    1:4:cn.thinkingdata.strategy.utils.SpUtils getInstance():28:31 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"()Lcn/thinkingdata/strategy/utils/c;"}
    5:7:void putString(java.lang.String,java.lang.String,boolean):35:37 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/String;)V"}
    8:9:void putBoolean(java.lang.String,boolean):59:60 -> a
cn.thinkingdata.strategy.utils.TDStrategyLog -> cn.thinkingdata.strategy.utils.d:
# {"id":"sourceFile","fileName":"TDStrategyLog.java"}
    boolean mEnableLog -> a
    1:2:void i(java.lang.String):24:25 -> a
    3:4:void e(java.lang.Throwable):42:43 -> a
      # {"id":"com.android.tools.r8.residualsignature","signature":"(Ljava/lang/Exception;)V"}
