text:
% Calculates the fourier-transformed dipole response on a spatial grid, using the
% Lewenstein model as implemented in hhgmax_lewenstein.cpp.
%
% Parameters:
%   t_cmc - the time axis in comoving coordinates, in scaled atomic units,
%           i.e. in units of 1/omega_driving_field (must be equally spaced)
%   xv - array of x values
%   yv - array of y values
%   zv - array of z values
%   config - struct() of following fields:
%     config.wavelength - driving field wavelength in millimeters
%     config.driving_field - name of a .m file (without the .m) containing a
%                            function driving_field(x,y,z,config) that
%                            calculates the time-dependent driving field
%                            (note: not using function handle in order to
%                            maintain octave compatibility, which does not
%                            support isequal on function handles until 3.4)
%     config.precomputed_driving_field -
%       name of a folder, containing precomputed data for the driving field; if
%       given, the option config.driving_field is ignored and can be omitted.
%       The folder must contain a file called 'axes.mat' which provides the xv,
%       yv, zv and t_cmc variables. It may also contain an optional variable
%       zv_precision, which is used to control the precision when doing lookups
%       along the z axis (default: 1e-6).
%       The driving field itself must be saved per z slice, in files called
%       'data_ZI.mat', where ZI gives the z position of the slice as an index
%       of zv, i.e. zv(ZI) is the z position.
%       Each of these files must contain an array driving_field(XI,YI,C,TI),
%       where XI, YI and TI are indices corresponding to the variables xv, yv
%       and t_cmc, respectively, and C is used to specify the electric field
%       component in the case of a polarized driving field.
%       In order to avoid large amounts of data to be loaded into the RAM,
%       there is also a possibility to subdivide the data files. For this, you
%       can use a more general way of indexing the driving_field variable:
%       Instead of driving_field(XI,YI,C,TI), you can use
%       driving_field(DI,C,TI), which is treated equally due to an internal
%       reshape operation. The index DI=(XI-1)+(YI-1)*length(xv)-1 is a
%       flattened version of the indices (XI,YI). Using this indexing, you can
%       arbitrarily subdivide the files along the DI index, i.e. instead of one
%       big file 'data_1.mat' containing the array driving_field(1:100,1,1:500),
%       you can for example provide two files 'data_1.1.mat' and 'data_1.2.mat',
%       containing driving_field(1:30,1,1:500) and driving_field(31:100,1,...
%       1:500), respectively.
%     config.ionization_fraction (optional) -
%       name of a .m file (without the .m) containing a function
%       ionization_fraction(t_cmc,Et,config) that computes the time-dependent
%       ionization fraction from the driving field to be able to account for
%       ground state depletion
%       (note: not using function handle in order to maintain octave
%       compatibility, which does not support isequal on function handles
%       until 3.4)
%     config.static_ionization_rate (optional) -
%       instead of a callback function for the ionization fraction, you can
%       specify the static ionization rate w(E) of the gas particle as an array
%       to account for ground state depletion, in 1/s
%     config.static_ionization_rate_field (optional) -
%       E axis for static_ionization_rate option, in V/m
%     config.ionization_potential - in eV
%     config.tau_interval_length - how far to integrate back in time, in
%                                  driving field periods
%     config.tau_window_length - length of soft window after integration to
%                                reduce noise, in driving field periods
%     config.t_window_length - length of soft window applied to d(t) to reduce
%                              noise, in driving field periods
%     config.periodic (optional) - if 1, the input driving field is assumed to
%                                  be periodic; in this case the time axis must
%                                  be a periodically continuable subdivision of
%                                  the [0,2*pi) interval and
%                                  config.t_window_length must be zero and can
%                                  be omitted
%     config.symmetry (optional) - can be '', 'x', 'y' or 'xy' to indicate
%                                  symmetry of the driving field respective to
%                                  the given axes, or 'rotational' for
%                                  rotational symmetry, which will speed up the
%                                  computation
%     config.omega_ranges (optional) - can be used to keep cache files small
%                                      when you are only interested in certain
%                                      ranges of omega values; the format is
%                                      [start1 end1; start2 end2; ...].
%     config.raw (optional) - if 1, also the part of the spectrum for negative
%                             omegas is returned, so that the time-dependent
%                             dipole response can be easily reconstructed with
%                             an inverse fft
%     config.cache (optional) - a struct that controls the cache. Important values are:
%       config.cache.directory - if set, calculated spectra are saved to disk at the
%                                specified directory.
%       config.cache.fast_directory -
%         if set, this directory is used for operations that need good hard drive
%         performance. You can specify a directory on an SSD or on a local hard drive
%         if config.cache.directory points to a network drive.
%       config.cache.backend - can be set to 'NetCDF' (default) or 'fallback' which is
%                              a method to get an on-disk cache for installations of
%                              Octave without NetCDF support.
%       config.cache.transpose_RAM (optional, default: 1GB) -
%         can be used to control the RAM consumption of a transpose operation necessary
%         to avoid non-linear disk access. If you use larger values, the operation will
%         be faster.
%   config.components (optional) - if using non-linear polarization, this must be set
%                                  to the number of electric field vector components
%   any config fields required by config.driving_field
%     dipole-matrix-element-specific config fields required by hhgmax_lewenstein.cpp
%   progress (optional) - a struct() that contains information about the
%                         progress of the calculation, as returned as third
%                         return value (useful if this function is called
%                         several times); if passed, needs at least a
%                         points_total field
%   return_omega (optional) - can be [start_omega end_omega] or an index
%                             referring to the omega return value; used to
%                             restrict the range of omega values returned
%
% Return values:
%   omega - the angular frequency axis corresponding to the dipole response
%           coefficients
%   response_cmc - an array with size length(yv) x length(xv) x length(zv) x
%                  C x length(omega), containing the dipole response spectrum
%                  at each spatial grid point, where C is the number of
%                  components (1 for linear polarization, 2 for elliptical
%                  polarization)
%   progress (optional) - information about the progress of the computation, as
%                         struct()
%
% Example:
%   see PDF documentation

function [omega, response_cmc, progress] = hhgmax_dipole_response(t_cmc, xv, yv, zv,...
                                                           config, progress,...
                                                           return_omega)

% if using Windows, make accessible DLL files needed for lewenstein module
if ispc()
  [rootpath] = fileparts(mfilename('fullpath'));
  bits = computer('arch'); bits = bits(end-1:end); % 32 or 64

  % use file sizes to find out if we already have DLL files for correct architecture
  if ~exist(fullfile(rootpath,'vcomp90.dll'), 'file')
    current_size = 0;
  else
    fileinfo = dir(fullfile(rootpath,'vcomp90.dll'));
    current_size = fileinfo.bytes;
  end

  % get the size of the correct vcomp90 DLL file
  fileinfo = dir(fullfile(rootpath, ['dll' bits], 'vcomp90.dll'));
  if ~length(fileinfo)
    error('Missing DLL directory.');
  end
  correct_size = fileinfo.bytes;

  % copy files if necessary
  if current_size~=correct_size
    'Copying necessary DLL files'
    copyfile(fullfile(rootpath,['dll' bits], '*'), rootpath);
  end
end

% parse components option
components = 1;
if isfield(config,'components')
  components = config.components;
end

% Octave has still flipdim instead of flip function, which is needed later
if ~exist('flip')
  flip = @flipdim;
end

% prepare driving field
if isfield(config,'precomputed_driving_field')
  % verify axes
  ax_filename = fullfile(config.precomputed_driving_field, 'axes.mat');
  ax = load(ax_filename);
  if ~isequal(xv, ax.xv) || ~isequal(yv, ax.yv) || ~isequal(t_cmc, ax.t_cmc)
    error('axes of precomputed driving field do not match')
  end

  % set zv lookup precision
  if isfield(ax,'zv_precision')
    zv_precision = ax.zv_precision;
  else
    zv_precision = 1e-6; % 1nm
  end

  % initialize data variable
  df_data = [];
  df_DI = 1;
  df_chunk = 0;

  % give a warning when using cache
  if isfield(config,'backend') && ~strcmpi(config.backend,'RAM')
    warning('using precomputed driving field with hard drive cache - make sure to erase cache when you alter the driving field data!');
  end
else
  % create handle for driving field function
  dotpos = strfind(config.driving_field, '.');

  if dotpos
    % replace *.method_name by hhgmax_method_name to avoid problems with Octave
    driving_field = str2func(['hhgmax_' config.driving_field(dotpos+1:end)]);
  else
    driving_field = str2func(config.driving_field);
  end
end

% shift time axis to zero (required for lewenstein and window setup)
t0 = t_cmc(1);
t_cmc = t_cmc - t0;

% needed to compute ground state amplitude
dt = t_cmc(2)-t_cmc(1);

% copy configuration
lewenstein_config = config;

% setup weights for tau integration
tau_interval_pts = length(find(t_cmc<=2*pi*config.tau_interval_length));
tau_window_pts = length(find(t_cmc<2*pi*config.tau_window_length));

weights = ones(1, tau_interval_pts+tau_window_pts);
if tau_window_pts~=1
  tau_window_factor = pi/2 / (tau_window_pts-1);
else % avoid division by zero
  tau_window_factor = 0.5;
end
tau_window = cos(tau_window_factor * (0:tau_window_pts-1) ) .^ 2;
weights(tau_interval_pts+1:tau_interval_pts+tau_window_pts) = weights(tau_interval_pts+1:tau_interval_pts+tau_window_pts) .* tau_window;

lewenstein_config.weights = weights;

% create omega axis and prepare data reduction
deltat = t_cmc(2);
[omega, cache_keep] = hhgmax_get_omega_axis(t_cmc, config);

% apply return_omega
if exist('return_omega','var') && length(return_omega)
  if numel(return_omega)==1
    keep_start = return_omega;
    keep_end = return_omega;
  elseif numel(return_omega)==2
    from = return_omega(1);
    to = return_omega(2);
    keep = find(omega>=from & omega<=to);
    keep_start = keep(1);
    keep_end = keep(end);
  else
    error('Invalid format for return_omega argument.')
  end
else
  keep_start = 1;
  keep_end = length(omega);
end

if isfield(config,'periodic') && config.periodic
  % check t_cmc axis
  if abs(max(t_cmc)+deltat - 2*pi)>1e-15
    error('For periodic mode, time axis must be a periodically continuable subdivision of the [0,2*pi) interval.')
  end

  % make sure t window is disabled
  if isfield(config, 't_window_length') && config.t_window_length ~= 0
    error('For periodic mode, t_window_length must be zero.')
  else
    t_window_length = 0;
  end

  % extend time axis
  repetitions = ceil(config.tau_interval_length+config.tau_window_length+1);
  fft_length = length(t_cmc);
  t_cmc = (0:repetitions*fft_length-1) * deltat;
  % Fourier transformation must only be applied to right block of d_t
  % omega must be the omega for the original t_cmc
else
  fft_length = length(t_cmc);
  repetitions = 1;

  t_window_length = config.t_window_length;

  if length(weights)>length(t_cmc)
    warning('tau_interval_length + tau_window_length is longer than considered time interval')
  end
end

% convert ionization potential from eV to scaled atomic units
lewenstein_config.ip = hhgmax_sau_convert(config.ionization_potential*1.602176565e-19, 'U', 'SAU', config);

% setup window for d(t)
t_window_pts = length(find(t_cmc<2*pi*t_window_length));
if t_window_pts~=1
  t_window_factor = pi/2 / (t_window_pts-1);
