soul-browser/app/smali/kotlin/io/FilesKt__UtilsKt.smali
KaKi87 550ddb0413
Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1)
* Decompile and recreate Soul Browser v1.4.85 with APK CI builds

Co-authored-by: KaKi87 <KaKi87@pm.me>

* Fix CI build: include bundled google.jks and remove PR trigger

The apktool build failed in CI because app/unknown/.../google.jks was
excluded by the *.jks gitignore rule. Whitelist app-bundled JKS files
and commit the missing resource.

Also remove the redundant pull_request workflow trigger.

Co-authored-by: KaKi87 <KaKi87@pm.me>

* Change package ID to com.github.kaki87.soulbrowser

Rename the application ID so the rebuilt APK can be installed
alongside the original Soul Browser from Google Play.

- Update AndroidManifest package, permissions, providers, and actions
- Update R class references in smali (com/github/kaki87/soulbrowser/R)
- Update shortcuts.xml targetPackage
- Rename app label to "Soul Rebuild" for easy identification

Co-authored-by: KaKi87 <KaKi87@pm.me>

* Fix install compatibility: remove split APK metadata and bundle native libs

The rebuilt APK still declared requiredSplitTypes and Play Store split
metadata, causing Android to reject standalone installs as incompatible.

- Remove requiredSplitTypes and split-related manifest meta-data
- Merge native libs from all ABI splits with uncompressed storage
- Page-align before signing for extractNativeLibs=false
- Add .so to apktool doNotCompress list

Co-authored-by: KaKi87 <KaKi87@pm.me>

* Fix install failure: use apksigner v2/v3 and bundle arm64 native libs

Target SDK 36 requires APK Signature Scheme v2+, but jarsigner only
produces v1 signatures, causing Android to reject the install.

- Sign with apksigner (v1+v2+v3) instead of jarsigner
- Add arm64-v8a native libraries from universal Soul Browser 1.4.79
- Set extractNativeLibs=true for reliable sideload installs
- Commit stable debug keystore for consistent signatures across builds

Co-authored-by: KaKi87 <KaKi87@pm.me>

* Add committed debug keystore for consistent APK signatures

Co-authored-by: KaKi87 <KaKi87@pm.me>

* Fix startup crash: use original classes2.dex desugar libraries

Apktool recompiles smali_classes2 into a broken classes2.dex, causing
ClassNotFoundException for j$.com.android.tools.r8.a at ML Kit init.

Inject the original classes2.dex (Java 8+ desugar libs) after apktool
build instead of using the recompiled version.

Co-authored-by: KaKi87 <KaKi87@pm.me>

* Fix missing drawable resources from density split APKs

The base APK is an app bundle module; density-specific drawables like
seek_thumb_nor_b live in config.xhdpi.apk and were missing after rebuild,
causing Resources$NotFoundException at runtime.

- Merge non-9-patch resources from split APKs before apktool build
- Sync public.xml IDs from R smali only when backing files exist
- Add 713 density-specific resource IDs to public.xml

Co-authored-by: KaKi87 <KaKi87@pm.me>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-08-10 16:07:14 +02:00

2895 lines
66 KiB
Smali

