package com.google.android.m4b.maps.bm;

import android.util.Pair;
import com.google.android.m4b.maps.bc.ba;
import com.google.android.m4b.maps.bc.bg;
import com.google.android.m4b.maps.bk.f;
import com.google.android.m4b.maps.bk.f.a;
import com.google.android.m4b.maps.bk.f.b;
import com.google.android.m4b.maps.bl.ao;
import com.google.android.m4b.maps.bq.q;
import com.google.android.m4b.maps.z.b;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.Lists;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;

public final class a
{

  @VisibleForTesting
  protected static final ba a = new ba(-1, 0, 0);
  private static a b;
  private final b c;
  private final Map<Pair<Long, d>, c> d = new HashMap();
  private final int e;
  private final int f;
  private int g = 0;
  private int h = 0;
  private final List<Long> i = Lists.newArrayList();

  @VisibleForTesting
  private a(b paramb, int paramInt1, int paramInt2)
  {
    this.c = paramb;
    this.e = paramInt1;
    this.f = paramInt2;
  }

  private c a(long paramLong, Pair<Long, d> paramPair)
  {
    if (!this.i.contains(Long.valueOf(paramLong)))
    {
      c localc = new c(paramLong);
      this.d.put(paramPair, localc);
      return localc;
    }
    return null;
  }

  public static a a()
  {
    try
    {
      a locala = b;
      return locala;
    }
    finally
    {
      localObject = finally;
      throw localObject;
    }
  }

  private static String a(int paramInt)
  {
    int j = com.google.android.m4b.maps.ag.e.a(paramInt * 10, 1048576);
    return j / 10 + "." + j % 10;
  }

  private void a(int paramInt1, int paramInt2)
  {
    while (true)
    {
      TreeSet localTreeSet;
      try
      {
        if (this.g <= paramInt1)
        {
          int j = this.h;
          if (j <= paramInt2)
            return;
        }
        localTreeSet = new TreeSet();
        Iterator localIterator1 = this.d.entrySet().iterator();
        if (localIterator1.hasNext())
        {
          Map.Entry localEntry = (Map.Entry)localIterator1.next();
          f.b localb2 = ((c)localEntry.getValue()).g();
          if ((localb2 == null) || (localb2.a == a))
            continue;
          localTreeSet.add(new b((Pair)localEntry.getKey(), (ba)localb2.a, (a)localb2.b));
          continue;
        }
      }
      finally
      {
      }
      ArrayList localArrayList = new ArrayList();
      while ((!localTreeSet.isEmpty()) && ((this.g > paramInt1) || (this.h > paramInt2)))
      {
        b localb = (b)localTreeSet.first();
        c localc = (c)this.d.get(localb.a);
        localc.c(localb.b);
        if ((localc.b() == 0) && (c.a(localc).isEmpty()))
          localArrayList.add(localb.a);
        localTreeSet.remove(localb);
        f.b localb1 = localc.g();
        if ((localb1 != null) && (localb1.a != a))
          localTreeSet.add(new b(localb.a, (ba)localb1.a, (a)localb1.b));
      }
      Iterator localIterator2 = localArrayList.iterator();
      while (localIterator2.hasNext())
      {
        Pair localPair = (Pair)localIterator2.next();
        this.d.remove(localPair);
      }
    }
  }

  public static void a(b paramb)
  {
    try
    {
      if (b == null)
      {
        int j = ao.f();
        b = new a(paramb, 1024 * (j * 1024) / 2, 3 * (1024 * (j * 1024)) / 16);
      }
      return;
    }
    finally
    {
      localObject = finally;
      throw localObject;
    }
  }

  private a b(com.google.android.m4b.maps.bo.e parame, d paramd, ba paramba, boolean paramBoolean)
  {
    while (true)
    {
      Object localObject3;
      try
      {
        long l = com.google.android.m4b.maps.bo.e.a(parame);
        Pair localPair = Pair.create(Long.valueOf(l), paramd);
        Object localObject2 = (c)this.d.get(localPair);
        if (localObject2 == null)
          if (paramBoolean)
          {
            c localc = a(l, localPair);
            localObject2 = localc;
            if (localObject2 == null)
            {
              locala = null;
              return locala;
            }
          }
          else
          {
            locala = null;
            continue;
          }
        localObject3 = localObject2;
        locala = (a)localObject3.b(paramba);
        if (locala != null)
        {
          locala.d = this.c.b();
          continue;
        }
      }
      finally
      {
      }
      if (paramBoolean)
        localObject3.c(paramba, new a(null, 0, 0, this.c.b()));
      a locala = null;
    }
  }