else % avoid division by zero
  t_window_factor = 0.5;
end
t_window = cos(t_window_factor * (0:t_window_pts-1) ) .^ 2;

% preallocate memory for return value
data_size = [length(yv),length(xv),length(zv),components,keep_end-keep_start+1];
response_cmc = complex(nan(data_size), nan(data_size));

% parse symmetry option
symmetry_x = 0;
symmetry_y = 0;
symmetry_rotational = 0;
if isfield(config,'symmetry') && length(config.symmetry)
  if strcmpi(config.symmetry,'x')
    symmetry_x = 1;
  elseif strcmpi(config.symmetry,'y')
    symmetry_y = 1;
  elseif strcmpi(config.symmetry,'xy')
    symmetry_x = 1;
    symmetry_y = 1;
  elseif strcmpi(config.symmetry,'rotational')
    symmetry_x = 1;
    symmetry_y = 1;
    symmetry_rotational = 1;
  elseif config.symmetry
    error('config.symmetry must be one of ''x'', ''y'' or ''xy'', ''rotational'' or a false value');
  end
end

% make sure axes conform to symmetry options
if symmetry_x && ( ~length(find(abs(xv)<1e-10)) || ~all(abs(xv+fliplr(xv))<1e-10) )
  error('x axis must be symmetric and contain 0 due to config.symmetry setting');
end

if symmetry_y && ( ~length(find(abs(yv)<1e-10)) || ~all(abs(yv+fliplr(yv))<1e-10) )
  error('y axis must be symmetric and contain 0 due to config.symmetry setting');
end

% initialize cache
metadata = struct();
metadata.omega = omega;
metadata.xv = xv;
metadata.yv = yv;
metadata.config = config;
metadata.symmetry_x = symmetry_x;
metadata.symmetry_y = symmetry_y;
metadata.symmetry_rotational = symmetry_rotational;

if symmetry_x
  cache_xn = (length(xv)-1)/2 + 1;
else
  cache_xn = length(xv);
end

if symmetry_y
  cache_yn = (length(yv)-1)/2 + 1;
else
  cache_yn = length(yv);
end
cache_yi = 1:cache_yn;

if symmetry_rotational
  cache_yn = 1;
  cache_yi = find(abs(yv)==min(abs(yv)), 1, 'first'); % find yv==0 but with tolerance
end

if ~isfield(config,'cache')
  config.cache = struct();
end

d_cache = hhgmax_cache(cache_xn,cache_yn,zv,components,length(omega),config.cache,metadata);
d_cache.open();

% parse ionization rate option
if isfield(config,'static_ionization_rate')
  if isfield(config,'periodic') && config.periodic
    error('You cannot specify ionization rates for periodic mode.');
  end
  if ~isfield(config,'static_ionization_rate_field')
    error('You need to specify a E axis for your ionization rates using the static_ionization_rate_field config option.');
  end

  irate = 1 ./ hhgmax_sau_convert(1./config.static_ionization_rate, 't', 'SAU', config);
  irate_E = hhgmax_sau_convert(config.static_ionization_rate_field,'E','SAU',config);
elseif isfield(config,'ionization_fraction')
  % create handle for driving field function
  dotpos = strfind(config.driving_field, '.');

  if dotpos
    % replace *.method_name by hhgmax_method_name to avoid problems with Octave
    ionization_fraction = str2func(['hhgmax_' config.ionization_fraction(dotpos+1:end)]);
  else
    ionization_fraction = str2func(config.ionization_fraction);
  end
else
  % in this case prepare ground state amplitude already here for performance
  lewenstein_config.ground_state_amplitude = ones(1,length(t_cmc));
end

% initialize progress struct
if ~exist('progress', 'var') || ~length(progress)
  progress = struct();
  progress.points_total = length(xv)*length(yv)*length(zv);
end
if ~isfield(progress, 'points_computed')
  progress.points_computed = 0;
end
if ~isfield(progress, 'time_spent')
  progress.time_spent = 0;
end

if ~isfield(progress, 'points_effective')
  progress.points_effective = progress.points_total;

  if symmetry_x
    progress.points_effective = round(progress.points_effective / length(xv) * cache_xn);
  end
  if symmetry_y
    progress.points_effective = round(progress.points_effective / length(yv) * cache_yn);
  end
end

% start time measurement
% (not using tic/toc because octave can't return a tic handle)
time_start = clock;
last_status = time_start;

for zi=1:length(zv)
  % try to get from HD cache
  from_cache = d_cache.get_slice(zi, keep_start, keep_end);

  if length(from_cache)
%    response_cmc(:,:,zi,1:size(from_cache,4),:) = from_cache;
    response_cmc(cache_yi,1:cache_xn,zi,:,:) = from_cache;
    progress.points_effective = progress.points_effective - round(size(from_cache,1)*size(from_cache,2) * progress.points_effective/progress.points_total);
    continue
  end

  % compute dipole response spectrum from driving field, applying the soft window
  for xi=1:cache_xn
    for yi=cache_yi

      % get driving field
      if exist('driving_field', 'var')
        % from callback function
        Et_cmc = real(driving_field(xv(xi),yv(yi),zv(zi), config));
      else
        % precomputed driving field
        if df_DI>size(df_data,1)
          % lookup in ax.zv
          df_ZI = find(abs(ax.zv-zv(zi))<=zv_precision,1,'first');
          if ~length(df_ZI)
            error(['precomputed data does not contain a slice at z=' num2str(zv(zi)) '; '...
                   'consider increasing the zv_precision variable']);
          end

          % first, try data_ZI.mat, if not exists, try data_ZI.N.mat
          basefilename = ['data_' num2str(df_ZI)];
          df_filename = fullfile(config.precomputed_driving_field, [basefilename '.mat']);
          if ~exist(df_filename, 'file')
            df_chunk = df_chunk+1;
            df_filename = fullfile(config.precomputed_driving_field, [basefilename '.' num2str(df_chunk) '.mat']);
            if ~exists(df_filename, 'file')
              error('no data for precomputed driving field left');
            end
          end
          df_struct = load(df_filename);
          df_data = df_struct.driving_field;
          components = size(df_data, ndims(df_data)-1);
          t_length = size(df_data, ndims(df_data));
          df_data = reshape(df_data, [numel(df_data)/components/t_length components t_length]);

          df_DI = 1;
        end

        Et_cmc = reshape(df_data(df_DI,:,:), [size(df_data,2) size(df_data,3)]);
        df_DI = df_DI+1;
      end

      % prepare driving field (for case of periodic mode)
      Et_cmc = repmat(Et_cmc, 1, repetitions);

      % compute time-dependent ground state amplitude if callback specified
      if isfield(config,'ionization_fraction')
        ifrac = ionization_fraction(t_cmc,Et_cmc,config);
        lewenstein_config.ground_state_amplitude = sqrt(1 - ifrac);
      end

      % compute time-dependent ground state amplitude if static ionization rates specified
      if isfield(config,'static_ionization_rate')
        Eabs = sqrt(sum(real(Et_cmc).^2,1)); % |\vec E_cmc|
        w = interp1(irate_E, irate, Eabs);

        % To compute ground state amplitude |a(t)|, use
        %   P(Ionization) = 1 - |a(t)|^2 => |a(t)| = sqrt(1 - P(Ionization))
        % together with (6) from Tong, Lin (2005):
        %   P(Ionization) = 1 - exp( - \int w(t) dt )
        % but do not integrate until infinity.
        % Note: (4) of Cao et al. (2006) is wrong, it should be |a(t)|^2 so here
        %       we use sqrt
        lewenstein_config.ground_state_amplitude = sqrt(exp(-cumtrapz(t_cmc,w)));
      end

      % compute dipole response
      d_t = hhgmax_lewenstein(t_cmc, Et_cmc, lewenstein_config);
      d_t = d_t(:,length(d_t)-fft_length+1:length(d_t));
      if size(d_t,1)~=components
        error(['Got more/less components than expected from dipole response module. '...
              'Probably the driving field is non-linearly polarized, so you need to set config.components to 2 or 3 as appropriate.'])
      end

      % apply soft window
      win_start = length(t_cmc)-t_window_pts+1;
      win_end = length(t_cmc);
      d_t(:,win_start:win_end) = d_t(:,win_start:win_end) .* repmat(t_window,components,1);

      % compute spectrum
      d_omega = conj(fft(d_t, [], 2));

      % discard irrelevant part of spectrum
      d_omega = d_omega(:,cache_keep);

      % Integration of fft starts at 0, we want to start at
      % t0, therefore apply following exponential term.
      % Furthermore, multiply by deltat to get units right.
      d_omega = d_omega .* repmat(exp(-i*omega*t0),components,1) * deltat;

      % save relevant part of spectrum
      d_cache.set_point(xi,yi-cache_yi(1)+1,zi,d_omega);

      % status information
      progress.points_computed = progress.points_computed + 1;

      time_now = clock;
      time_diff = etime(time_now,time_start);
      if etime(time_now,last_status) >= 1 % not more often than every second
        percent = 100 * progress.points_computed /  progress.points_effective;

        time_spent = progress.time_spent + time_diff;
        time_total = time_spent / progress.points_computed * progress.points_effective;
        time_left = time_total - time_spent;

        time_spent_s = num2str(mod(floor(time_spent), 60), '%02u');
        time_spent_min = num2str(mod(floor(time_spent/60), 60), '%02u');
        time_spent_h = num2str(floor((time_spent)/3600), '%02u');

        time_total_s = num2str(mod(floor(time_total), 60), '%02u');
        time_total_min = num2str(mod(floor(time_total/60), 60), '%02u');
        time_total_h = num2str(floor((time_total)/3600), '%02u');

        time_left_s = num2str(mod(floor(time_left), 60), '%02u');
        time_left_min = num2str(mod(floor(time_left/60), 60), '%02u');
        time_left_h = num2str(floor((time_left)/3600), '%02u');

        disp(['dipole_response: computed point ' num2str(progress.points_computed)...
         ' of ' num2str(progress.points_effective, '%02u') ' (' num2str(round(percent))...
         '%). Time spent: ' time_spent_h ':' time_spent_min ':' time_spent_s...
         '; Time left: ' time_left_h ':' time_left_min ':' time_left_s...
         ' of ' time_total_h ':' time_total_min ':' time_total_s ' (roughly). '...
         'Computing at ' num2str(progress.points_computed/time_spent)...
         ' points per second.']);

        last_status = time_now;
      end
    end
  end

  % mark slice as complete;
  % save or process data
  d_cache.finish_slice(zi);

  % get the whole slice
%  response_cmc(:,:,zi,:,:) = d_cache.get_slice(zi, keep_start, keep_end);
  response_cmc(cache_yi,1:cache_xn,zi,:,:) = d_cache.get_slice(zi, keep_start, keep_end);
end

d_cache.close();

'extend data according to symmetry'
if symmetry_rotational
  % prepare interpolation - d(r) is given by dr and rv, query grid is rq
  rv = flip(-xv(1:cache_xn), 2);
  dr = reshape(response_cmc(cache_yi,1:cache_xn,:,:,:), [cache_xn length(zv) components keep_end-keep_start+1]);
  dr = flip(dr, 1);
  clear response_cmc;

  [x_mesh y_mesh] = meshgrid(xv,yv);
  rq = sqrt(x_mesh.^2 + y_mesh.^2);

  % interpolate
  for xi=1:length(xv)
    response_cmc(:,xi,:,:,:) = interp1(rv, dr, rq(:,xi), [], 0);
  end

  % free some RAM
  clear rv dr x_mesh y_mesh rq;
end

if symmetry_y && ~symmetry_rotational
  tic
  response_cmc(cache_yn+1:end,:,:,:,:) = flip(response_cmc(1:cache_yn-1,:,:,:,:), 1);
  toc
end
if symmetry_x && ~symmetry_rotational
  tic
  response_cmc(:,cache_xn+1:end,:,:,:) = flip(response_cmc(:,1:cache_xn-1,:,:,:), 2);
  toc
end
'extend data according to symmetry done'

progress.time_spent = progress.time_spent + etime(clock, time_start);

omega = omega(keep_start:keep_end);


text:
using Structure.Sketching.Formats.Interfaces;
using System.IO;

namespace Structure.Sketching.Formats.BaseClasses
{
    /// <summary>
    /// File base class
    /// </summary>
    /// <seealso cref="Structure.Sketching.Formats.Interfaces.IFile" />
    public abstract class FileBase : IFile
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="FileBase"/> class.
        /// </summary>
        protected FileBase()
        {
        }

        /// <summary>
        /// Performs an implicit conversion from <see cref="FileBase"/> to <see cref="Animation"/>.
        /// </summary>
        /// <param name="value">The value.</param>
        /// <returns>
        /// The result of the conversion.
        /// </returns>
        public static implicit operator Animation(FileBase value)
        {
            if (value == null) return null;
            return value.ToAnimation();
        }

        /// <summary>
        /// Performs an implicit conversion from <see cref="File"/> to <see cref="Image"/>.
        /// </summary>
        /// <param name="value">The value.</param>
        /// <returns>The result of the conversion.</returns>
        public static implicit operator Image(FileBase value)
        {
            if (value == null) return null;
            return value.ToImage();
        }

        /// <summary>
        /// Decodes the specified stream.
        /// </summary>
        /// <param name="stream">The stream.</param>
        /// <returns>This.</returns>
        public abstract FileBase Decode(Stream stream);

        /// <summary>
        /// Writes to the specified stream.
        /// </summary>
        /// <param name="stream">The stream.</param>
        /// <param name="image">The image.</param>
        /// <returns>
        /// True if it writes successfully, false otherwise.
        /// </returns>
        public abstract bool Write(BinaryWriter stream, Image image);

        /// <summary>
        /// Writes to the specified stream.
        /// </summary>
        /// <param name="writer">The writer.</param>
        /// <param name="animation">The animation.</param>
        /// <returns>
        /// True if it writes successfully, false otherwise.
        /// </returns>
        public abstract bool Write(BinaryWriter writer, Animation animation);

        /// <summary>
        /// Converts the file to an animation.
        /// </summary>
        /// <returns>The animation version of the file.</returns>
        protected abstract Animation ToAnimation();

        /// <summary>
        /// Converts the file to an image.
        /// </summary>
        /// <returns>The image version of the file.</returns>
        protected abstract Image ToImage();
    }
}