.class Lkotlin/io/FilesKt__UtilsKt;
.super Lkotlin/io/FilesKt__FileTreeWalkKt;
.source "SourceFile"
# annotations
.annotation runtime Lkotlin/Metadata;
d1 = {
"\u0000<\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000e\n\u0002\u0008\u0014\n\u0002\u0010\u000b\n\u0000\n\u0002\u0010\u0008\n\u0002\u0008\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0008\u0005\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010 \n\u0002\u0008\u0004\u001a*\u0010\u0000\u001a\u00020\u00012\u0008\u0008\u0002\u0010\u0002\u001a\u00020\u00032\n\u0008\u0002\u0010\u0004\u001a\u0004\u0018\u00010\u00032\n\u0008\u0002\u0010\u0005\u001a\u0004\u0018\u00010\u0001H\u0007\u001a*\u0010\u0006\u001a\u00020\u00012\u0008\u0008\u0002\u0010\u0002\u001a\u00020\u00032\n\u0008\u0002\u0010\u0004\u001a\u0004\u0018\u00010\u00032\n\u0008\u0002\u0010\u0005\u001a\u0004\u0018\u00010\u0001H\u0007\u001a\u0012\u0010\u000e\u001a\u00020\u0003*\u00020\u00012\u0006\u0010\u000f\u001a\u00020\u0001\u001a\u0012\u0010\u0010\u001a\u00020\u0001*\u00020\u00012\u0006\u0010\u000f\u001a\u00020\u0001\u001a\u0012\u0010\u0011\u001a\u00020\u0001*\u00020\u00012\u0006\u0010\u000f\u001a\u00020\u0001\u001a\u0014\u0010\u0012\u001a\u0004\u0018\u00010\u0001*\u00020\u00012\u0006\u0010\u000f\u001a\u00020\u0001\u001a\u001b\u0010\u0013\u001a\u0004\u0018\u00010\u0003*\u00020\u00012\u0006\u0010\u000f\u001a\u00020\u0001H\u0002\u00a2\u0006\u0002\u0008\u0014\u001a&\u0010\u0015\u001a\u00020\u0001*\u00020\u00012\u0006\u0010\u0016\u001a\u00020\u00012\u0008\u0008\u0002\u0010\u0017\u001a\u00020\u00182\u0008\u0008\u0002\u0010\u0019\u001a\u00020\u001a\u001a8\u0010\u001b\u001a\u00020\u0018*\u00020\u00012\u0006\u0010\u0016\u001a\u00020\u00012\u0008\u0008\u0002\u0010\u0017\u001a\u00020\u00182\u001a\u0008\u0002\u0010\u001c\u001a\u0014\u0012\u0004\u0012\u00020\u0001\u0012\u0004\u0012\u00020\u001e\u0012\u0004\u0012\u00020\u001f0\u001d\u001a\n\u0010 \u001a\u00020\u0018*\u00020\u0001\u001a\u0012\u0010!\u001a\u00020\u0018*\u00020\u00012\u0006\u0010\"\u001a\u00020\u0001\u001a\u0012\u0010!\u001a\u00020\u0018*\u00020\u00012\u0006\u0010\"\u001a\u00020\u0003\u001a\u0012\u0010#\u001a\u00020\u0018*\u00020\u00012\u0006\u0010\"\u001a\u00020\u0001\u001a\u0012\u0010#\u001a\u00020\u0018*\u00020\u00012\u0006\u0010\"\u001a\u00020\u0003\u001a\n\u0010$\u001a\u00020\u0001*\u00020\u0001\u001a\u0011\u0010$\u001a\u00020%*\u00020%H\u0002\u00a2\u0006\u0002\u0008&\u001a\u001d\u0010$\u001a\u0008\u0012\u0004\u0012\u00020\u00010\'*\u0008\u0012\u0004\u0012\u00020\u00010\'H\u0002\u00a2\u0006\u0002\u0008&\u001a\u0012\u0010(\u001a\u00020\u0001*\u00020\u00012\u0006\u0010)\u001a\u00020\u0001\u001a\u0012\u0010(\u001a\u00020\u0001*\u00020\u00012\u0006\u0010)\u001a\u00020\u0003\u001a\u0012\u0010*\u001a\u00020\u0001*\u00020\u00012\u0006\u0010)\u001a\u00020\u0001\u001a\u0012\u0010*\u001a\u00020\u0001*\u00020\u00012\u0006\u0010)\u001a\u00020\u0003\"\u0015\u0010\u0007\u001a\u00020\u0003*\u00020\u00018F\u00a2\u0006\u0006\u001a\u0004\u0008\u0008\u0010\t\"\u0015\u0010\n\u001a\u00020\u0003*\u00020\u00018F\u00a2\u0006\u0006\u001a\u0004\u0008\u000b\u0010\t\"\u0015\u0010\u000c\u001a\u00020\u0003*\u00020\u00018F\u00a2\u0006\u0006\u001a\u0004\u0008\r\u0010\t\u00a8\u0006+"
}
d2 = {
"createTempDir",
"Ljava/io/File;",
"prefix",
"",
"suffix",
"directory",
"createTempFile",
"extension",
"getExtension",
"(Ljava/io/File;)Ljava/lang/String;",
"invariantSeparatorsPath",
"getInvariantSeparatorsPath",
"nameWithoutExtension",
"getNameWithoutExtension",
"toRelativeString",
"base",
"relativeTo",
"relativeToOrSelf",
"relativeToOrNull",
"toRelativeStringOrNull",
"toRelativeStringOrNull$FilesKt__UtilsKt",
"copyTo",
"target",
"overwrite",
"",
"bufferSize",
"",
"copyRecursively",
"onError",
"Lkotlin/Function2;",
"Ljava/io/IOException;",
"Lkotlin/io/OnErrorAction;",
"deleteRecursively",
"startsWith",
"other",
"endsWith",
"normalize",
"Lkotlin/io/FilePathComponents;",
"normalize$FilesKt__UtilsKt",
"",
"resolve",
"relative",
"resolveSibling",
"kotlin-stdlib"
}
k = 0x5
mv = {
0x2,
0x2,
0x0
}
xi = 0x31
xs = "kotlin/io/FilesKt"
.end annotation
.annotation build Lkotlin/jvm/internal/SourceDebugExtension;
value = {
"SMAP\nUtils.kt\nKotlin\n*S Kotlin\n*F\n+ 1 Utils.kt\nkotlin/io/FilesKt__UtilsKt\n+ 2 fake.kt\nkotlin/jvm/internal/FakeKt\n+ 3 _Sequences.kt\nkotlin/sequences/SequencesKt___SequencesKt\n*L\n1#1,473:1\n1#2:474\n1292#3,3:475\n*S KotlinDebug\n*F\n+ 1 Utils.kt\nkotlin/io/FilesKt__UtilsKt\n*L\n347#1:475,3\n*E\n"
}
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Lkotlin/io/FilesKt__FileTreeWalkKt;-><init>()V
return-void
.end method
.method public static synthetic b(Lkotlin/jvm/functions/Function2;Ljava/io/File;Ljava/io/IOException;)Lkotlin/Unit;
.locals 0
.line 1
invoke-static {p0, p1, p2}, Lkotlin/io/FilesKt__UtilsKt;->copyRecursively$lambda$0$FilesKt__UtilsKt(Lkotlin/jvm/functions/Function2;Ljava/io/File;Ljava/io/IOException;)Lkotlin/Unit;
move-result-object p0
return-object p0
.end method
.method public static final copyRecursively(Ljava/io/File;Ljava/io/File;ZLkotlin/jvm/functions/Function2;)Z
.locals 9
.param p0 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.param p1 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.param p3 # Lkotlin/jvm/functions/Function2;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/io/File;",
"Ljava/io/File;",
"Z",
"Lkotlin/jvm/functions/Function2<",
"-",
"Ljava/io/File;",
"-",
"Ljava/io/IOException;",
"+",
"Lkotlin/io/OnErrorAction;",
">;)Z"
}
.end annotation
.line 1
const-string v0, "<this>"
.line 2
.line 3
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 4
.line 5
.line 6
const-string v0, "target"
.line 7
.line 8
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 9
.line 10
.line 11
const-string v0, "onError"
.line 12
.line 13
invoke-static {p3, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 14
.line 15
.line 16
invoke-virtual {p0}, Ljava/io/File;->exists()Z
.line 17
.line 18
.line 19
move-result v0
.line 20
if-nez v0, :cond_0
.line 21
.line 22
new-instance v1, Lkotlin/io/NoSuchFileException;
.line 23
.line 24
const/4 v5, 0x2
.line 25
const/4 v6, 0x0
.line 26
const/4 v3, 0x0
.line 27
const-string v4, "The source file doesn\'t exist."
.line 28
.line 29
move-object v2, p0
.line 30
invoke-direct/range {v1 .. v6}, Lkotlin/io/NoSuchFileException;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
.line 31
.line 32
.line 33
invoke-interface {p3, v2, v1}, Lkotlin/jvm/functions/Function2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 34
.line 35
.line 36
move-result-object p0
.line 37
sget-object p1, Lkotlin/io/OnErrorAction;->TERMINATE:Lkotlin/io/OnErrorAction;
.line 38
.line 39
if-eq p0, p1, :cond_a
.line 40
.line 41
goto/16 :goto_2
.line 42
.line 43
:cond_0
move-object v2, p0
.line 44
:try_start_0
invoke-static {v2}, Lkotlin/io/FilesKt__FileTreeWalkKt;->walkTopDown(Ljava/io/File;)Lkotlin/io/FileTreeWalk;
.line 45
.line 46
.line 47
move-result-object p0
.line 48
new-instance v0, Lkotlin/io/b;
.line 49
.line 50
invoke-direct {v0, p3}, Lkotlin/io/b;-><init>(Lkotlin/jvm/functions/Function2;)V
.line 51
.line 52
.line 53
invoke-virtual {p0, v0}, Lkotlin/io/FileTreeWalk;->onFail(Lkotlin/jvm/functions/Function2;)Lkotlin/io/FileTreeWalk;
.line 54
.line 55
.line 56
move-result-object p0
.line 57
invoke-virtual {p0}, Lkotlin/io/FileTreeWalk;->iterator()Ljava/util/Iterator;
.line 58
.line 59
.line 60
move-result-object p0
.line 61
:cond_1
:goto_0
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
.line 62
.line 63
.line 64
move-result v0
.line 65
if-eqz v0, :cond_9
.line 66
.line 67
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
.line 68
.line 69
.line 70
move-result-object v0
.line 71
move-object v3, v0
.line 72
check-cast v3, Ljava/io/File;
.line 73
.line 74
invoke-virtual {v3}, Ljava/io/File;->exists()Z
.line 75
.line 76
.line 77
move-result v0
.line 78
if-nez v0, :cond_2
.line 79
.line 80
move-object v4, v3
.line 81
new-instance v3, Lkotlin/io/NoSuchFileException;
.line 82
.line 83
const-string v6, "The source file doesn\'t exist."
.line 84
.line 85
const/4 v7, 0x2
.line 86
const/4 v8, 0x0
.line 87
const/4 v5, 0x0
.line 88
invoke-direct/range {v3 .. v8}, Lkotlin/io/NoSuchFileException;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
.line 89
.line 90
.line 91
invoke-interface {p3, v4, v3}, Lkotlin/jvm/functions/Function2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 92
.line 93
.line 94
move-result-object v0
.line 95
sget-object v1, Lkotlin/io/OnErrorAction;->TERMINATE:Lkotlin/io/OnErrorAction;
.line 96
.line 97
if-ne v0, v1, :cond_1
.line 98
.line 99
goto/16 :goto_3
.line 100
.line 101
:cond_2
move-object v4, v3
.line 102
invoke-static {v4, v2}, Lkotlin/io/FilesKt__UtilsKt;->toRelativeString(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;
.line 103
.line 104
.line 105
move-result-object v0
.line 106
new-instance v4, Ljava/io/File;
.line 107
.line 108
invoke-direct {v4, p1, v0}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
.line 109
.line 110
.line 111
invoke-virtual {v4}, Ljava/io/File;->exists()Z
.line 112
.line 113
.line 114
move-result v0
.line 115
if-eqz v0, :cond_6
.line 116
.line 117
invoke-virtual {v3}, Ljava/io/File;->isDirectory()Z
.line 118
.line 119
.line 120
move-result v0
.line 121
if-eqz v0, :cond_3
.line 122
.line 123
invoke-virtual {v4}, Ljava/io/File;->isDirectory()Z
.line 124
.line 125
.line 126
move-result v0
.line 127
if-nez v0, :cond_6
.line 128
.line 129
:cond_3
if-nez p2, :cond_4
.line 130
.line 131
goto :goto_1
.line 132
:cond_4
invoke-virtual {v4}, Ljava/io/File;->isDirectory()Z
.line 133
.line 134
.line 135
move-result v0
.line 136
if-eqz v0, :cond_5
.line 137
.line 138
invoke-static {v4}, Lkotlin/io/FilesKt__UtilsKt;->deleteRecursively(Ljava/io/File;)Z
.line 139
.line 140
.line 141
move-result v0
.line 142
if-nez v0, :cond_6
.line 143
.line 144
goto :goto_1
.line 145
:cond_5
invoke-virtual {v4}, Ljava/io/File;->delete()Z
.line 146
.line 147
.line 148
move-result v0
.line 149
if-nez v0, :cond_6
.line 150
.line 151
:goto_1
new-instance v0, Lkotlin/io/FileAlreadyExistsException;
.line 152
.line 153
const-string v1, "The destination file already exists."
.line 154
.line 155
invoke-direct {v0, v3, v4, v1}, Lkotlin/io/FileAlreadyExistsException;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)V
.line 156
.line 157
.line 158
invoke-interface {p3, v4, v0}, Lkotlin/jvm/functions/Function2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 159
.line 160
.line 161
move-result-object v0
.line 162
sget-object v1, Lkotlin/io/OnErrorAction;->TERMINATE:Lkotlin/io/OnErrorAction;
.line 163
.line 164
if-ne v0, v1, :cond_1
.line 165
.line 166
goto :goto_3
.line 167
:cond_6
invoke-virtual {v3}, Ljava/io/File;->isDirectory()Z
.line 168
.line 169
.line 170
move-result v0
.line 171
if-eqz v0, :cond_7
.line 172
.line 173
invoke-virtual {v4}, Ljava/io/File;->mkdirs()Z
.line 174
.line 175
.line 176
goto :goto_0
.line 177
:cond_7
const/4 v7, 0x4
.line 178
const/4 v8, 0x0
.line 179
const/4 v6, 0x0
.line 180
move v5, p2
.line 181
invoke-static/range {v3 .. v8}, Lkotlin/io/FilesKt__UtilsKt;->copyTo$default(Ljava/io/File;Ljava/io/File;ZIILjava/lang/Object;)Ljava/io/File;
.line 182
.line 183
.line 184
move-result-object p2
.line 185
move-object v4, v3
.line 186
invoke-virtual {p2}, Ljava/io/File;->length()J
.line 187
.line 188
.line 189
move-result-wide v0
.line 190
invoke-virtual {v4}, Ljava/io/File;->length()J
.line 191
.line 192
.line 193
move-result-wide v6
.line 194
cmp-long p2, v0, v6
.line 195
.line 196
if-eqz p2, :cond_8
.line 197
.line 198
new-instance p2, Ljava/io/IOException;
.line 199
.line 200
const-string v0, "Source file wasn\'t copied completely, length of destination file differs."
.line 201
.line 202
invoke-direct {p2, v0}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
.line 203
.line 204
.line 205
invoke-interface {p3, v4, p2}, Lkotlin/jvm/functions/Function2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 206
.line 207
.line 208
move-result-object p2
.line 209
sget-object v0, Lkotlin/io/OnErrorAction;->TERMINATE:Lkotlin/io/OnErrorAction;
:try_end_0
.catch Lkotlin/io/TerminateException; {:try_start_0 .. :try_end_0} :catch_0
.line 210
.line 211
if-ne p2, v0, :cond_8
.line 212
.line 213
goto :goto_3
.line 214
:cond_8
move p2, v5
.line 215
goto/16 :goto_0
.line 216
.line 217
:cond_9
:goto_2
const/4 p0, 0x1
.line 218
return p0
.line 219
:catch_0
:cond_a
:goto_3
const/4 p0, 0x0
.line 220
return p0
.end method
.method public static synthetic copyRecursively$default(Ljava/io/File;Ljava/io/File;ZLkotlin/jvm/functions/Function2;ILjava/lang/Object;)Z
.locals 0
.line 1
and-int/lit8 p5, p4, 0x2
.line 2
.line 3
if-eqz p5, :cond_0
.line 4
.line 5
const/4 p2, 0x0
.line 6
:cond_0
and-int/lit8 p4, p4, 0x4
.line 7
.line 8
if-eqz p4, :cond_1
.line 9
.line 10
sget-object p3, Lkotlin/io/FilesKt__UtilsKt$copyRecursively$1;->INSTANCE:Lkotlin/io/FilesKt__UtilsKt$copyRecursively$1;
.line 11
.line 12
:cond_1
invoke-static {p0, p1, p2, p3}, Lkotlin/io/FilesKt__UtilsKt;->copyRecursively(Ljava/io/File;Ljava/io/File;ZLkotlin/jvm/functions/Function2;)Z
.line 13
.line 14
.line 15
move-result p0
.line 16
return p0
.end method
.method private static final copyRecursively$lambda$0$FilesKt__UtilsKt(Lkotlin/jvm/functions/Function2;Ljava/io/File;Ljava/io/IOException;)Lkotlin/Unit;
.locals 1
.line 1
const-string v0, "f"
.line 2
.line 3
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 4
.line 5
.line 6
const-string v0, "e"
.line 7
.line 8
invoke-static {p2, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 9
.line 10
.line 11
invoke-interface {p0, p1, p2}, Lkotlin/jvm/functions/Function2;->invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 12
.line 13
.line 14
move-result-object p0
.line 15
sget-object p2, Lkotlin/io/OnErrorAction;->TERMINATE:Lkotlin/io/OnErrorAction;
.line 16
.line 17
if-eq p0, p2, :cond_0
.line 18
.line 19
sget-object p0, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
.line 20
.line 21
return-object p0
.line 22
:cond_0
new-instance p0, Lkotlin/io/TerminateException;
.line 23
.line 24
invoke-direct {p0, p1}, Lkotlin/io/TerminateException;-><init>(Ljava/io/File;)V
.line 25
.line 26
.line 27
throw p0
.end method
.method public static final copyTo(Ljava/io/File;Ljava/io/File;ZI)Ljava/io/File;
.locals 6
.param p0 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.param p1 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.line 1
const-string v0, "<this>"
.line 2
.line 3
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 4
.line 5
.line 6
const-string v0, "target"
.line 7
.line 8
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 9
.line 10
.line 11
invoke-virtual {p0}, Ljava/io/File;->exists()Z
.line 12
.line 13
.line 14
move-result v0
.line 15
if-eqz v0, :cond_6
.line 16
.line 17
invoke-virtual {p1}, Ljava/io/File;->exists()Z
.line 18
.line 19
.line 20
move-result v0
.line 21
if-eqz v0, :cond_2
.line 22
.line 23
if-eqz p2, :cond_1
.line 24
.line 25
invoke-virtual {p1}, Ljava/io/File;->delete()Z
.line 26
.line 27
.line 28
move-result p2
.line 29
if-eqz p2, :cond_0
.line 30
.line 31
goto :goto_0
.line 32
:cond_0
new-instance p2, Lkotlin/io/FileAlreadyExistsException;
.line 33
.line 34
const-string p3, "Tried to overwrite the destination, but failed to delete it."
.line 35
.line 36
invoke-direct {p2, p0, p1, p3}, Lkotlin/io/FileAlreadyExistsException;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)V
.line 37
.line 38
.line 39
throw p2
.line 40
:cond_1
new-instance p2, Lkotlin/io/FileAlreadyExistsException;
.line 41
.line 42
const-string p3, "The destination file already exists."
.line 43
.line 44
invoke-direct {p2, p0, p1, p3}, Lkotlin/io/FileAlreadyExistsException;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)V
.line 45
.line 46
.line 47
throw p2
.line 48
:cond_2
:goto_0
invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z
.line 49
.line 50
.line 51
move-result p2
.line 52
if-eqz p2, :cond_4
.line 53
.line 54
invoke-virtual {p1}, Ljava/io/File;->mkdirs()Z
.line 55
.line 56
.line 57
move-result p2
.line 58
if-eqz p2, :cond_3
.line 59
.line 60
return-object p1
.line 61
:cond_3
new-instance p2, Lkotlin/io/FileSystemException;
.line 62
.line 63
const-string p3, "Failed to create target directory."
.line 64
.line 65
invoke-direct {p2, p0, p1, p3}, Lkotlin/io/FileSystemException;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;)V
.line 66
.line 67
.line 68
throw p2
.line 69
:cond_4
invoke-virtual {p1}, Ljava/io/File;->getParentFile()Ljava/io/File;
.line 70
.line 71
.line 72
move-result-object p2
.line 73
if-eqz p2, :cond_5
.line 74
.line 75
invoke-virtual {p2}, Ljava/io/File;->mkdirs()Z
.line 76
.line 77
.line 78
:cond_5
new-instance p2, Ljava/io/FileInputStream;
.line 79
.line 80
invoke-direct {p2, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
.line 81
.line 82
.line 83
:try_start_0
new-instance p0, Ljava/io/FileOutputStream;
.line 84
.line 85
invoke-direct {p0, p1}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
.line 86
.line 87
.line 88
:try_start_1
invoke-static {p2, p0, p3}, Lkotlin/io/ByteStreamsKt;->copyTo(Ljava/io/InputStream;Ljava/io/OutputStream;I)J
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_1
.line 89
.line 90
.line 91
const/4 p3, 0x0
.line 92
:try_start_2
invoke-static {p0, p3}, Lkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V
:try_end_2
.catchall {:try_start_2 .. :try_end_2} :catchall_0
.line 93
.line 94
.line 95
invoke-static {p2, p3}, Lkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V
.line 96
.line 97
.line 98
return-object p1
.line 99
:catchall_0
move-exception v0
.line 100
move-object p0, v0
.line 101
goto :goto_1
.line 102
:catchall_1
move-exception v0
.line 103
move-object p1, v0
.line 104
:try_start_3
throw p1
:try_end_3
.catchall {:try_start_3 .. :try_end_3} :catchall_2
.line 105
:catchall_2
move-exception v0
.line 106
move-object p3, v0
.line 107
:try_start_4
invoke-static {p0, p1}, Lkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V
.line 108
.line 109
.line 110
throw p3
:try_end_4
.catchall {:try_start_4 .. :try_end_4} :catchall_0
.line 111
:goto_1
:try_start_5
throw p0
:try_end_5
.catchall {:try_start_5 .. :try_end_5} :catchall_3
.line 112
:catchall_3
move-exception v0
.line 113
move-object p1, v0
.line 114
invoke-static {p2, p0}, Lkotlin/io/CloseableKt;->closeFinally(Ljava/io/Closeable;Ljava/lang/Throwable;)V
.line 115
.line 116
.line 117
throw p1
.line 118
:cond_6
new-instance v0, Lkotlin/io/NoSuchFileException;
.line 119
.line 120
const/4 v4, 0x2
.line 121
const/4 v5, 0x0
.line 122
const/4 v2, 0x0
.line 123
const-string v3, "The source file doesn\'t exist."
.line 124
.line 125
move-object v1, p0
.line 126
invoke-direct/range {v0 .. v5}, Lkotlin/io/NoSuchFileException;-><init>(Ljava/io/File;Ljava/io/File;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
.line 127
.line 128
.line 129
throw v0
.end method
.method public static synthetic copyTo$default(Ljava/io/File;Ljava/io/File;ZIILjava/lang/Object;)Ljava/io/File;
.locals 0
.line 1
and-int/lit8 p5, p4, 0x2
.line 2
.line 3
if-eqz p5, :cond_0
.line 4
.line 5
const/4 p2, 0x0
.line 6
:cond_0
and-int/lit8 p4, p4, 0x4
.line 7
.line 8
if-eqz p4, :cond_1
.line 9
.line 10
const/16 p3, 0x2000
.line 11
.line 12
:cond_1
invoke-static {p0, p1, p2, p3}, Lkotlin/io/FilesKt__UtilsKt;->copyTo(Ljava/io/File;Ljava/io/File;ZI)Ljava/io/File;
.line 13
.line 14
.line 15
move-result-object p0
.line 16
return-object p0
.end method
.method public static final createTempDir(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
.locals 1
.param p0 # Ljava/lang/String;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.param p1 # Ljava/lang/String;
.annotation build Lorg/jetbrains/annotations/Nullable;
.end annotation
.end param
.param p2 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/Nullable;
.end annotation
.end param
.annotation runtime Lkotlin/Deprecated;
message = "Avoid creating temporary directories in the default temp location with this function due to too wide permissions on the newly created directory. Use kotlin.io.path.createTempDirectory instead."
.end annotation
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.line 1
const-string v0, "prefix"
.line 2
.line 3
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 4
.line 5
.line 6
invoke-static {p0, p1, p2}, Ljava/io/File;->createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
.line 7
.line 8
.line 9
move-result-object p0
.line 10
invoke-virtual {p0}, Ljava/io/File;->delete()Z
.line 11
.line 12
.line 13
invoke-virtual {p0}, Ljava/io/File;->mkdir()Z
.line 14
.line 15
.line 16
move-result p1
.line 17
if-eqz p1, :cond_0
.line 18
.line 19
invoke-static {p0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;)V
.line 20
.line 21
.line 22
return-object p0
.line 23
:cond_0
new-instance p1, Ljava/io/IOException;
.line 24
.line 25
new-instance p2, Ljava/lang/StringBuilder;
.line 26
.line 27
const-string v0, "Unable to create temporary directory "
.line 28
.line 29
invoke-direct {p2, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 30
.line 31
.line 32
invoke-virtual {p2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
.line 33
.line 34
.line 35
const/16 p0, 0x2e
.line 36
.line 37
invoke-virtual {p2, p0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 38
.line 39
.line 40
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
.line 41
.line 42
.line 43
move-result-object p0
.line 44
invoke-direct {p1, p0}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
.line 45
.line 46
.line 47
throw p1
.end method
.method public static synthetic createTempDir$default(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;ILjava/lang/Object;)Ljava/io/File;
.locals 1
.line 1
and-int/lit8 p4, p3, 0x1
.line 2
.line 3
if-eqz p4, :cond_0
.line 4
.line 5
const-string p0, "tmp"
.line 6
.line 7
:cond_0
and-int/lit8 p4, p3, 0x2
.line 8
.line 9
const/4 v0, 0x0
.line 10
if-eqz p4, :cond_1
.line 11
.line 12
move-object p1, v0
.line 13
:cond_1
and-int/lit8 p3, p3, 0x4
.line 14
.line 15
if-eqz p3, :cond_2
.line 16
.line 17
move-object p2, v0
.line 18
:cond_2
invoke-static {p0, p1, p2}, Lkotlin/io/FilesKt__UtilsKt;->createTempDir(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
.line 19
.line 20
.line 21
move-result-object p0
.line 22
return-object p0
.end method
.method public static final createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
.locals 1
.param p0 # Ljava/lang/String;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.param p1 # Ljava/lang/String;
.annotation build Lorg/jetbrains/annotations/Nullable;
.end annotation
.end param
.param p2 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/Nullable;
.end annotation
.end param
.annotation runtime Lkotlin/Deprecated;
message = "Avoid creating temporary files in the default temp location with this function due to too wide permissions on the newly created file. Use kotlin.io.path.createTempFile instead or resort to java.io.File.createTempFile."
.end annotation
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.line 1
const-string v0, "prefix"
.line 2
.line 3
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 4
.line 5
.line 6
invoke-static {p0, p1, p2}, Ljava/io/File;->createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
.line 7
.line 8
.line 9
move-result-object p0
.line 10
const-string p1, "createTempFile(...)"
.line 11
.line 12
invoke-static {p0, p1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
.line 13
.line 14
.line 15
return-object p0
.end method
.method public static synthetic createTempFile$default(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;ILjava/lang/Object;)Ljava/io/File;
.locals 1
.line 1
and-int/lit8 p4, p3, 0x1
.line 2
.line 3
if-eqz p4, :cond_0
.line 4
.line 5
const-string p0, "tmp"
.line 6
.line 7
:cond_0
and-int/lit8 p4, p3, 0x2
.line 8
.line 9
const/4 v0, 0x0
.line 10
if-eqz p4, :cond_1
.line 11
.line 12
move-object p1, v0
.line 13
:cond_1
and-int/lit8 p3, p3, 0x4
.line 14
.line 15
if-eqz p3, :cond_2
.line 16
.line 17
move-object p2, v0
.line 18
:cond_2
invoke-static {p0, p1, p2}, Lkotlin/io/FilesKt__UtilsKt;->createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
.line 19
.line 20
.line 21
move-result-object p0
.line 22
return-object p0
.end method
.method public static final deleteRecursively(Ljava/io/File;)Z
.locals 4
.param p0 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.line 1
const-string v0, "<this>"
.line 2
.line 3
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 4
.line 5
.line 6
invoke-static {p0}, Lkotlin/io/FilesKt__FileTreeWalkKt;->walkBottomUp(Ljava/io/File;)Lkotlin/io/FileTreeWalk;
.line 7
.line 8
.line 9
move-result-object p0
.line 10
invoke-interface {p0}, Lkotlin/sequences/Sequence;->iterator()Ljava/util/Iterator;
.line 11
.line 12
.line 13
move-result-object p0
.line 14
const/4 v0, 0x1
.line 15
:goto_0
move v1, v0
.line 16
:goto_1
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
.line 17
.line 18
.line 19
move-result v2
.line 20
if-eqz v2, :cond_2
.line 21
.line 22
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
.line 23
.line 24
.line 25
move-result-object v2
.line 26
check-cast v2, Ljava/io/File;
.line 27
.line 28
invoke-virtual {v2}, Ljava/io/File;->delete()Z
.line 29
.line 30
.line 31
move-result v3
.line 32
if-nez v3, :cond_0
.line 33
.line 34
invoke-virtual {v2}, Ljava/io/File;->exists()Z
.line 35
.line 36
.line 37
move-result v2
.line 38
if-nez v2, :cond_1
.line 39
.line 40
:cond_0
if-eqz v1, :cond_1
.line 41
.line 42
goto :goto_0
.line 43
:cond_1
const/4 v1, 0x0
.line 44
goto :goto_1
.line 45
:cond_2
return v1
.end method
.method public static final endsWith(Ljava/io/File;Ljava/io/File;)Z
.locals 3
.param p0 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.param p1 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
const-string v0, "<this>"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "other"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 1
invoke-static {p0}, Lkotlin/io/FilesKt__FilePathComponentsKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object v0
.line 2
invoke-static {p1}, Lkotlin/io/FilesKt__FilePathComponentsKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object v1
.line 3
invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->isRooted()Z
move-result v2
if-eqz v2, :cond_0
.line 4
invoke-static {p0, p1}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result p0
return p0
.line 5
:cond_0
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSize()I
move-result p0
invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->getSize()I
move-result p1
sub-int/2addr p0, p1
if-gez p0, :cond_1
const/4 p0, 0x0
return p0
.line 6
:cond_1
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object p1
invoke-virtual {v0}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v0
invoke-interface {p1, p0, v0}, Ljava/util/List;->subList(II)Ljava/util/List;
move-result-object p0
invoke-virtual {v1}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object p1
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
return p0
.end method
.method public static final endsWith(Ljava/io/File;Ljava/lang/String;)Z
.locals 1
.param p0 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.param p1 # Ljava/lang/String;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
const-string v0, "<this>"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "other"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 7
new-instance v0, Ljava/io/File;
invoke-direct {v0, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-static {p0, v0}, Lkotlin/io/FilesKt__UtilsKt;->endsWith(Ljava/io/File;Ljava/io/File;)Z
move-result p0
return p0
.end method
.method public static final getExtension(Ljava/io/File;)Ljava/lang/String;
.locals 1
.param p0 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.line 1
const-string v0, "<this>"
.line 2
.line 3
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 4
.line 5
.line 6
invoke-virtual {p0}, Ljava/io/File;->getName()Ljava/lang/String;
.line 7
.line 8
.line 9
move-result-object p0
.line 10
const-string v0, "getName(...)"
.line 11
.line 12
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
.line 13
.line 14
.line 15
invoke-static {p0}, Lkotlin/text/StringsKt;->N(Ljava/lang/String;)Ljava/lang/String;
.line 16
.line 17
.line 18
move-result-object p0
.line 19
return-object p0
.end method
.method public static final getInvariantSeparatorsPath(Ljava/io/File;)Ljava/lang/String;
.locals 3
.param p0 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.line 1
const-string v0, "<this>"
.line 2
.line 3
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 4
.line 5
.line 6
sget-char v0, Ljava/io/File;->separatorChar:C
.line 7
.line 8
const-string v1, "getPath(...)"
.line 9
.line 10
const/16 v2, 0x2f
.line 11
.line 12
invoke-virtual {p0}, Ljava/io/File;->getPath()Ljava/lang/String;
.line 13
.line 14
.line 15
move-result-object p0
.line 16
invoke-static {p0, v1}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
.line 17
.line 18
.line 19
if-eq v0, v2, :cond_0
.line 20
.line 21
invoke-static {p0, v0, v2}, Lkotlin/text/StringsKt;->D(Ljava/lang/String;CC)Ljava/lang/String;
.line 22
.line 23
.line 24
move-result-object p0
.line 25
:cond_0
return-object p0
.end method
.method public static final getNameWithoutExtension(Ljava/io/File;)Ljava/lang/String;
.locals 1
.param p0 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.line 1
const-string v0, "<this>"
.line 2
.line 3
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 4
.line 5
.line 6
invoke-virtual {p0}, Ljava/io/File;->getName()Ljava/lang/String;
.line 7
.line 8
.line 9
move-result-object p0
.line 10
const-string v0, "getName(...)"
.line 11
.line 12
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
.line 13
.line 14
.line 15
invoke-static {p0}, Lkotlin/text/StringsKt;->O(Ljava/lang/String;)Ljava/lang/String;
.line 16
.line 17
.line 18
move-result-object p0
.line 19
return-object p0
.end method
.method public static final normalize(Ljava/io/File;)Ljava/io/File;
.locals 7
.param p0 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.line 1
const-string v0, "<this>"
.line 2
.line 3
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 4
.line 5
.line 6
invoke-static {p0}, Lkotlin/io/FilesKt__FilePathComponentsKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
.line 7
.line 8
.line 9
move-result-object p0
.line 10
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File;
.line 11
.line 12
.line 13
move-result-object v0
.line 14
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
.line 15
.line 16
.line 17
move-result-object p0
.line 18
invoke-static {p0}, Lkotlin/io/FilesKt__UtilsKt;->normalize$FilesKt__UtilsKt(Ljava/util/List;)Ljava/util/List;
.line 19
.line 20
.line 21
move-result-object v1
.line 22
sget-object v2, Ljava/io/File;->separator:Ljava/lang/String;
.line 23
.line 24
const-string p0, "separator"
.line 25
.line 26
invoke-static {v2, p0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
.line 27
.line 28
.line 29
const/4 v5, 0x0
.line 30
const/16 v6, 0x3e
.line 31
.line 32
const/4 v3, 0x0
.line 33
const/4 v4, 0x0
.line 34
invoke-static/range {v1 .. v6}, Lkotlin/collections/CollectionsKt;->n(Ljava/lang/Iterable;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function1;I)Ljava/lang/String;
.line 35
.line 36
.line 37
move-result-object p0
.line 38
invoke-static {v0, p0}, Lkotlin/io/FilesKt__UtilsKt;->resolve(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
.line 39
.line 40
.line 41
move-result-object p0
.line 42
return-object p0
.end method
.method private static final normalize$FilesKt__UtilsKt(Ljava/util/List;)Ljava/util/List;
.locals 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"+",
"Ljava/io/File;",
">;)",
"Ljava/util/List<",
"Ljava/io/File;",
">;"
}
.end annotation
.line 2
new-instance v0, Ljava/util/ArrayList;
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v1
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
.line 3
invoke-interface {p0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p0
:goto_0
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_3
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/io/File;
.line 4
invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
.line 5
const-string v3, "."
invoke-static {v2, v3}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_0
sget-object v1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
goto :goto_0
.line 6
:cond_0
const-string v3, ".."
invoke-static {v2, v3}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_2
invoke-interface {v0}, Ljava/util/List;->isEmpty()Z
move-result v2
if-nez v2, :cond_1
invoke-static {v0}, Lkotlin/collections/CollectionsKt;->last(Ljava/util/List;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/io/File;
invoke-virtual {v2}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v2
invoke-static {v2, v3}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_1
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v1
add-int/lit8 v1, v1, -0x1
invoke-interface {v0, v1}, Ljava/util/List;->remove(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/Comparable;
goto :goto_0
:cond_1
invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_0
.line 7
:cond_2
invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_0
:cond_3
return-object v0
.end method
.method private static final normalize$FilesKt__UtilsKt(Lkotlin/io/FilePathComponents;)Lkotlin/io/FilePathComponents;
.locals 2
.line 1
new-instance v0, Lkotlin/io/FilePathComponents;
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File;
move-result-object v1
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object p0
invoke-static {p0}, Lkotlin/io/FilesKt__UtilsKt;->normalize$FilesKt__UtilsKt(Ljava/util/List;)Ljava/util/List;
move-result-object p0
invoke-direct {v0, v1, p0}, Lkotlin/io/FilePathComponents;-><init>(Ljava/io/File;Ljava/util/List;)V
return-object v0
.end method
.method public static final relativeTo(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
.locals 1
.param p0 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.param p1 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.line 1
const-string v0, "<this>"
.line 2
.line 3
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 4
.line 5
.line 6
const-string v0, "base"
.line 7
.line 8
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 9
.line 10
.line 11
new-instance v0, Ljava/io/File;
.line 12
.line 13
invoke-static {p0, p1}, Lkotlin/io/FilesKt__UtilsKt;->toRelativeString(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;
.line 14
.line 15
.line 16
move-result-object p0
.line 17
invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 18
.line 19
.line 20
return-object v0
.end method
.method public static final relativeToOrNull(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
.locals 1
.param p0 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.param p1 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.annotation build Lorg/jetbrains/annotations/Nullable;
.end annotation
.line 1
const-string v0, "<this>"
.line 2
.line 3
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 4
.line 5
.line 6
const-string v0, "base"
.line 7
.line 8
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 9
.line 10
.line 11
invoke-static {p0, p1}, Lkotlin/io/FilesKt__UtilsKt;->toRelativeStringOrNull$FilesKt__UtilsKt(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;
.line 12
.line 13
.line 14
move-result-object p0
.line 15
if-eqz p0, :cond_0
.line 16
.line 17
new-instance p1, Ljava/io/File;
.line 18
.line 19
invoke-direct {p1, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 20
.line 21
.line 22
return-object p1
.line 23
:cond_0
const/4 p0, 0x0
.line 24
return-object p0
.end method
.method public static final relativeToOrSelf(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
.locals 1
.param p0 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.param p1 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.line 1
const-string v0, "<this>"
.line 2
.line 3
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 4
.line 5
.line 6
const-string v0, "base"
.line 7
.line 8
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 9
.line 10
.line 11
invoke-static {p0, p1}, Lkotlin/io/FilesKt__UtilsKt;->toRelativeStringOrNull$FilesKt__UtilsKt(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;
.line 12
.line 13
.line 14
move-result-object p1
.line 15
if-eqz p1, :cond_0
.line 16
.line 17
new-instance p0, Ljava/io/File;
.line 18
.line 19
invoke-direct {p0, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 20
.line 21
.line 22
:cond_0
return-object p0
.end method
.method public static final resolve(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
.locals 3
.param p0 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.param p1 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
const-string v0, "<this>"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "relative"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 1
invoke-static {p1}, Lkotlin/io/FilesKt__FilePathComponentsKt;->isRooted(Ljava/io/File;)Z
move-result v0
if-eqz v0, :cond_0
return-object p1
.line 2
:cond_0
invoke-virtual {p0}, Ljava/io/File;->toString()Ljava/lang/String;
move-result-object p0
const-string v0, "toString(...)"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
.line 3
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_1
goto :goto_0
:cond_1
sget-char v0, Ljava/io/File;->separatorChar:C
invoke-static {v0, p0}, Lkotlin/text/StringsKt;->r(CLjava/lang/String;)Z
move-result v1
if-eqz v1, :cond_2
:goto_0
new-instance v0, Ljava/io/File;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
return-object v0
:cond_2
new-instance v1, Ljava/io/File;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v1, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
return-object v1
.end method
.method public static final resolve(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
.locals 1
.param p0 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.param p1 # Ljava/lang/String;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
const-string v0, "<this>"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "relative"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 4
new-instance v0, Ljava/io/File;
invoke-direct {v0, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-static {p0, v0}, Lkotlin/io/FilesKt__UtilsKt;->resolve(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
move-result-object p0
return-object p0
.end method
.method public static final resolveSibling(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
.locals 2
.param p0 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.param p1 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
const-string v0, "<this>"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "relative"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 1
invoke-static {p0}, Lkotlin/io/FilesKt__FilePathComponentsKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object p0
.line 2
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v0
if-nez v0, :cond_0
new-instance v0, Ljava/io/File;
const-string v1, ".."
invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
goto :goto_0
:cond_0
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v0
add-int/lit8 v0, v0, -0x1
const/4 v1, 0x0
invoke-virtual {p0, v1, v0}, Lkotlin/io/FilePathComponents;->subPath(II)Ljava/io/File;
move-result-object v0
.line 3
:goto_0
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File;
move-result-object p0
invoke-static {p0, v0}, Lkotlin/io/FilesKt__UtilsKt;->resolve(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
move-result-object p0
invoke-static {p0, p1}, Lkotlin/io/FilesKt__UtilsKt;->resolve(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
move-result-object p0
return-object p0
.end method
.method public static final resolveSibling(Ljava/io/File;Ljava/lang/String;)Ljava/io/File;
.locals 1
.param p0 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.param p1 # Ljava/lang/String;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
const-string v0, "<this>"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "relative"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 4
new-instance v0, Ljava/io/File;
invoke-direct {v0, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-static {p0, v0}, Lkotlin/io/FilesKt__UtilsKt;->resolveSibling(Ljava/io/File;Ljava/io/File;)Ljava/io/File;
move-result-object p0
return-object p0
.end method
.method public static final startsWith(Ljava/io/File;Ljava/io/File;)Z
.locals 3
.param p0 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.param p1 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
const-string v0, "<this>"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "other"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 1
invoke-static {p0}, Lkotlin/io/FilesKt__FilePathComponentsKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object p0
.line 2
invoke-static {p1}, Lkotlin/io/FilesKt__FilePathComponentsKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
move-result-object p1
.line 3
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File;
move-result-object v0
invoke-virtual {p1}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File;
move-result-object v1
invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v0
const/4 v1, 0x0
if-nez v0, :cond_0
return v1
.line 4
:cond_0
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v0
invoke-virtual {p1}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v2
if-ge v0, v2, :cond_1
return v1
.line 5
:cond_1
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object p0
invoke-virtual {p1}, Lkotlin/io/FilePathComponents;->getSize()I
move-result v0
invoke-interface {p0, v1, v0}, Ljava/util/List;->subList(II)Ljava/util/List;
move-result-object p0
invoke-virtual {p1}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
move-result-object p1
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
return p0
.end method
.method public static final startsWith(Ljava/io/File;Ljava/lang/String;)Z
.locals 1
.param p0 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.param p1 # Ljava/lang/String;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
const-string v0, "<this>"
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "other"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 6
new-instance v0, Ljava/io/File;
invoke-direct {v0, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-static {p0, v0}, Lkotlin/io/FilesKt__UtilsKt;->startsWith(Ljava/io/File;Ljava/io/File;)Z
move-result p0
return p0
.end method
.method public static final toRelativeString(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;
.locals 3
.param p0 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.param p1 # Ljava/io/File;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.line 1
const-string v0, "<this>"
.line 2
.line 3
invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 4
.line 5
.line 6
const-string v0, "base"
.line 7
.line 8
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
.line 9
.line 10
.line 11
invoke-static {p0, p1}, Lkotlin/io/FilesKt__UtilsKt;->toRelativeStringOrNull$FilesKt__UtilsKt(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;
.line 12
.line 13
.line 14
move-result-object v0
.line 15
if-eqz v0, :cond_0
.line 16
.line 17
return-object v0
.line 18
:cond_0
new-instance v0, Ljava/lang/IllegalArgumentException;
.line 19
.line 20
new-instance v1, Ljava/lang/StringBuilder;
.line 21
.line 22
const-string v2, "this and base files have different roots: "
.line 23
.line 24
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 25
.line 26
.line 27
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
.line 28
.line 29
.line 30
const-string p0, " and "
.line 31
.line 32
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 33
.line 34
.line 35
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
.line 36
.line 37
.line 38
const/16 p0, 0x2e
.line 39
.line 40
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 41
.line 42
.line 43
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
.line 44
.line 45
.line 46
move-result-object p0
.line 47
invoke-direct {v0, p0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
.line 48
.line 49
.line 50
throw v0
.end method
.method private static final toRelativeStringOrNull$FilesKt__UtilsKt(Ljava/io/File;Ljava/io/File;)Ljava/lang/String;
.locals 7
.line 1
invoke-static {p0}, Lkotlin/io/FilesKt__FilePathComponentsKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
.line 2
.line 3
.line 4
move-result-object p0
.line 5
invoke-static {p0}, Lkotlin/io/FilesKt__UtilsKt;->normalize$FilesKt__UtilsKt(Lkotlin/io/FilePathComponents;)Lkotlin/io/FilePathComponents;
.line 6
.line 7
.line 8
move-result-object p0
.line 9
invoke-static {p1}, Lkotlin/io/FilesKt__FilePathComponentsKt;->toComponents(Ljava/io/File;)Lkotlin/io/FilePathComponents;
.line 10
.line 11
.line 12
move-result-object p1
.line 13
invoke-static {p1}, Lkotlin/io/FilesKt__UtilsKt;->normalize$FilesKt__UtilsKt(Lkotlin/io/FilePathComponents;)Lkotlin/io/FilePathComponents;
.line 14
.line 15
.line 16
move-result-object p1
.line 17
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File;
.line 18
.line 19
.line 20
move-result-object v0
.line 21
invoke-virtual {p1}, Lkotlin/io/FilePathComponents;->getRoot()Ljava/io/File;
.line 22
.line 23
.line 24
move-result-object v1
.line 25
invoke-static {v0, v1}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 26
.line 27
.line 28
move-result v0
.line 29
if-nez v0, :cond_0
.line 30
.line 31
goto :goto_2
.line 32
:cond_0
invoke-virtual {p1}, Lkotlin/io/FilePathComponents;->getSize()I
.line 33
.line 34
.line 35
move-result v0
.line 36
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSize()I
.line 37
.line 38
.line 39
move-result v1
.line 40
invoke-static {v1, v0}, Ljava/lang/Math;->min(II)I
.line 41
.line 42
.line 43
move-result v2
.line 44
const/4 v3, 0x0
.line 45
:goto_0
if-ge v3, v2, :cond_1
.line 46
.line 47
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
.line 48
.line 49
.line 50
move-result-object v4
.line 51
invoke-interface {v4, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
.line 52
.line 53
.line 54
move-result-object v4
.line 55
invoke-virtual {p1}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
.line 56
.line 57
.line 58
move-result-object v5
.line 59
invoke-interface {v5, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
.line 60
.line 61
.line 62
move-result-object v5
.line 63
invoke-static {v4, v5}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 64
.line 65
.line 66
move-result v4
.line 67
if-eqz v4, :cond_1
.line 68
.line 69
add-int/lit8 v3, v3, 0x1
.line 70
.line 71
goto :goto_0
.line 72
:cond_1
new-instance v2, Ljava/lang/StringBuilder;
.line 73
.line 74
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
.line 75
.line 76
.line 77
add-int/lit8 v4, v0, -0x1
.line 78
.line 79
if-gt v3, v4, :cond_4
.line 80
.line 81
:goto_1
invoke-virtual {p1}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
.line 82
.line 83
.line 84
move-result-object v5
.line 85
invoke-interface {v5, v4}, Ljava/util/List;->get(I)Ljava/lang/Object;
.line 86
.line 87
.line 88
move-result-object v5
.line 89
check-cast v5, Ljava/io/File;
.line 90
.line 91
invoke-virtual {v5}, Ljava/io/File;->getName()Ljava/lang/String;
.line 92
.line 93
.line 94
move-result-object v5
.line 95
const-string v6, ".."
.line 96
.line 97
invoke-static {v5, v6}, Lkotlin/jvm/internal/Intrinsics;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 98
.line 99
.line 100
move-result v5
.line 101
if-eqz v5, :cond_2
.line 102
.line 103
:goto_2
const/4 p0, 0x0
.line 104
return-object p0
.line 105
:cond_2
invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 106
.line 107
.line 108
if-eq v4, v3, :cond_3
.line 109
.line 110
sget-char v5, Ljava/io/File;->separatorChar:C
.line 111
.line 112
invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 113
.line 114
.line 115
:cond_3
if-eq v4, v3, :cond_4
.line 116
.line 117
add-int/lit8 v4, v4, -0x1
.line 118
.line 119
goto :goto_1
.line 120
:cond_4
if-ge v3, v1, :cond_6
.line 121
.line 122
if-ge v3, v0, :cond_5
.line 123
.line 124
sget-char p1, Ljava/io/File;->separatorChar:C
.line 125
.line 126
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 127
.line 128
.line 129
:cond_5
invoke-virtual {p0}, Lkotlin/io/FilePathComponents;->getSegments()Ljava/util/List;
.line 130
.line 131
.line 132
move-result-object p0
.line 133
invoke-static {v3, p0}, Lkotlin/collections/CollectionsKt;->g(ILjava/util/List;)Ljava/util/List;
.line 134
.line 135
.line 136
move-result-object p0
.line 137
sget-object p1, Ljava/io/File;->separator:Ljava/lang/String;
.line 138
.line 139
const-string v0, "separator"
.line 140
.line 141
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V
.line 142
.line 143
.line 144
invoke-static {p0, v2, p1}, Lkotlin/collections/CollectionsKt;->m(Ljava/util/List;Ljava/lang/StringBuilder;Ljava/lang/String;)Ljava/lang/Appendable;
.line 145
.line 146
.line 147
:cond_6
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
.line 148
.line 149
.line 150
move-result-object p0
.line 151
return-object p0
.end method