  public final q a(com.google.android.m4b.maps.bo.e parame, d paramd, ba paramba, boolean paramBoolean)
  {
    try
    {
      a locala = b(parame, paramd, paramba, paramBoolean);
      if (locala != null);
      for (q localq = locala.a; ; localq = null)
        return localq;
    }
    finally
    {
    }
  }

  public final void a(com.google.android.m4b.maps.bo.e parame)
  {
    ArrayList localArrayList;
    try
    {
      long l = com.google.android.m4b.maps.bo.e.a(parame);
      this.i.add(Long.valueOf(l));
      localArrayList = new ArrayList();
      Iterator localIterator1 = this.d.entrySet().iterator();
      while (localIterator1.hasNext())
      {
        Map.Entry localEntry = (Map.Entry)localIterator1.next();
        if (((Long)((Pair)localEntry.getKey()).first).longValue() == l)
        {
          ((c)localEntry.getValue()).a();
          ((c)localEntry.getValue()).a(null);
          localArrayList.add(localEntry.getKey());
        }
      }
    }
    finally
    {
    }
    Iterator localIterator2 = localArrayList.iterator();
    while (localIterator2.hasNext())
    {
      Pair localPair = (Pair)localIterator2.next();
      this.d.remove(localPair);
    }
  }

  public final void a(com.google.android.m4b.maps.bo.e parame, d paramd)
  {
    try
    {
      Pair localPair = Pair.create(Long.valueOf(com.google.android.m4b.maps.bo.e.a(parame)), paramd);
      c localc = (c)this.d.get(localPair);
      if (localc != null)
      {
        localc.a();
        localc.a(parame);
        this.d.remove(localPair);
      }
      return;
    }
    finally
    {
    }
  }

  public final void a(com.google.android.m4b.maps.bo.e parame, d paramd, ba paramba, q paramq)
  {
    while (true)
    {
      c localc1;
      try
      {
        long l = com.google.android.m4b.maps.bo.e.a(parame);
        Pair localPair = Pair.create(Long.valueOf(l), paramd);
        localc1 = (c)this.d.get(localPair);
        if (localc1 == null)
        {
          c localc2 = a(l, localPair);
          localc3 = localc2;
          if (localc3 == null)
            return;
          a locala = (a)localc3.a(paramba);
          if (locala == null)
            continue;
          if (locala.a != null)
            localc3.a(new a(locala));
          locala.a = paramq;
          locala.b = paramq.f();
          locala.c = paramq.g();
          this.g += locala.b;
          this.h += locala.c;
          a(this.e, this.f);
          continue;
        }
      }
      finally
      {
      }
      c localc3 = localc1;
    }
  }

  public final void a(com.google.android.m4b.maps.bo.e parame, d paramd, List<ba> paramList)
  {
    while (true)
    {
      try
      {
        c localc = (c)this.d.get(Pair.create(Long.valueOf(com.google.android.m4b.maps.bo.e.a(parame)), paramd));
        if (localc == null)
          return;
        j = 0;
        Iterator localIterator = paramList.iterator();
        if (localIterator.hasNext())
        {
          a locala = (a)localc.a((ba)localIterator.next());
          if ((locala != null) && (locala.a != null) && (locala.b == 0))
          {
            k = j + locala.c;
            break label139;
          }
        }
        else
        {
          a(this.e - j, this.f);
          continue;
        }
      }
      finally
      {
      }
      int k = j;
      label139: int j = k;
    }
  }

  public final void a(boolean paramBoolean)
  {
    if (paramBoolean);
    try
    {
      a(this.g, 0);
      while (true)
      {
        return;
        a(this.g, this.h / 2);
      }
    }
    finally
    {
    }
  }

  public final void b()
  {
    a(0, this.h);
  }