redpajama_set_name: RedPajamaGithub


text:
package org.stringtemplate.v4.compiler;

import org.stringtemplate.v4.misc.Interval;
import org.stringtemplate.v4.misc.Misc;
import java.util.ArrayList;
import java.util.List;

public class BytecodeDisassembler {
    CompiledST code;
    public BytecodeDisassembler(CompiledST code) {
        this.code = code;
    }

    public String instrs() {
        StringBuilder buf = new StringBuilder();
        int ip = 0;
        while ( ip < code.codeSize ) {
            if ( ip>0 ) buf.append(", ");
            int opcode = code.instrs[ip];
            Bytecode.Instruction I = Bytecode.instructions[opcode];
            buf.append(I.name);
            ip++;
            for (int opnd = 0; opnd < I.nopnds; opnd++) {
                buf.append(' ');
                buf.append(getShort(code.instrs, ip));
                ip += Bytecode.OPND_SIZE_IN_BYTES;
            }
        }
        return buf.toString();
    }

    public String disassemble() {
        StringBuilder buf = new StringBuilder();
        int i = 0;
        while ( i < code.codeSize ) {
            i = disassembleInstruction(buf, i);
            buf.append('\n');
        }
        return buf.toString();
    }

    public int disassembleInstruction(StringBuilder buf, int ip) {
        int opcode = code.instrs[ip];
        if ( ip >=code.codeSize ) {
            throw new IllegalArgumentException("ip out of range: "+ip);
        }
        Bytecode.Instruction I = Bytecode.instructions[opcode];
        if ( I==null ) {
            throw new IllegalArgumentException("no such instruction "+opcode+" at address "+ip);
        }
        String instrName = I.name;
        buf.append(String.format("%04d:\t%-14s", ip, instrName));
        ip++;
        if ( I.nopnds==0 ) {
            buf.append("  ");
            return ip;
        }
        List<String> operands = new ArrayList<String>();
        for (int i = 0; i < I.nopnds; i++) {
            int opnd = getShort(code.instrs, ip);
            ip += Bytecode.OPND_SIZE_IN_BYTES;
            switch ( I.type [i] ) {
                case STRING : operands.add(showConstPoolOperand(opnd));
                              break;
                case ADDR :
                case INT : operands.add(String.valueOf(opnd));
                break;
                default: operands.add(String.valueOf(opnd));
                         break;
            }
        }
        for (int i = 0; i < operands.size(); i++) {
            String s = operands.get(i);
            if ( i>0 ) buf.append(", ");
            buf.append(s);
        }
        return ip;
    }

    private String showConstPoolOperand(int poolIndex) {
        StringBuilder buf = new StringBuilder();
        buf.append("#");
        buf.append(poolIndex);
        String s = "<bad string index>";
        if ( poolIndex < code.strings.length ) {
            if ( code.strings[poolIndex] ==null ) s = "null";
            else {
                s = code.strings[poolIndex];
                if ( code.strings[poolIndex]!=null ) {
                    s = Misc.replaceEscapes(s);
                    s = '"'+s+'"';
                }
            }
        }
        buf.append(":");
        buf.append(s);
        return buf.toString();
    }

    public static int getShort(byte[] memory, int index) {
        int b1 = memory[index]&0xFF; // mask off sign-extended bits
        int b2 = memory[index+1]&0xFF;
        int word = b1<<(8*1) | b2;
        return word;
    }

    public String strings() {
        StringBuilder buf = new StringBuilder();
        int addr = 0;
        if ( code.strings!=null ) {
            for (Object o : code.strings) {
                if ( o instanceof String ) {
                    String s = (String)o;
                    s = Misc.replaceEscapes(s);
                    buf.append(String.format("%04d: \"%s\"\n", addr, s));
                }
                else {
                    buf.append(String.format("%04d: %s\n", addr, o));
                }
                addr++;
            }
        }
        return buf.toString();
    }

    public String sourceMap() {
        StringBuilder buf = new StringBuilder();
        int addr = 0;
        for (Interval I : code.sourceMap) {
            if ( I!=null ) {
                String chunk = code.template.substring(I.a, I.b+1);
                buf.append(String.format("%04d: %s\t\"%s\"\n", addr, I, chunk));
            }
            addr++;
        }
        return buf.toString();
    }
}


text:
package org.mapfish.print.http;

import org.apache.http.HttpHost;
import org.mapfish.print.config.Configuration;
import org.mapfish.print.processor.http.matcher.URIMatcher;

import java.util.List;

/**
 * This configuration object configures the proxies to be used by the system. This is configured as
 * one of the root elements of the config.yaml
 *
 *
Example - Proxy all requests except localhost and www.camptocamp.org:

 *

 * proxies:
 *   - !proxy
 *     scheme: http
 *     host: proxy.host.com
 *     port: 8888
 *     username: username
 *     password: xyzpassword
 *     matchers:
 *       - !localMatch
 *         reject: true
 *       - !dnsMatch
 *         host: www.camptocamp.org
 *         reject: true
 *       - !acceptAll {}
 *

 *
 * @author Jesse on 6/25/2014.
 */
public final class HttpProxy extends HttpCredential {
    private String host;
    // CSOFF: MagicNumber
    private int port = 80;
    // CSON: MagicNumber
    private String scheme;

    public HttpHost getHttpHost() {
        return new HttpHost(this.host, this.port, getScheme());
    }

    private String getScheme() {
        if (this.scheme == null) {
            if (super.getUsername() == null) {
                return "http";
            } else {
                return "https";
            }
        }
        return this.scheme;
    }

    /**
     * Matchers are used to choose which requests this proxy applies to.
     *
     * @see org.mapfish.print.processor.http.matcher.URIMatcher
     * @see org.mapfish.print.processor.http.RestrictUrisProcessor
     *
     * @param matchers the matchers to use to determine which requests the applies can be used for
     */
    public void setMatchers(final List<? extends URIMatcher> matchers) {
        super.setMatchers(matchers);
    }

    /**
     * The host of the proxy.  Can be a hostname or ip address.
     *

     * This is required.
     *

     *
     * @param host the host of the proxy
     */
    public void setHost(final String host) {
        this.host = host;
    }

    /**
     * The scheme (http, https) of the proxy.
     *

     * This is optional, default is http if no username and https if there is a password
     *

     *
     * @param scheme the scheme of the proxy
     */
    public void setScheme(final String scheme) {
        this.scheme = scheme;
    }

    /**
     * The username for authenticating with the proxy.
     *

     * This is optional
     *

     *
     * @param username the username for authenticating with the proxy
     */
    public void setUsername(final String username) {
        super.setUsername(username);
    }

    /**
     * The password for authenticating with the proxy.
     *

     * This is optional
     *

     *
     * @param password the password for authenticating with the proxy
     */
    public  void setPassword(final String password) {
        super.setPassword(password);
    }

    /**
     * The host of the proxy.  Can be a hostname or ip address.
     *

     * This is optional.  The default value is 80.
     *

     *
     * @param port the port of the proxy
     */
    public  void setPort(final int port) {
        this.port = port;
    }

    @Override
    public void validate(final List<Throwable> validationErrors, final Configuration configuration) {
        if (this.host == null) {
            validationErrors.add(new IllegalStateException("The parameter 'host' is required."));
        }
    }

}


text:
export function on (elem, eventName, fn, useCapture = false) {
  elem.addEventListener(eventName, fn, useCapture)
  return function () {
    elem.removeEventListener(eventName, fn, useCapture)
  }
}

export function getViewportSize () {
  const root = document.documentElement
  return {
    width: Math.max(root.clientWidth, window.innerWidth || 0),
    height: Math.max(root.clientHeight, window.innerHeight || 0)
  }
}

export function applyCSS (css, id = '') {
  const head = document.getElementsByTagName('head')[0]
  const node = document.getElementById(id) || document.createElement('style')
  node.innerHTML = css
  if (id) {
    node.id = id
  }
  if (!head.contains(node)) {
    head.appendChild(node)
  }
  return function () {
    node.remove()
  }
}

export function loadIamge (url, onLoaded, onError) {
  if (!url) { return }
  const image = new Image()
  image.onload = function () { onLoaded && onLoaded(url) }
  image.onerror = function () { onError && onError(url) }
  image.src = url
}

export function forceReflow () {
  document.body.clientWidth
}


text:
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
 * Gets the list of the table in the current db and informations about these
 * tables if possible
 *
 * fills tooltip arrays and provides $tables, $num_tables, $is_show_stats
 * and $db_is_information_schema
 *
 * speedup view on locked tables
 *
 * @package PhpMyAdmin
 */
