public static DexAnalysisState getState(Program program, Address address) throws IOException {
		PropertyValueSupplier<DexAnalysisState, IOException> supplier = () -> {
			DexHeader dexHeader = DexHeaderFactory.getDexHeader(program, address);
			return new DexAnalysisState(program, dexHeader);
		};
		return !SystemUtilities.isInDevelopmentMode()
				? TransientProgramProperties.getProperty(program, DexAnalysisState.class,
					SCOPE.PROGRAM, DexAnalysisState.class, supplier)
				: supplier.get();

	}
Return shared/persistent {@link DexAnalysisState} which corresponds to the 
specified program instance.

@param program is the specified program instance
@param address address of the dex header
@return <code>DexAnalysisState</code> for specified program instance
@throws IOException if there are problems during construction of the state object
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/android/dex/analyzer/DexAnalysisState.java