  public final void b(com.google.android.m4b.maps.bo.e parame)
  {
    if (parame == null);
    while (true)
    {
      return;
      try
      {
        long l = com.google.android.m4b.maps.bo.e.a(parame);
        Iterator localIterator = this.d.entrySet().iterator();
        while (localIterator.hasNext())
        {
          Map.Entry localEntry = (Map.Entry)localIterator.next();
          if (((Long)((Pair)localEntry.getKey()).first).longValue() == l)
          {
            ((c)localEntry.getValue()).c(a);
            ((c)localEntry.getValue()).a(parame);
          }
        }
      }
      finally
      {
      }
    }
  }

  public final void b(com.google.android.m4b.maps.bo.e parame, d paramd)
  {
    try
    {
      Pair localPair = Pair.create(Long.valueOf(com.google.android.m4b.maps.bo.e.a(parame)), paramd);
      c localc = (c)this.d.get(localPair);
      if (localc != null)
      {
        localc.c(a);
        localc.f();
        localc.a(parame);
        if (localc.b() == 0)
          this.d.remove(localPair);
      }
      return;
    }
    finally
    {
    }
  }

  public final void b(com.google.android.m4b.maps.bo.e parame, d paramd, List<ba> paramList)
  {
    while (true)
    {
      try
      {
        c localc = (c)this.d.get(Pair.create(Long.valueOf(com.google.android.m4b.maps.bo.e.a(parame)), paramd));
        if (localc == null)
          return;
        Iterator localIterator = paramList.iterator();
        if (localIterator.hasNext())
        {
          a locala = (a)localc.a((ba)localIterator.next());
          if ((locala == null) || (locala.a == null) || (locala.b != 0))
            continue;
          locala.b = locala.a.f();
          this.g += locala.b;
          int j = locala.c;
          int k = locala.a.g();
          locala.c = k;
          this.h = (k + (this.h - j));
          continue;
        }
      }
      finally
      {
      }
      a(this.e, this.f);
    }
  }

  public final String c()
  {
    StringBuilder localStringBuilder;
    try
    {
      localStringBuilder = new StringBuilder();
      Iterator localIterator = this.d.entrySet().iterator();
      while (localIterator.hasNext())
      {
        Map.Entry localEntry = (Map.Entry)localIterator.next();
        int j = ((c)localEntry.getValue()).b();
        if (j != 0)
        {
          if (localStringBuilder.length() > 0)
            localStringBuilder.append(" + ");
          localStringBuilder.append(j).append(" ").append(localEntry.getKey());
        }
      }
    }
    finally
    {
    }
    if (localStringBuilder.length() == 0)
      localStringBuilder.append("no");
    localStringBuilder.append(" tiles use ");
    localStringBuilder.append(a(this.g)).append("/").append(a(this.e)).append("M GL, ").append(a(this.h)).append("/").append(a(this.f)).append("M J+N");
    String str = localStringBuilder.toString();
    return str;
  }

  public final void c(com.google.android.m4b.maps.bo.e parame, d paramd)
  {
    try
    {
      c localc = (c)this.d.get(Pair.create(Long.valueOf(com.google.android.m4b.maps.bo.e.a(parame)), paramd));
      if (localc != null)
        localc.f();
      return;
    }
    finally
    {
    }
  }

  public final void d(com.google.android.m4b.maps.bo.e parame, d paramd)
  {
    try
    {
      long l = com.google.android.m4b.maps.bo.e.a(parame);
      Pair localPair = Pair.create(Long.valueOf(l), paramd);
      Object localObject2 = (c)this.d.get(localPair);
      if (localObject2 == null)
      {
        c localc = a(l, localPair);
        localObject2 = localc;
      }
      if (localObject2 == null);
      while (true)
      {
        return;
        ((c)localObject2).h();
        ((c)localObject2).a(parame);
      }
    }
    finally
    {
    }
  }

  @VisibleForTesting
  static final class a
  {
    public q a;
    public int b;
    public int c;
    public long d;

    public a(a parama)
    {
      this.a = parama.a;
      this.b = parama.b;
      this.c = parama.c;
      this.d = parama.d;
    }

    public a(q paramq, int paramInt1, int paramInt2, long paramLong)
    {
      this.a = null;
      this.b = 0;
      this.c = 0;
      this.d = paramLong;
    }
  }