if (! defined('PHPMYADMIN')) {
    exit;
}

/**
 * requirements
 */
require_once './libraries/common.inc.php';

/**
 * limits for table list
 */
if (! isset($_SESSION['tmp_user_values']['table_limit_offset']) || $_SESSION['tmp_user_values']['table_limit_offset_db'] != $db) {
    $_SESSION['tmp_user_values']['table_limit_offset'] = 0;
    $_SESSION['tmp_user_values']['table_limit_offset_db'] = $db;
}
if (isset($_REQUEST['pos'])) {
    $_SESSION['tmp_user_values']['table_limit_offset'] = (int) $_REQUEST['pos'];
}
$pos = $_SESSION['tmp_user_values']['table_limit_offset'];

/**
 * fills given tooltip arrays
 *
 * @param array   $tooltip_truename   tooltip data
 * @param array   $tooltip_aliasname  tooltip data
 * @param array   $table              tabledata
 */
function PMA_fillTooltip(&$tooltip_truename, &$tooltip_aliasname, $table)
{
    if (strstr($table['Comment'], '; InnoDB free') === false) {
        if (!strstr($table['Comment'], 'InnoDB free') === false) {
            // here we have just InnoDB generated part
            $table['Comment'] = '';
        }
    } else {
        // remove InnoDB comment from end, just the minimal part (*? is non greedy)
        $table['Comment'] = preg_replace('@; InnoDB free:.*?$@', '', $table['Comment']);
    }
    // views have VIEW as comment so it's not a real comment put by a user
    if ('VIEW' == $table['Comment']) {
        $table['Comment'] = '';
    }
    if (empty($table['Comment'])) {
        $table['Comment'] = $table['Name'];
    } else {
        // why?
        $table['Comment'] .= ' ';
    }

    if ($GLOBALS['cfg']['ShowTooltipAliasTB']
     && $GLOBALS['cfg']['ShowTooltipAliasTB'] !== 'nested') {
        $tooltip_truename[$table['Name']] = $table['Comment'];
        $tooltip_aliasname[$table['Name']] = $table['Name'];
    } else {
        $tooltip_truename[$table['Name']] = $table['Name'];
        $tooltip_aliasname[$table['Name']] = $table['Comment'];
    }

    if (isset($table['Create_time']) && !empty($table['Create_time'])) {
        $tooltip_aliasname[$table['Name']] .= ', ' . __('Creation')
             . ': ' . PMA_localisedDate(strtotime($table['Create_time']));
    }

    if (! empty($table['Update_time'])) {
        $tooltip_aliasname[$table['Name']] .= ', ' . __('Last update')
             . ': ' . PMA_localisedDate(strtotime($table['Update_time']));
    }

    if (! empty($table['Check_time'])) {
        $tooltip_aliasname[$table['Name']] .= ', ' . __('Last check')
             . ': ' . PMA_localisedDate(strtotime($table['Check_time']));
    }
}

PMA_checkParameters(array('db'));

/**
 * @global bool whether to display extended stats
 */
$is_show_stats = $cfg['ShowStats'];

/**
 * @global bool whether selected db is information_schema
 */
$db_is_information_schema = false;

if (PMA_is_system_schema($db)) {
    $is_show_stats = false;
    $db_is_information_schema = true;
}

/**
 * @global array information about tables in db
 */
$tables = array();

// When used in Nested table group mode, only show tables matching the given groupname
if (PMA_isValid($tbl_group) && !$cfg['ShowTooltipAliasTB']) {
    $tbl_group_sql = ' LIKE "' . PMA_escape_mysql_wildcards($tbl_group) . '%"';
} else {
    $tbl_group_sql = '';
}

if ($cfg['ShowTooltip']) {
    $tooltip_truename = array();
    $tooltip_aliasname = array();
}

// Special speedup for newer MySQL Versions (in 4.0 format changed)
if (true === $cfg['SkipLockedTables']) {
    $db_info_result = PMA_DBI_query('SHOW OPEN TABLES FROM ' . PMA_backquote($db) . ';');

    // Blending out tables in use
    if ($db_info_result && PMA_DBI_num_rows($db_info_result) > 0) {
        while ($tmp = PMA_DBI_fetch_row($db_info_result)) {
            // if in use memorize tablename
            if (preg_match('@in_use=[1-9]+@i', $tmp[1])) {
                $sot_cache[$tmp[0]] = true;
            }
        }
        PMA_DBI_free_result($db_info_result);

        if (isset($sot_cache)) {
            $db_info_result = PMA_DBI_query(
                'SHOW TABLES FROM ' . PMA_backquote($db) . $tbl_group_sql . ';',
                null, PMA_DBI_QUERY_STORE);
            if ($db_info_result && PMA_DBI_num_rows($db_info_result) > 0) {
                while ($tmp = PMA_DBI_fetch_row($db_info_result)) {
                    if (! isset($sot_cache[$tmp[0]])) {
                        $sts_result  = PMA_DBI_query(
                            'SHOW TABLE STATUS FROM ' . PMA_backquote($db)
                             . ' LIKE \'' . PMA_sqlAddSlashes($tmp[0], true) . '\';');
                        $sts_tmp     = PMA_DBI_fetch_assoc($sts_result);
                        PMA_DBI_free_result($sts_result);
                        unset($sts_result);

                        if (! isset($sts_tmp['Type']) && isset($sts_tmp['Engine'])) {
                            $sts_tmp['Type'] =& $sts_tmp['Engine'];
                        }

                        if (!empty($tbl_group) && $cfg['ShowTooltipAliasTB']
                         && !preg_match('@' . preg_quote($tbl_group, '@') . '@i', $sts_tmp['Comment'])) {
                            continue;
                        }

                        if ($cfg['ShowTooltip']) {
                            PMA_fillTooltip($tooltip_truename, $tooltip_aliasname, $sts_tmp);
                        }

                        $tables[$sts_tmp['Name']]    = $sts_tmp;
                    } else { // table in use
                        $tables[$tmp[0]]    = array('Name' => $tmp[0]);
                    }
                }
                if ($GLOBALS['cfg']['NaturalOrder']) {
                    uksort($tables, 'strnatcasecmp');
                }

                $sot_ready = true;
            } elseif ($db_info_result) {
                PMA_DBI_free_result($db_info_result);
            }
            unset($sot_cache);
        }
        unset($tmp);
    } elseif ($db_info_result) {
        PMA_DBI_free_result($db_info_result);
    }
}

if (! isset($sot_ready)) {

    // Set some sorting defaults
    $sort = 'Name';
    $sort_order = 'ASC';

    if (isset($_REQUEST['sort'])) {
        $sortable_name_mappings = array(
            'table'     => 'Name',
            'records'   => 'Rows',
            'type'      => 'Engine',
            'collation' => 'Collation',
            'size'      => 'Data_length',
            'overhead'  => 'Data_free'
        );

        // Make sure the sort type is implemented
        if (isset($sortable_name_mappings[$_REQUEST['sort']])) {
            $sort = $sortable_name_mappings[$_REQUEST['sort']];
            if ($_REQUEST['sort_order'] == 'DESC') {
                $sort_order = 'DESC';
            }
        }
    }

    if (! empty($tbl_group) && ! $cfg['ShowTooltipAliasTB']) {
        // only tables for selected group
        $tables = PMA_DBI_get_tables_full($db, $tbl_group, true, null, 0, false, $sort, $sort_order);
    } elseif (! empty($tbl_group) && $cfg['ShowTooltipAliasTB']) {
        // only tables for selected group,
        // but grouping is done on comment ...
        $tables = PMA_DBI_get_tables_full($db, $tbl_group, 'comment', null, 0, false, $sort, $sort_order);
    } else {
        // all tables in db
        // - get the total number of tables
        //  (needed for proper working of the MaxTableList feature)
        $tables = PMA_DBI_get_tables($db);
        $total_num_tables = count($tables);
        if (isset($sub_part) && $sub_part == '_export') {
            // (don't fetch only a subset if we are coming from db_export.php,
            // because I think it's too risky to display only a subset of the
            // table names when exporting a db)
            /**
             *
             * @todo Page selector for table names?
             */
            $tables = PMA_DBI_get_tables_full($db, false, false, null, 0, false, $sort, $sort_order);
        } else {
            // fetch the details for a possible limited subset
            $tables = PMA_DBI_get_tables_full($db, false, false, null, $pos, true, $sort, $sort_order);
        }
    }

    if ($cfg['ShowTooltip']) {
        foreach ($tables as $each_table) {
            PMA_fillTooltip($tooltip_truename, $tooltip_aliasname, $each_table);
        }
    }
}

/**
 * @global int count of tables in db
 */
$num_tables = count($tables);
//  (needed for proper working of the MaxTableList feature)
if (! isset($total_num_tables)) {
    $total_num_tables = $num_tables;
}

/**
 * cleanup
 */
unset($each_table, $tbl_group_sql, $db_info_result);

/**
 * Displays top menu links
 * If in an Ajax request, we do not need to show this
 */
if ($GLOBALS['is_ajax_request'] != true) {
    include './libraries/db_links.inc.php';
}
?>


text:
package com.harreke.easyapp.app;

import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.ActivityOptionsCompat;

/**
 由 Harreke(harreke@live.cn) 创建于 2015/04/10

 Intent接口

 Intent接口处理所有从Activity和Fragment发起的Intent请求

 Intent接口封装了对{@link ActivityOptionsCompat}Activity切换选项的调用
 Activity切换选项兼容实现了安卓Lollipop中部分Activity切换动画效果
 */
public interface IIntent {
    /**
     启动Intent

     @param intent 目标Intent
     */
    void start(@NonNull Intent intent);

    /**
     启动Intent

     @param intent 目标Intent
     请求代码
     @param options Activity切换选项
     */
    void start(@NonNull Intent intent, @Nullable ActivityOptionsCompat options);

    /**
     启动Intent

     @param intent 目标Intent
     @param requestCode 请求代码
     */
    void start(@NonNull Intent intent, int requestCode);

    /**
     启动Intent

     @param intent 目标Intent
     @param requestCode 请求代码
     @param options Activity切换选项
     */
    void start(@NonNull Intent intent, int requestCode, @Nullable ActivityOptionsCompat options);
}


text:
from lolicon.user import User

class Command:

    def __init__(self, name, trailing='', user=None):
        if not isinstance(name, str):
            raise TypeError('name must be str')
        if not isinstance(trailing, str):
            raise TypeError('trailing must be str')
        if user != None and not isinstance(user, User):
            raise TypeError('user must be User')

        self.name = name
        self.trailing = trailing
        self.user = user


text:
package podSvcRcContro;

import io.fabric8.kubernetes.api.model.ReplicationController;
import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.client.KubernetesClient;
import kubernetesUtil.kubernetesUtil;
import podSvcRcService.rcservice;
import podSvcRcService.svcservice;

public class test1svcrctomcat {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		KubernetesClient client = new kubernetesUtil().getK8Sclient();
		//调用 service 实现相关任务
		//创建rc
		rcservice tomcat_rc = new rcservice();
		tomcat_rc.deleteRC(client, "web-loadbalance", "ntomcatrwm");
		ReplicationController createRC = tomcat_rc.createRC(client, "ntomcatrwm", "web-loadbalance", "tomcat", "ntomcatrwm", 1, "ntomcatrwm", "node0:5000/tomcat:latest", 8080);
		//创建对应的service
		svcservice tomcat_svc = new svcservice();
		tomcat_svc.deleteService(client, "web-loadbalance", "ntomcatrwm");
		Service createService = tomcat_svc.createService(client, "ntomcatrwm", "web-loadbalance", "tomcat", "ntomcatrwm", 8080, 30602);

	}

}


text:
'use strict';

define(['phaser'], function(Phaser) {
    function <%= _.classify(name) %>(game, parent) {
        Phaser.Group.call(this, game, parent);
    }

    <%= _.classify(name) %>.prototype = Object.create(Phaser.Group.prototype);
    <%= _.classify(name) %>.prototype.constructor = <%= _.classify(name) %>;
});


text:
.class public Lcom/pittvandewitt/viperfx/screen/VBassFragment;
.super Lcom/pittvandewitt/viperfx/base/b;

# instance fields
.field private b:Landroid/graphics/Matrix;

.field private c:F

.field private d:F

.field mIVKnobPoint:Landroid/widget/ImageView;
    .annotation build Lbutterknife/BindView;
    .end annotation
.end field

.field mPbvBassFreq:Lcom/pittvandewitt/viperfx/widget/ProgressBarView;
    .annotation build Lbutterknife/BindView;
    .end annotation
.end field

.field mRbModeNaturalbass:Landroid/widget/RadioButton;
    .annotation build Lbutterknife/BindView;
    .end annotation
.end field

.field mRbModePurebass:Landroid/widget/RadioButton;
    .annotation build Lbutterknife/BindView;
    .end annotation
.end field

.field mRbModeSubwoofer:Landroid/widget/RadioButton;
    .annotation build Lbutterknife/BindView;
    .end annotation
.end field

.field mRgBassMode:Landroid/widget/RadioGroup;
    .annotation build Lbutterknife/BindView;
    .end annotation
.end field

.field mTrbBassFreq:Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;
    .annotation build Lbutterknife/BindView;
    .end annotation
.end field

.field mTrbBassGain:Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;
    .annotation build Lbutterknife/BindView;
    .end annotation
.end field

.field mTvBassFreqVal:Landroid/widget/TextView;
    .annotation build Lbutterknife/BindView;
    .end annotation
.end field

.field mTvBassGainVal:Landroid/widget/TextView;
    .annotation build Lbutterknife/BindView;
    .end annotation
.end field