  static final class b
    implements Comparable<b>
  {
    public Pair<Long, a.d> a;
    public ba b;
    private a.a c;

    public b(Pair<Long, a.d> paramPair, ba paramba, a.a parama)
    {
      this.a = paramPair;
      this.b = paramba;
      this.c = parama;
    }
  }

  final class c extends f<ba, a.a>
  {
    private final Long a;
    private final List<a.a> b = new ArrayList();

    public c(long arg2)
    {
      super();
      Object localObject;
      this.a = Long.valueOf(localObject);
    }

    public final void a(a.a parama)
    {
      this.b.add(parama);
    }

    public final void a(com.google.android.m4b.maps.bo.e parame)
    {
      Iterator localIterator = this.b.iterator();
      while (localIterator.hasNext())
      {
        a.a locala = (a.a)localIterator.next();
        locala.a.c(parame);
        a.a(a.this, a.a(a.this) - locala.b);
        a.b(a.this, a.b(a.this) - locala.c);
      }
      this.b.clear();
    }

    public final void f()
    {
      ArrayList localArrayList = new ArrayList(b());
      f.a locala = e();
      while (locala.hasNext())
      {
        f.b localb = locala.a();
        if (localb.a == a.a)
          break;
        a.a locala1 = (a.a)localb.b;
        q localq = locala1.a;
        if ((localq == null) || (!localq.a()))
        {
          localArrayList.add(localb.a);
        }
        else
        {
          localq.b(com.google.android.m4b.maps.bo.e.b(this.a.longValue()));
          a.a(a.this, a.a(a.this) - locala1.b);
          locala1.b = 0;
        }
      }
      Iterator localIterator = localArrayList.iterator();
      while (localIterator.hasNext())
        c((ba)localIterator.next());
    }

    public final f.b<ba, a.a> g()
    {
      f.a locala = e();
      if (locala.hasNext())
        return locala.a();
      return null;
    }

    public final void h()
    {
      long l = a.c(a.this).b();
      a.a locala = (a.a)b(a.a);
      if (locala == null)
      {
        c(a.a, new a.a(null, 0, 0, l));
        return;
      }
      locala.d = l;
    }
  }

  public static final class d
    implements Comparable<d>
  {
    private final int a;
    private final com.google.android.m4b.maps.bk.a b;
    private final String c;

    public d(bg parambg, Set<bg> paramSet)
    {
      this(parambg, null, com.google.android.m4b.maps.bk.a.a);
    }

    public d(bg parambg, Set<bg> paramSet, com.google.android.m4b.maps.bk.a parama)
    {
      if (parambg.A)
        throw new IllegalArgumentException("Modifier tile types not allowed as base");
      int i = 1 << parambg.d();
      StringBuilder localStringBuilder = new StringBuilder(parambg.toString());
      if ((paramSet != null) && (!paramSet.isEmpty()))
      {
        localStringBuilder.append(" with modifiers ");
        Iterator localIterator = paramSet.iterator();
        int j = i;
        while (localIterator.hasNext())
        {
          bg localbg = (bg)localIterator.next();
          if (!localbg.A)
            throw new IllegalArgumentException("Only modifier tile types allowed");
          j |= 1 << localbg.d();
          localStringBuilder.append(localbg.toString());
          if (localIterator.hasNext())
            localStringBuilder.append(", ");
        }
        i = j;
      }
      if (parama != com.google.android.m4b.maps.bk.a.a)
        localStringBuilder.append(" with mask " + parama);
      this.a = i;
      this.c = localStringBuilder.toString();
      this.b = parama;
    }

    public final boolean equals(Object paramObject)
    {
      return ((paramObject instanceof d)) && (((d)paramObject).a == this.a) && (((d)paramObject).b.equals(this.b));
    }

    public final int hashCode()
    {
      return 33 * this.a ^ this.b.hashCode();
    }

    public final String toString()
    {
      return this.c;
    }
  }
}

/* Location:           C:\Documents and Settings\Cesar Cabello Cea\Mis documentos\Downloads\apk-downloader\com.ikea.kompis-6_dex2jar.jar
 * Qualified Name:     com.google.android.m4b.maps.bm.a
 * JD-Core Version:    0.6.2
 */