.field vbassBoostVals:[Ljava/lang/String;
    .annotation build Lbutterknife/BindArray;
    .end annotation
.end field

.field vbassBoosts:[Ljava/lang/String;
    .annotation build Lbutterknife/BindArray;
    .end annotation
.end field

.field vbassFreq:[Ljava/lang/String;
    .annotation build Lbutterknife/BindArray;
    .end annotation
.end field

.field vbassMode:[Ljava/lang/String;
    .annotation build Lbutterknife/BindArray;
    .end annotation
.end field

# direct methods
.method public constructor <init>()V
    .locals 0

    invoke-direct {p0}, Lcom/pittvandewitt/viperfx/base/b;-><init>()V

    return-void
.end method

.method static synthetic a(Lcom/pittvandewitt/viperfx/screen/VBassFragment;)Landroid/content/SharedPreferences;
    .locals 1

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->a:Landroid/content/SharedPreferences;

    return-object v0
.end method

.method private a()V
    .locals 3

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mRbModeNaturalbass:Landroid/widget/RadioButton;

    iget-object v1, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->vbassMode:[Ljava/lang/String;

    const/4 v2, 0x0

    aget-object v1, v1, v2

    invoke-virtual {v0, v1}, Landroid/widget/RadioButton;->setText(Ljava/lang/CharSequence;)V

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mRbModePurebass:Landroid/widget/RadioButton;

    iget-object v1, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->vbassMode:[Ljava/lang/String;

    const/4 v2, 0x1

    aget-object v1, v1, v2

    invoke-virtual {v0, v1}, Landroid/widget/RadioButton;->setText(Ljava/lang/CharSequence;)V

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mRbModeSubwoofer:Landroid/widget/RadioButton;

    iget-object v1, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->vbassMode:[Ljava/lang/String;

    const/4 v2, 0x2

    aget-object v1, v1, v2

    invoke-virtual {v0, v1}, Landroid/widget/RadioButton;->setText(Ljava/lang/CharSequence;)V

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mRgBassMode:Landroid/widget/RadioGroup;

    new-instance v1, Lcom/pittvandewitt/viperfx/screen/bb;

    invoke-direct {v1, p0}, Lcom/pittvandewitt/viperfx/screen/bb;-><init>(Lcom/pittvandewitt/viperfx/screen/VBassFragment;)V

    invoke-virtual {v0, v1}, Landroid/widget/RadioGroup;->setOnCheckedChangeListener(Landroid/widget/RadioGroup$OnCheckedChangeListener;)V

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mTrbBassFreq:Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;

    const v1, 0x7f020079

    invoke-virtual {v0, v1}, Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;->setBgImageInt(I)V

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mTrbBassFreq:Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;

    const v1, 0x7f02007a

    invoke-virtual {v0, v1}, Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;->setBgPressImageInt(I)V

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mPbvBassFreq:Lcom/pittvandewitt/viperfx/widget/ProgressBarView;

    const/16 v1, 0x12c

    invoke-virtual {v0, v1}, Lcom/pittvandewitt/viperfx/widget/ProgressBarView;->setMax(I)V

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mTrbBassFreq:Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;

    new-instance v1, Lcom/pittvandewitt/viperfx/screen/bc;

    invoke-direct {v1, p0}, Lcom/pittvandewitt/viperfx/screen/bc;-><init>(Lcom/pittvandewitt/viperfx/screen/VBassFragment;)V

    invoke-virtual {v0, v1}, Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;->setOnChangeDegreeListening(Lcom/pittvandewitt/viperfx/widget/h;)V

    new-instance v0, Landroid/graphics/Matrix;

    invoke-direct {v0}, Landroid/graphics/Matrix;-><init>()V

    iput-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->b:Landroid/graphics/Matrix;

    invoke-virtual {p0}, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->getActivity()Landroid/app/Activity;

    move-result-object v0

    const v1, 0x7f02007b

    invoke-static {v0, v1}, Landroid/support/v4/content/a;->a(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable;

    move-result-object v0

    invoke-virtual {v0}, Landroid/graphics/drawable/Drawable;->getIntrinsicWidth()I

    move-result v1

    div-int/lit8 v1, v1, 0x2

    int-to-float v1, v1

    iput v1, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->c:F

    invoke-virtual {v0}, Landroid/graphics/drawable/Drawable;->getIntrinsicHeight()I

    move-result v0

    div-int/lit8 v0, v0, 0x2

    int-to-float v0, v0

    iput v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->d:F

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mTrbBassGain:Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;

    const v1, 0x7f020079

    invoke-virtual {v0, v1}, Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;->setBgImageInt(I)V

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mTrbBassGain:Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;

    const v1, 0x7f02007a

    invoke-virtual {v0, v1}, Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;->setBgPressImageInt(I)V

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mTrbBassGain:Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;

    const/high16 v1, 0x42610000    # 56.25f

    invoke-virtual {v0, v1}, Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;->setMIN_DEGREE(F)V

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mTrbBassGain:Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;

    const v1, 0x4397e000    # 303.75f

    invoke-virtual {v0, v1}, Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;->setMAX_DEGREE(F)V

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mTrbBassGain:Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;

    new-instance v1, Lcom/pittvandewitt/viperfx/screen/bd;

    invoke-direct {v1, p0}, Lcom/pittvandewitt/viperfx/screen/bd;-><init>(Lcom/pittvandewitt/viperfx/screen/VBassFragment;)V

    invoke-virtual {v0, v1}, Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;->setOnChangeDegreeListening(Lcom/pittvandewitt/viperfx/widget/h;)V

    return-void
.end method

.method static synthetic b(Lcom/pittvandewitt/viperfx/screen/VBassFragment;)Landroid/content/SharedPreferences;
    .locals 1

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->a:Landroid/content/SharedPreferences;

    return-object v0
.end method

.method private b()V
    .locals 10

    const-wide v8, 0x404c200000000000L    # 56.25

    const-wide v6, 0x4036800000000000L    # 22.5

    const/4 v3, 0x1

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->a:Landroid/content/SharedPreferences;

    const-string v1, "viper4android.headphonefx.fidelity.bass.mode"

    const-string v2, "0"

    invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    const-string v1, "0"

    invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v1

    if-eqz v1, :cond_3

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mRbModeNaturalbass:Landroid/widget/RadioButton;

    invoke-virtual {v0, v3}, Landroid/widget/RadioButton;->setChecked(Z)V

    :cond_0
    :goto_0
    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->a:Landroid/content/SharedPreferences;

    const-string v1, "viper4android.headphonefx.fidelity.bass.freq"

    const-string v2, "40"

    invoke-interface {v0, v1, v2}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    iget-object v1, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mTvBassFreqVal:Landroid/widget/TextView;

    new-instance v2, Ljava/lang/StringBuilder;

    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    const-string v3, " HZ"

    invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v2

    invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v2

    invoke-virtual {v1, v2}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V

    iget-object v1, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mPbvBassFreq:Lcom/pittvandewitt/viperfx/widget/ProgressBarView;

    invoke-static {v0}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;

    move-result-object v2

    invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I

    move-result v2

    mul-int/lit8 v2, v2, 0x3

    int-to-float v2, v2

    invoke-virtual {v1, v2}, Lcom/pittvandewitt/viperfx/widget/ProgressBarView;->setProgressSync(F)V

    iget-object v1, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mTrbBassFreq:Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;

    invoke-static {v0}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;

    move-result-object v0

    invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I

    move-result v0

    mul-int/lit8 v0, v0, 0x3

    add-int/lit8 v0, v0, 0x1e

    int-to-float v0, v0

    invoke-virtual {v1, v0}, Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;->setCurDegree(F)V

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->vbassBoostVals:[Ljava/lang/String;

    invoke-static {v0}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;

    move-result-object v0

    iget-object v1, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->a:Landroid/content/SharedPreferences;

    const-string v2, "viper4android.headphonefx.fidelity.bass.gain"

    const-string v3, "50"

    invoke-interface {v1, v2, v3}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;

    move-result-object v1

    invoke-interface {v0, v1}, Ljava/util/List;->indexOf(Ljava/lang/Object;)I

    move-result v0

    if-ltz v0, :cond_1

    iget-object v1, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->vbassBoosts:[Ljava/lang/String;

    array-length v1, v1

    if-lt v0, v1, :cond_2

    :cond_1
    const/4 v0, 0x0

    :cond_2
    iget-object v1, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mTvBassGainVal:Landroid/widget/TextView;

    iget-object v2, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->vbassBoosts:[Ljava/lang/String;

    aget-object v2, v2, v0

    invoke-virtual {v1, v2}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V

    iget-object v1, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->b:Landroid/graphics/Matrix;

    int-to-double v2, v0

    mul-double/2addr v2, v6

    add-double/2addr v2, v8

    double-to-float v2, v2

    iget v3, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->c:F

    iget v4, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->d:F

    invoke-virtual {v1, v2, v3, v4}, Landroid/graphics/Matrix;->setRotate(FFF)V

    iget-object v1, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mIVKnobPoint:Landroid/widget/ImageView;

    iget-object v2, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->b:Landroid/graphics/Matrix;

    invoke-virtual {v1, v2}, Landroid/widget/ImageView;->setImageMatrix(Landroid/graphics/Matrix;)V

    iget-object v1, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mTrbBassGain:Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;

    int-to-double v2, v0

    mul-double/2addr v2, v6

    add-double/2addr v2, v8

    double-to-float v0, v2

    invoke-virtual {v1, v0}, Lcom/pittvandewitt/viperfx/widget/TouchRotateButton;->setCurDegree(F)V

    return-void

    :cond_3
    const-string v1, "1"

    invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v1

    if-eqz v1, :cond_4

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mRbModePurebass:Landroid/widget/RadioButton;

    invoke-virtual {v0, v3}, Landroid/widget/RadioButton;->setChecked(Z)V

    goto/16 :goto_0

    :cond_4
    const-string v1, "2"

    invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_0

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->mRbModeSubwoofer:Landroid/widget/RadioButton;

    invoke-virtual {v0, v3}, Landroid/widget/RadioButton;->setChecked(Z)V

    goto/16 :goto_0
.end method

.method static synthetic c(Lcom/pittvandewitt/viperfx/screen/VBassFragment;)Landroid/content/SharedPreferences;
    .locals 1

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->a:Landroid/content/SharedPreferences;

    return-object v0
.end method

.method static synthetic d(Lcom/pittvandewitt/viperfx/screen/VBassFragment;)Landroid/content/SharedPreferences;
    .locals 1

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->a:Landroid/content/SharedPreferences;

    return-object v0
.end method

.method static synthetic e(Lcom/pittvandewitt/viperfx/screen/VBassFragment;)Landroid/content/SharedPreferences;
    .locals 1

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->a:Landroid/content/SharedPreferences;

    return-object v0
.end method

.method static synthetic f(Lcom/pittvandewitt/viperfx/screen/VBassFragment;)F
    .locals 1

    iget v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->c:F

    return v0
.end method

.method static synthetic g(Lcom/pittvandewitt/viperfx/screen/VBassFragment;)F
    .locals 1

    iget v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->d:F

    return v0
.end method

.method static synthetic h(Lcom/pittvandewitt/viperfx/screen/VBassFragment;)Landroid/graphics/Matrix;
    .locals 1

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->b:Landroid/graphics/Matrix;

    return-object v0
.end method

.method static synthetic i(Lcom/pittvandewitt/viperfx/screen/VBassFragment;)Landroid/content/SharedPreferences;
    .locals 1

    iget-object v0, p0, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->a:Landroid/content/SharedPreferences;

    return-object v0
.end method

# virtual methods
.method public onCreateView(Landroid/view/LayoutInflater;Landroid/view/ViewGroup;Landroid/os/Bundle;)Landroid/view/View;
    .locals 2

    const v0, 0x7f040039

    const/4 v1, 0x0

    invoke-virtual {p1, v0, p2, v1}, Landroid/view/LayoutInflater;->inflate(ILandroid/view/ViewGroup;Z)Landroid/view/View;

    move-result-object v0

    invoke-static {p0, v0}, Lbutterknife/ButterKnife;->a(Ljava/lang/Object;Landroid/view/View;)Lbutterknife/Unbinder;

    invoke-direct {p0}, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->a()V

    invoke-direct {p0}, Lcom/pittvandewitt/viperfx/screen/VBassFragment;->b()V

    return-object v0
.end method


text:
<?php
/**
 * Created by PhpStorm.
 * User: morontt
 * Date: 14.06.15
 * Time: 18:39
 */

namespace Mtt\UserBundle\Command;

use Doctrine\ORM\EntityManagerInterface;
use Mtt\UserBundle\Entity\Repository\UserRepository;
use Mtt\UserBundle\Entity\User;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Security\Core\Encoder\EncoderFactory;
use Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface;
use Symfony\Component\Validator\Validator\ValidatorInterface;

class CreateUserCommand extends Command
{
    /**
     * @var UserRepository
     */
    private $repository;

    /**
     * @var EncoderFactory
     */
    private $encoderFactory;

    /**
     * @var ValidatorInterface
     */
    private $validator;

    /**
     * @var EntityManagerInterface
     */
    private $em;

    /**
     * @param UserRepository $repository
     * @param EncoderFactoryInterface $encoderFactory
     * @param ValidatorInterface $validator
     * @param EntityManagerInterface $em
     */
    public function __construct(
        UserRepository $repository,
        EncoderFactoryInterface $encoderFactory,
        ValidatorInterface $validator,
        EntityManagerInterface $em
    ) {
        $this->repository = $repository;
        $this->encoderFactory = $encoderFactory;
        $this->validator = $validator;
        $this->em = $em;

        parent::__construct();
    }

    protected function configure()
    {
        $this
            ->setName('mtt:user:create')
            ->setDescription('Create new user')
            ->addArgument('username', InputArgument::REQUIRED, 'username')
            ->addArgument('email', InputArgument::REQUIRED, 'email')
            ->addOption('password', 'p', InputOption::VALUE_OPTIONAL, 'password', 'admin');
    }

    /**
     * @param InputInterface $input
     * @param OutputInterface $output
     */
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $username = $input->getArgument('username');
        $email = $input->getArgument('email');
        $password = $input->getOption('password');

        $user = new User();
        $encoder = $this->encoderFactory->getEncoder($user);

        $passwordHash = $encoder->encodePassword($password, $user->getSalt());
        $user
            ->setUsername($username)
            ->setEmail($email)
            ->setPassword($passwordHash);

        $errors = $this->validator->validate($user);
        if (count($errors) > 0) {
            $output->writeln('');
            foreach ($errors as $error) {
                $output->writeln(sprintf('<error>Error: %s</error>', $error->getMessage()));
            }
            $output->writeln('');
        } else {
            $this->em->persist($user);
            $this->em->flush();

            $output->writeln('');
            $output->writeln(sprintf('<info>Create user: <comment>%s</comment></info>', $username));
            $output->writeln('');
        }
    }
}


text:
#pragma once

#include <proxygen/lib/http/codec/compress/HPACKCodec.h>

namespace proxygen {

class HPACKCodec09 : public HPACKCodec {
 public:
  explicit HPACKCodec09(TransportDirection direction);
};

}


text:
.class public abstract Lcom/android/internal/widget/ILockSettings$Stub;
.super Landroid/os/Binder;
.source "ILockSettings.java"

# interfaces
.implements Lcom/android/internal/widget/ILockSettings;

# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lcom/android/internal/widget/ILockSettings;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x409
    name = "Stub"
.end annotation

.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/android/internal/widget/ILockSettings$Stub$Proxy;
    }
.end annotation

# static fields
.field private static final DESCRIPTOR:Ljava/lang/String; = "com.android.internal.widget.ILockSettings"

.field static final TRANSACTION_checkPassword:I = 0xb

.field static final TRANSACTION_checkPattern:I = 0x8

.field static final TRANSACTION_checkVoldPassword:I = 0xd

.field static final TRANSACTION_getBoolean:I = 0x4

.field static final TRANSACTION_getLong:I = 0x5

.field static final TRANSACTION_getString:I = 0x6

.field static final TRANSACTION_havePassword:I = 0xf

.field static final TRANSACTION_havePattern:I = 0xe

.field static final TRANSACTION_registerStrongAuthTracker:I = 0x10

.field static final TRANSACTION_requireStrongAuth:I = 0x12

.field static final TRANSACTION_setBoolean:I = 0x1

.field static final TRANSACTION_setLockPassword:I = 0xa

.field static final TRANSACTION_setLockPattern:I = 0x7

.field static final TRANSACTION_setLong:I = 0x2

.field static final TRANSACTION_setString:I = 0x3

.field static final TRANSACTION_unregisterStrongAuthTracker:I = 0x11

.field static final TRANSACTION_verifyPassword:I = 0xc

.field static final TRANSACTION_verifyPattern:I = 0x9

# direct methods
.method public constructor <init>()V
    .locals 1

    .prologue
    .line 14
    invoke-direct {p0}, Landroid/os/Binder;-><init>()V

    .line 16
    const-string/jumbo v0, "com.android.internal.widget.ILockSettings"

    invoke-virtual {p0, p0, v0}, Lcom/android/internal/widget/ILockSettings$Stub;->attachInterface(Landroid/os/IInterface;Ljava/lang/String;)V

    .line 14
    return-void
.end method

.method public static asInterface(Landroid/os/IBinder;)Lcom/android/internal/widget/ILockSettings;
    .locals 2
    .param p0, "obj"    # Landroid/os/IBinder;

    .prologue
    const/4 v1, 0x0

    .line 24
    if-nez p0, :cond_0

    .line 25
    return-object v1

    .line 27
    :cond_0
    const-string/jumbo v1, "com.android.internal.widget.ILockSettings"

    invoke-interface {p0, v1}, Landroid/os/IBinder;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface;

    move-result-object v0

    .line 28
    .local v0, "iin":Landroid/os/IInterface;
    if-eqz v0, :cond_1

    instance-of v1, v0, Lcom/android/internal/widget/ILockSettings;

    if-eqz v1, :cond_1

    .line 29
    check-cast v0, Lcom/android/internal/widget/ILockSettings;

    .end local v0    # "iin":Landroid/os/IInterface;
    return-object v0

    .line 31
    .restart local v0    # "iin":Landroid/os/IInterface;
    :cond_1
    new-instance v1, Lcom/android/internal/widget/ILockSettings$Stub$Proxy;

    invoke-direct {v1, p0}, Lcom/android/internal/widget/ILockSettings$Stub$Proxy;-><init>(Landroid/os/IBinder;)V

    return-object v1
.end method

# virtual methods
.method public asBinder()Landroid/os/IBinder;
    .locals 0

    .prologue
    .line 35
    return-object p0
.end method

.method public onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
    .locals 17
    .param p1, "code"    # I
    .param p2, "data"    # Landroid/os/Parcel;
    .param p3, "reply"    # Landroid/os/Parcel;
    .param p4, "flags"    # I
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Landroid/os/RemoteException;
        }
    .end annotation

    .prologue
    .line 39
    sparse-switch p1, :sswitch_data_0

    .line 289
    invoke-super/range {p0 .. p4}, Landroid/os/Binder;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z

    move-result v16

    return v16

    .line 43
    :sswitch_0
    const-string/jumbo v16, "com.android.internal.widget.ILockSettings"

    move-object/from16 v0, p3

    move-object/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V

    .line 44
    const/16 v16, 0x1

    return v16

    .line 48
    :sswitch_1
    const-string/jumbo v16, "com.android.internal.widget.ILockSettings"

    move-object/from16 v0, p2

    move-object/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 50
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;

    move-result-object v4

    .line 52
    .local v4, "_arg0":Ljava/lang/String;
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readInt()I

    move-result v16

    if-eqz v16, :cond_0

    const/4 v9, 0x1

    .line 54
    .local v9, "_arg1":Z
    :goto_0
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readInt()I

    move-result v10

    .line 55
    .local v10, "_arg2":I
    move-object/from16 v0, p0

    invoke-virtual {v0, v4, v9, v10}, Lcom/android/internal/widget/ILockSettings$Stub;->setBoolean(Ljava/lang/String;ZI)V

    .line 56
    invoke-virtual/range {p3 .. p3}, Landroid/os/Parcel;->writeNoException()V

    .line 57
    const/16 v16, 0x1

    return v16

    .line 52
    .end local v9    # "_arg1":Z
    .end local v10    # "_arg2":I
    :cond_0
    const/4 v9, 0x0

    .restart local v9    # "_arg1":Z
    goto :goto_0

    .line 61
    .end local v4    # "_arg0":Ljava/lang/String;
    .end local v9    # "_arg1":Z
    :sswitch_2
    const-string/jumbo v16, "com.android.internal.widget.ILockSettings"

    move-object/from16 v0, p2

    move-object/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 63
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;

    move-result-object v4

    .line 65
    .restart local v4    # "_arg0":Ljava/lang/String;
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readLong()J

    move-result-wide v6

    .line 67
    .local v6, "_arg1":J
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readInt()I

    move-result v10

    .line 68
    .restart local v10    # "_arg2":I
    move-object/from16 v0, p0

    invoke-virtual {v0, v4, v6, v7, v10}, Lcom/android/internal/widget/ILockSettings$Stub;->setLong(Ljava/lang/String;JI)V

    .line 69
    invoke-virtual/range {p3 .. p3}, Landroid/os/Parcel;->writeNoException()V

    .line 70
    const/16 v16, 0x1

    return v16

    .line 74
    .end local v4    # "_arg0":Ljava/lang/String;
    .end local v6    # "_arg1":J
    .end local v10    # "_arg2":I
    :sswitch_3
    const-string/jumbo v16, "com.android.internal.widget.ILockSettings"

    move-object/from16 v0, p2

    move-object/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 76
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;

    move-result-object v4

    .line 78
    .restart local v4    # "_arg0":Ljava/lang/String;
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;

    move-result-object v8

    .line 80
    .local v8, "_arg1":Ljava/lang/String;
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readInt()I

    move-result v10

    .line 81
    .restart local v10    # "_arg2":I
    move-object/from16 v0, p0

    invoke-virtual {v0, v4, v8, v10}, Lcom/android/internal/widget/ILockSettings$Stub;->setString(Ljava/lang/String;Ljava/lang/String;I)V

    .line 82
    invoke-virtual/range {p3 .. p3}, Landroid/os/Parcel;->writeNoException()V

    .line 83
    const/16 v16, 0x1

    return v16

    .line 87
    .end local v4    # "_arg0":Ljava/lang/String;
    .end local v8    # "_arg1":Ljava/lang/String;
    .end local v10    # "_arg2":I
    :sswitch_4
    const-string/jumbo v16, "com.android.internal.widget.ILockSettings"

    move-object/from16 v0, p2

    move-object/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 89
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;

    move-result-object v4

    .line 91
    .restart local v4    # "_arg0":Ljava/lang/String;
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readInt()I

    move-result v16

    if-eqz v16, :cond_1

    const/4 v9, 0x1

    .line 93
    .restart local v9    # "_arg1":Z
    :goto_1
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readInt()I

    move-result v10

    .line 94
    .restart local v10    # "_arg2":I
    move-object/from16 v0, p0

    invoke-virtual {v0, v4, v9, v10}, Lcom/android/internal/widget/ILockSettings$Stub;->getBoolean(Ljava/lang/String;ZI)Z

    move-result v15

    .line 95
    .local v15, "_result":Z
    invoke-virtual/range {p3 .. p3}, Landroid/os/Parcel;->writeNoException()V

    .line 96
    if-eqz v15, :cond_2

    const/16 v16, 0x1

    :goto_2
    move-object/from16 v0, p3

    move/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->writeInt(I)V

    .line 97
    const/16 v16, 0x1

    return v16

    .line 91
    .end local v9    # "_arg1":Z
    .end local v10    # "_arg2":I
    .end local v15    # "_result":Z
    :cond_1
    const/4 v9, 0x0

    .restart local v9    # "_arg1":Z
    goto :goto_1

    .line 96
    .restart local v10    # "_arg2":I
    .restart local v15    # "_result":Z
    :cond_2
    const/16 v16, 0x0

    goto :goto_2

    .line 101
    .end local v4    # "_arg0":Ljava/lang/String;
    .end local v9    # "_arg1":Z
    .end local v10    # "_arg2":I
    .end local v15    # "_result":Z
    :sswitch_5
    const-string/jumbo v16, "com.android.internal.widget.ILockSettings"

    move-object/from16 v0, p2

    move-object/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 103
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;

    move-result-object v4

    .line 105
    .restart local v4    # "_arg0":Ljava/lang/String;
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readLong()J

    move-result-wide v6

    .line 107
    .restart local v6    # "_arg1":J
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readInt()I

    move-result v10

    .line 108
    .restart local v10    # "_arg2":I
    move-object/from16 v0, p0

    invoke-virtual {v0, v4, v6, v7, v10}, Lcom/android/internal/widget/ILockSettings$Stub;->getLong(Ljava/lang/String;JI)J

    move-result-wide v12

    .line 109
    .local v12, "_result":J
    invoke-virtual/range {p3 .. p3}, Landroid/os/Parcel;->writeNoException()V

    .line 110
    move-object/from16 v0, p3

    invoke-virtual {v0, v12, v13}, Landroid/os/Parcel;->writeLong(J)V

    .line 111
    const/16 v16, 0x1

    return v16

    .line 115
    .end local v4    # "_arg0":Ljava/lang/String;
    .end local v6    # "_arg1":J
    .end local v10    # "_arg2":I
    .end local v12    # "_result":J
    :sswitch_6
    const-string/jumbo v16, "com.android.internal.widget.ILockSettings"

    move-object/from16 v0, p2

    move-object/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 117
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;

    move-result-object v4

    .line 119
    .restart local v4    # "_arg0":Ljava/lang/String;
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;

    move-result-object v8

    .line 121
    .restart local v8    # "_arg1":Ljava/lang/String;
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readInt()I

    move-result v10

    .line 122
    .restart local v10    # "_arg2":I
    move-object/from16 v0, p0

    invoke-virtual {v0, v4, v8, v10}, Lcom/android/internal/widget/ILockSettings$Stub;->getString(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;

    move-result-object v14

    .line 123
    .local v14, "_result":Ljava/lang/String;
    invoke-virtual/range {p3 .. p3}, Landroid/os/Parcel;->writeNoException()V

    .line 124
    move-object/from16 v0, p3

    invoke-virtual {v0, v14}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V

    .line 125
    const/16 v16, 0x1

    return v16

    .line 129
    .end local v4    # "_arg0":Ljava/lang/String;
    .end local v8    # "_arg1":Ljava/lang/String;
    .end local v10    # "_arg2":I
    .end local v14    # "_result":Ljava/lang/String;
    :sswitch_7
    const-string/jumbo v16, "com.android.internal.widget.ILockSettings"

    move-object/from16 v0, p2

    move-object/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 131
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;

    move-result-object v4

    .line 133
    .restart local v4    # "_arg0":Ljava/lang/String;
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;

    move-result-object v8

    .line 135
    .restart local v8    # "_arg1":Ljava/lang/String;
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readInt()I

    move-result v10

    .line 136
    .restart local v10    # "_arg2":I
    move-object/from16 v0, p0

    invoke-virtual {v0, v4, v8, v10}, Lcom/android/internal/widget/ILockSettings$Stub;->setLockPattern(Ljava/lang/String;Ljava/lang/String;I)V

    .line 137
    invoke-virtual/range {p3 .. p3}, Landroid/os/Parcel;->writeNoException()V

    .line 138
    const/16 v16, 0x1

    return v16

    .line 142
    .end local v4    # "_arg0":Ljava/lang/String;
    .end local v8    # "_arg1":Ljava/lang/String;
    .end local v10    # "_arg2":I
    :sswitch_8
    const-string/jumbo v16, "com.android.internal.widget.ILockSettings"

    move-object/from16 v0, p2

    move-object/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 144
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;

    move-result-object v4

    .line 146
    .restart local v4    # "_arg0":Ljava/lang/String;
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readInt()I

    move-result v5

    .line 147
    .local v5, "_arg1":I
    move-object/from16 v0, p0

    invoke-virtual {v0, v4, v5}, Lcom/android/internal/widget/ILockSettings$Stub;->checkPattern(Ljava/lang/String;I)Lcom/android/internal/widget/VerifyCredentialResponse;

    move-result-object v11

    .line 148
    .local v11, "_result":Lcom/android/internal/widget/VerifyCredentialResponse;
    invoke-virtual/range {p3 .. p3}, Landroid/os/Parcel;->writeNoException()V

    .line 149
    if-eqz v11, :cond_3

    .line 150
    const/16 v16, 0x1

    move-object/from16 v0, p3

    move/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->writeInt(I)V

    .line 151
    const/16 v16, 0x1

    move-object/from16 v0, p3

    move/from16 v1, v16

    invoke-virtual {v11, v0, v1}, Lcom/android/internal/widget/VerifyCredentialResponse;->writeToParcel(Landroid/os/Parcel;I)V

    .line 156
    :goto_3
    const/16 v16, 0x1

    return v16

    .line 154
    :cond_3
    const/16 v16, 0x0

    move-object/from16 v0, p3

    move/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->writeInt(I)V

    goto :goto_3

    .line 160
    .end local v4    # "_arg0":Ljava/lang/String;
    .end local v5    # "_arg1":I
    .end local v11    # "_result":Lcom/android/internal/widget/VerifyCredentialResponse;
    :sswitch_9
    const-string/jumbo v16, "com.android.internal.widget.ILockSettings"

    move-object/from16 v0, p2

    move-object/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 162
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;

    move-result-object v4

    .line 164
    .restart local v4    # "_arg0":Ljava/lang/String;
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readLong()J

    move-result-wide v6

    .line 166
    .restart local v6    # "_arg1":J
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readInt()I

    move-result v10

    .line 167
    .restart local v10    # "_arg2":I
    move-object/from16 v0, p0

    invoke-virtual {v0, v4, v6, v7, v10}, Lcom/android/internal/widget/ILockSettings$Stub;->verifyPattern(Ljava/lang/String;JI)Lcom/android/internal/widget/VerifyCredentialResponse;

    move-result-object v11

    .line 168
    .restart local v11    # "_result":Lcom/android/internal/widget/VerifyCredentialResponse;
    invoke-virtual/range {p3 .. p3}, Landroid/os/Parcel;->writeNoException()V

    .line 169
    if-eqz v11, :cond_4

    .line 170
    const/16 v16, 0x1

    move-object/from16 v0, p3

    move/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->writeInt(I)V

    .line 171
    const/16 v16, 0x1

    move-object/from16 v0, p3

    move/from16 v1, v16

    invoke-virtual {v11, v0, v1}, Lcom/android/internal/widget/VerifyCredentialResponse;->writeToParcel(Landroid/os/Parcel;I)V

    .line 176
    :goto_4
    const/16 v16, 0x1

    return v16

    .line 174
    :cond_4
    const/16 v16, 0x0

    move-object/from16 v0, p3

    move/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->writeInt(I)V

    goto :goto_4

    .line 180
    .end local v4    # "_arg0":Ljava/lang/String;
    .end local v6    # "_arg1":J
    .end local v10    # "_arg2":I
    .end local v11    # "_result":Lcom/android/internal/widget/VerifyCredentialResponse;
    :sswitch_a
    const-string/jumbo v16, "com.android.internal.widget.ILockSettings"

    move-object/from16 v0, p2

    move-object/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 182
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;

    move-result-object v4

    .line 184
    .restart local v4    # "_arg0":Ljava/lang/String;
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;

    move-result-object v8

    .line 186
    .restart local v8    # "_arg1":Ljava/lang/String;
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readInt()I

    move-result v10

    .line 187
    .restart local v10    # "_arg2":I
    move-object/from16 v0, p0

    invoke-virtual {v0, v4, v8, v10}, Lcom/android/internal/widget/ILockSettings$Stub;->setLockPassword(Ljava/lang/String;Ljava/lang/String;I)V

    .line 188
    invoke-virtual/range {p3 .. p3}, Landroid/os/Parcel;->writeNoException()V

    .line 189
    const/16 v16, 0x1

    return v16

    .line 193
    .end local v4    # "_arg0":Ljava/lang/String;
    .end local v8    # "_arg1":Ljava/lang/String;
    .end local v10    # "_arg2":I
    :sswitch_b
    const-string/jumbo v16, "com.android.internal.widget.ILockSettings"

    move-object/from16 v0, p2

    move-object/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 195
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;

    move-result-object v4

    .line 197
    .restart local v4    # "_arg0":Ljava/lang/String;
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readInt()I

    move-result v5

    .line 198
    .restart local v5    # "_arg1":I
    move-object/from16 v0, p0

    invoke-virtual {v0, v4, v5}, Lcom/android/internal/widget/ILockSettings$Stub;->checkPassword(Ljava/lang/String;I)Lcom/android/internal/widget/VerifyCredentialResponse;

    move-result-object v11

    .line 199
    .restart local v11    # "_result":Lcom/android/internal/widget/VerifyCredentialResponse;
    invoke-virtual/range {p3 .. p3}, Landroid/os/Parcel;->writeNoException()V

    .line 200
    if-eqz v11, :cond_5

    .line 201
    const/16 v16, 0x1

    move-object/from16 v0, p3

    move/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->writeInt(I)V

    .line 202
    const/16 v16, 0x1

    move-object/from16 v0, p3

    move/from16 v1, v16

    invoke-virtual {v11, v0, v1}, Lcom/android/internal/widget/VerifyCredentialResponse;->writeToParcel(Landroid/os/Parcel;I)V

    .line 207
    :goto_5
    const/16 v16, 0x1

    return v16

    .line 205
    :cond_5
    const/16 v16, 0x0

    move-object/from16 v0, p3

    move/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->writeInt(I)V

    goto :goto_5

    .line 211
    .end local v4    # "_arg0":Ljava/lang/String;
    .end local v5    # "_arg1":I
    .end local v11    # "_result":Lcom/android/internal/widget/VerifyCredentialResponse;
    :sswitch_c
    const-string/jumbo v16, "com.android.internal.widget.ILockSettings"

    move-object/from16 v0, p2

    move-object/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 213
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readString()Ljava/lang/String;

    move-result-object v4

    .line 215
    .restart local v4    # "_arg0":Ljava/lang/String;
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readLong()J

    move-result-wide v6

    .line 217
    .restart local v6    # "_arg1":J
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readInt()I

    move-result v10

    .line 218
    .restart local v10    # "_arg2":I
    move-object/from16 v0, p0

    invoke-virtual {v0, v4, v6, v7, v10}, Lcom/android/internal/widget/ILockSettings$Stub;->verifyPassword(Ljava/lang/String;JI)Lcom/android/internal/widget/VerifyCredentialResponse;

    move-result-object v11

    .line 219
    .restart local v11    # "_result":Lcom/android/internal/widget/VerifyCredentialResponse;
    invoke-virtual/range {p3 .. p3}, Landroid/os/Parcel;->writeNoException()V

    .line 220
    if-eqz v11, :cond_6

    .line 221
    const/16 v16, 0x1

    move-object/from16 v0, p3

    move/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->writeInt(I)V

    .line 222
    const/16 v16, 0x1

    move-object/from16 v0, p3

    move/from16 v1, v16

    invoke-virtual {v11, v0, v1}, Lcom/android/internal/widget/VerifyCredentialResponse;->writeToParcel(Landroid/os/Parcel;I)V

    .line 227
    :goto_6
    const/16 v16, 0x1

    return v16

    .line 225
    :cond_6
    const/16 v16, 0x0

    move-object/from16 v0, p3

    move/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->writeInt(I)V

    goto :goto_6

    .line 231
    .end local v4    # "_arg0":Ljava/lang/String;
    .end local v6    # "_arg1":J
    .end local v10    # "_arg2":I
    .end local v11    # "_result":Lcom/android/internal/widget/VerifyCredentialResponse;
    :sswitch_d
    const-string/jumbo v16, "com.android.internal.widget.ILockSettings"

    move-object/from16 v0, p2

    move-object/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 233
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readInt()I

    move-result v2

    .line 234
    .local v2, "_arg0":I
    move-object/from16 v0, p0

    invoke-virtual {v0, v2}, Lcom/android/internal/widget/ILockSettings$Stub;->checkVoldPassword(I)Z

    move-result v15

    .line 235
    .restart local v15    # "_result":Z
    invoke-virtual/range {p3 .. p3}, Landroid/os/Parcel;->writeNoException()V

    .line 236
    if-eqz v15, :cond_7

    const/16 v16, 0x1

    :goto_7
    move-object/from16 v0, p3

    move/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->writeInt(I)V

    .line 237
    const/16 v16, 0x1

    return v16

    .line 236
    :cond_7
    const/16 v16, 0x0

    goto :goto_7

    .line 241
    .end local v2    # "_arg0":I
    .end local v15    # "_result":Z
    :sswitch_e
    const-string/jumbo v16, "com.android.internal.widget.ILockSettings"

    move-object/from16 v0, p2

    move-object/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 243
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readInt()I

    move-result v2

    .line 244
    .restart local v2    # "_arg0":I
    move-object/from16 v0, p0

    invoke-virtual {v0, v2}, Lcom/android/internal/widget/ILockSettings$Stub;->havePattern(I)Z

    move-result v15

    .line 245
    .restart local v15    # "_result":Z
    invoke-virtual/range {p3 .. p3}, Landroid/os/Parcel;->writeNoException()V

    .line 246
    if-eqz v15, :cond_8

    const/16 v16, 0x1

    :goto_8
    move-object/from16 v0, p3

    move/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->writeInt(I)V

    .line 247
    const/16 v16, 0x1

    return v16

    .line 246
    :cond_8
    const/16 v16, 0x0

    goto :goto_8

    .line 251
    .end local v2    # "_arg0":I
    .end local v15    # "_result":Z
    :sswitch_f
    const-string/jumbo v16, "com.android.internal.widget.ILockSettings"

    move-object/from16 v0, p2

    move-object/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 253
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readInt()I

    move-result v2

    .line 254
    .restart local v2    # "_arg0":I
    move-object/from16 v0, p0

    invoke-virtual {v0, v2}, Lcom/android/internal/widget/ILockSettings$Stub;->havePassword(I)Z

    move-result v15

    .line 255
    .restart local v15    # "_result":Z
    invoke-virtual/range {p3 .. p3}, Landroid/os/Parcel;->writeNoException()V

    .line 256
    if-eqz v15, :cond_9

    const/16 v16, 0x1

    :goto_9
    move-object/from16 v0, p3

    move/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->writeInt(I)V

    .line 257
    const/16 v16, 0x1

    return v16

    .line 256
    :cond_9
    const/16 v16, 0x0

    goto :goto_9

    .line 261
    .end local v2    # "_arg0":I
    .end local v15    # "_result":Z
    :sswitch_10
    const-string/jumbo v16, "com.android.internal.widget.ILockSettings"

    move-object/from16 v0, p2

    move-object/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 263
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readStrongBinder()Landroid/os/IBinder;

    move-result-object v16

    invoke-static/range {v16 .. v16}, Landroid/app/trust/IStrongAuthTracker$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/trust/IStrongAuthTracker;

    move-result-object v3

    .line 264
    .local v3, "_arg0":Landroid/app/trust/IStrongAuthTracker;
    move-object/from16 v0, p0

    invoke-virtual {v0, v3}, Lcom/android/internal/widget/ILockSettings$Stub;->registerStrongAuthTracker(Landroid/app/trust/IStrongAuthTracker;)V

    .line 265
    invoke-virtual/range {p3 .. p3}, Landroid/os/Parcel;->writeNoException()V

    .line 266
    const/16 v16, 0x1

    return v16

    .line 270
    .end local v3    # "_arg0":Landroid/app/trust/IStrongAuthTracker;
    :sswitch_11
    const-string/jumbo v16, "com.android.internal.widget.ILockSettings"

    move-object/from16 v0, p2

    move-object/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 272
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readStrongBinder()Landroid/os/IBinder;

    move-result-object v16

    invoke-static/range {v16 .. v16}, Landroid/app/trust/IStrongAuthTracker$Stub;->asInterface(Landroid/os/IBinder;)Landroid/app/trust/IStrongAuthTracker;

    move-result-object v3

    .line 273
    .restart local v3    # "_arg0":Landroid/app/trust/IStrongAuthTracker;
    move-object/from16 v0, p0

    invoke-virtual {v0, v3}, Lcom/android/internal/widget/ILockSettings$Stub;->unregisterStrongAuthTracker(Landroid/app/trust/IStrongAuthTracker;)V

    .line 274
    invoke-virtual/range {p3 .. p3}, Landroid/os/Parcel;->writeNoException()V

    .line 275
    const/16 v16, 0x1

    return v16

    .line 279
    .end local v3    # "_arg0":Landroid/app/trust/IStrongAuthTracker;
    :sswitch_12
    const-string/jumbo v16, "com.android.internal.widget.ILockSettings"

    move-object/from16 v0, p2

    move-object/from16 v1, v16

    invoke-virtual {v0, v1}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 281
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readInt()I

    move-result v2

    .line 283
    .restart local v2    # "_arg0":I
    invoke-virtual/range {p2 .. p2}, Landroid/os/Parcel;->readInt()I

    move-result v5

    .line 284
    .restart local v5    # "_arg1":I
    move-object/from16 v0, p0

    invoke-virtual {v0, v2, v5}, Lcom/android/internal/widget/ILockSettings$Stub;->requireStrongAuth(II)V

    .line 285
    invoke-virtual/range {p3 .. p3}, Landroid/os/Parcel;->writeNoException()V

    .line 286
    const/16 v16, 0x1

    return v16

    .line 39
    nop

    :sswitch_data_0
    .sparse-switch
        0x1 -> :sswitch_1
        0x2 -> :sswitch_2
        0x3 -> :sswitch_3
        0x4 -> :sswitch_4
        0x5 -> :sswitch_5
        0x6 -> :sswitch_6
        0x7 -> :sswitch_7
        0x8 -> :sswitch_8
        0x9 -> :sswitch_9
        0xa -> :sswitch_a
        0xb -> :sswitch_b
        0xc -> :sswitch_c
        0xd -> :sswitch_d
        0xe -> :sswitch_e
        0xf -> :sswitch_f
        0x10 -> :sswitch_10
        0x11 -> :sswitch_11
        0x12 -> :sswitch_12
        0x5f4e5446 -> :sswitch_0
    .end sparse-switch
.end method


text:
/*
 * Copyright 2011-2014, by Vladimir Kostyukov and Contributors.
 *
 * This file is part of la4j project (http://la4j.org)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * You may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * Contributor(s): -
 */
package net.fec.openrq.util.linearalgebra.vector.source;

public interface VectorSource {

    /**
     * @param i
     * @return
     */
    byte get(int i);

    /**
     * @return
     */
    int length();
}